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