1**
2** Copyright 2006, 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// This source file is automatically generated
18
19package com.google.android.gles_jni;
20
21import android.app.AppGlobals;
22import android.content.pm.ApplicationInfo;
23import android.content.pm.IPackageManager;
24import android.os.Build;
25import android.os.UserHandle;
26import android.util.Log;
27
28import java.nio.Buffer;
29import javax.microedition.khronos.opengles.GL10;
30import javax.microedition.khronos.opengles.GL10Ext;
31import javax.microedition.khronos.opengles.GL11;
32import javax.microedition.khronos.opengles.GL11Ext;
33import javax.microedition.khronos.opengles.GL11ExtensionPack;
34
35public class GLImpl implements GL10, GL10Ext, GL11, GL11Ext, GL11ExtensionPack {
36
37    // Private accessors for native code
38
39    native private static void _nativeClassInit();
40    static {
41        _nativeClassInit();
42    }
43
44    Buffer _colorPointer = null;
45    Buffer _normalPointer = null;
46    Buffer _texCoordPointer = null;
47    Buffer _vertexPointer = null;
48    Buffer _pointSizePointerOES = null;
49    Buffer _matrixIndexPointerOES = null;
50    Buffer _weightPointerOES = null;
51
52    private boolean haveCheckedExtensions;
53    private boolean have_OES_blend_equation_separate;
54    private boolean have_OES_blend_subtract;
55    private boolean have_OES_framebuffer_object;
56    private boolean have_OES_texture_cube_map;
57
58    public GLImpl() {
59    }
60
61    public void glGetPointerv(int pname, java.nio.Buffer[] params) {
62        throw new UnsupportedOperationException("glGetPointerv");
63    }
64
65    private static boolean allowIndirectBuffers(String appName) {
66        boolean result = false;
67        int version = 0;
68        IPackageManager pm = AppGlobals.getPackageManager();
69        try {
70            ApplicationInfo applicationInfo = pm.getApplicationInfo(appName, 0, UserHandle.myUserId());
71            if (applicationInfo != null) {
72                version = applicationInfo.targetSdkVersion;
73            }
74        } catch (android.os.RemoteException e) {
75            // ignore
76        }
77        Log.e("OpenGLES", String.format(
78            "Application %s (SDK target %d) called a GL11 Pointer method with an indirect Buffer.",
79            appName, version));
80        if (version <= Build.VERSION_CODES.CUPCAKE) {
81            result = true;
82        }
83        return result;
84    }
85
86