android_view_HardwareRenderer.cpp revision a95826582773a194ed7fb66bc29c9b82fe9bb8d1
1a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy/* 2a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy * Copyright (C) 2010 The Android Open Source Project 3a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy * 4a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy * Licensed under the Apache License, Version 2.0 (the "License"); 5a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy * you may not use this file except in compliance with the License. 6a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy * You may obtain a copy of the License at 7a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy * 8a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy * http://www.apache.org/licenses/LICENSE-2.0 9a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy * 10a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy * Unless required by applicable law or agreed to in writing, software 11a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy * distributed under the License is distributed on an "AS IS" BASIS, 12a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy * See the License for the specific language governing permissions and 14a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy * limitations under the License. 15a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy */ 16a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy 17a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy#define LOG_TAG "HardwareRenderer" 18a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy 19a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy#include "jni.h" 20a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy#include <nativehelper/JNIHelp.h> 21a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy#include <android_runtime/AndroidRuntime.h> 22a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy 23a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy#include <EGL/egl_cache.h> 24a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy 25a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guynamespace android { 26a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy 27a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy// ---------------------------------------------------------------------------- 28a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy// Misc 29a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy// ---------------------------------------------------------------------------- 30a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy 31a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guystatic void android_view_HardwareRenderer_setupShadersDiskCache(JNIEnv* env, jobject clazz, 32a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy jstring diskCachePath) { 33a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy 34a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy const char* cacheArray = env->GetStringUTFChars(diskCachePath, NULL); 35a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy egl_cache_t::get()->setCacheFilename(cacheArray); 36a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy env->ReleaseStringUTFChars(diskCachePath, cacheArray); 37a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy} 38a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy 39a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy// ---------------------------------------------------------------------------- 40a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy// JNI Glue 41a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy// ---------------------------------------------------------------------------- 42a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy 43a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guyconst char* const kClassPathName = "android/view/HardwareRenderer"; 44a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy 45a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guystatic JNINativeMethod gMethods[] = { 46a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy { "nSetupShadersDiskCache", "(Ljava/lang/String;)V", 47a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy (void*) android_view_HardwareRenderer_setupShadersDiskCache }, 48a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy}; 49a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy 50a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guyint register_android_view_HardwareRenderer(JNIEnv* env) { 51a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy return AndroidRuntime::registerNativeMethods(env, kClassPathName, gMethods, NELEM(gMethods)); 52a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy} 53a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy 54a95826582773a194ed7fb66bc29c9b82fe9bb8d1Romain Guy}; 55