1b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang/*
2b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang * Copyright (C) 2012 The Android Open Source Project
3b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang *
4b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang * Licensed under the Apache License, Version 2.0 (the "License");
5b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang * you may not use this file except in compliance with the License.
6b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang * You may obtain a copy of the License at
7b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang *
8b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang *      http://www.apache.org/licenses/LICENSE-2.0
9b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang *
10b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang * Unless required by applicable law or agreed to in writing, software
11b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang * distributed under the License is distributed on an "AS IS" BASIS,
12b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang * See the License for the specific language governing permissions and
14b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang * limitations under the License.
15b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang */
16b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang
17b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Changpackage com.android.gallery3d.ui;
18b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang
19ba7d106f7e4fcb0036e694449e6fc5b002526309Owen Linimport javax.microedition.khronos.opengles.GL11;
20ffc2a4a77f7164dd435d07c11a3df290c4b64079Angus Kongimport javax.microedition.khronos.opengles.GL11ExtensionPack;
21ba7d106f7e4fcb0036e694449e6fc5b002526309Owen Lin
22b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang// This mimics corresponding GL functions.
23b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Changpublic class GLId {
24b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang    static int sNextId = 1;
25b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang
26b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang    public synchronized static void glGenTextures(int n, int[] textures, int offset) {
27b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang        while (n-- > 0) {
28b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang            textures[offset + n] = sNextId++;
29b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang        }
30b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang    }
31b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang
32b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang    public synchronized static void glGenBuffers(int n, int[] buffers, int offset) {
33b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang        while (n-- > 0) {
34b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang            buffers[offset + n] = sNextId++;
35b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang        }
36b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang    }
37b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang
38ba7d106f7e4fcb0036e694449e6fc5b002526309Owen Lin    public synchronized static void glDeleteTextures(GL11 gl, int n, int[] textures, int offset) {
39ba7d106f7e4fcb0036e694449e6fc5b002526309Owen Lin        gl.glDeleteTextures(n, textures, offset);
40b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang    }
41b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang
42ba7d106f7e4fcb0036e694449e6fc5b002526309Owen Lin    public synchronized static void glDeleteBuffers(GL11 gl, int n, int[] buffers, int offset) {
43ba7d106f7e4fcb0036e694449e6fc5b002526309Owen Lin        gl.glDeleteBuffers(n, buffers, offset);
44b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang    }
45ffc2a4a77f7164dd435d07c11a3df290c4b64079Angus Kong
46ffc2a4a77f7164dd435d07c11a3df290c4b64079Angus Kong    public synchronized static void glDeleteFramebuffers(
47ffc2a4a77f7164dd435d07c11a3df290c4b64079Angus Kong            GL11ExtensionPack gl11ep, int n, int[] buffers, int offset) {
48ffc2a4a77f7164dd435d07c11a3df290c4b64079Angus Kong        gl11ep.glDeleteFramebuffersOES(n, buffers, offset);
49ffc2a4a77f7164dd435d07c11a3df290c4b64079Angus Kong    }
50b29a27f475a2c449abdda8d4e03d30914feed8c6Chih-Chung Chang}
51