android_view_GLES20Canvas.cpp revision e4d011201cea40d46cb2b2eef401db8fddc5c9c6
1/* 2 * Copyright (C) 2010 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17#include "jni.h" 18#include <nativehelper/JNIHelp.h> 19#include <android_runtime/AndroidRuntime.h> 20 21#include <UIOpenGLRenderer.h> 22 23#define UI ((UIOpenGLRenderer*) renderer) 24 25namespace android { 26 27// ---------------------------------------------------------------------------- 28// Constructors 29// ---------------------------------------------------------------------------- 30 31static UIOpenGLRenderer* android_view_GLES20Renderer_createRenderer(JNIEnv* env, jobject canvas) { 32 return new UIOpenGLRenderer; 33} 34 35static void android_view_GLES20Renderer_destroyRenderer(JNIEnv* env, jobject canvas, jint renderer) { 36 delete UI; 37} 38 39// ---------------------------------------------------------------------------- 40// Setup 41// ---------------------------------------------------------------------------- 42 43static void android_view_GLES20Renderer_setViewport(JNIEnv* env, jobject canvas, jint renderer, 44 jint width, jint height) { 45 46 UI->setViewport(width, height); 47} 48 49static void android_view_GLES20Renderer_prepare(JNIEnv* env, jobject canvas, jint renderer) { 50 51 UI->prepare(); 52} 53 54// ---------------------------------------------------------------------------- 55// JNI Glue 56// ---------------------------------------------------------------------------- 57 58const char* const kClassPathName = "android/view/GLES20Canvas"; 59 60static JNINativeMethod gMethods[] = { 61 { "nCreateRenderer", "()I", (void*) android_view_GLES20Renderer_createRenderer }, 62 { "nDestroyRenderer", "(I)V", (void*) android_view_GLES20Renderer_destroyRenderer }, 63 { "nSetViewport", "(III)V", (void*) android_view_GLES20Renderer_setViewport }, 64 { "nPrepare", "(I)V", (void*) android_view_GLES20Renderer_prepare }, 65}; 66 67int register_android_view_GLES20Canvas(JNIEnv* env) { 68 return AndroidRuntime::registerNativeMethods(env, kClassPathName, gMethods, NELEM(gMethods)); 69} 70 71}; 72