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