• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2012 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 package com.android.gallery3d.glrenderer;
17 
18 import javax.microedition.khronos.opengles.GL11;
19 import javax.microedition.khronos.opengles.GL11ExtensionPack;
20 
21 /**
22  * Open GL ES 1.1 implementation for generating and destroying texture IDs and
23  * buffer IDs
24  */
25 public class GLES11IdImpl implements GLId {
26     private static int sNextId = 1;
27     // Mutex for sNextId
28     private static Object sLock = new Object();
29 
30     @Override
generateTexture()31     public int generateTexture() {
32         synchronized (sLock) {
33             return sNextId++;
34         }
35     }
36 
37     @Override
glGenBuffers(int n, int[] buffers, int offset)38     public void glGenBuffers(int n, int[] buffers, int offset) {
39         synchronized (sLock) {
40             while (n-- > 0) {
41                 buffers[offset + n] = sNextId++;
42             }
43         }
44     }
45 
46     @Override
glDeleteTextures(GL11 gl, int n, int[] textures, int offset)47     public void glDeleteTextures(GL11 gl, int n, int[] textures, int offset) {
48         synchronized (sLock) {
49             gl.glDeleteTextures(n, textures, offset);
50         }
51     }
52 
53     @Override
glDeleteBuffers(GL11 gl, int n, int[] buffers, int offset)54     public void glDeleteBuffers(GL11 gl, int n, int[] buffers, int offset) {
55         synchronized (sLock) {
56             gl.glDeleteBuffers(n, buffers, offset);
57         }
58     }
59 
60     @Override
glDeleteFramebuffers(GL11ExtensionPack gl11ep, int n, int[] buffers, int offset)61     public void glDeleteFramebuffers(GL11ExtensionPack gl11ep, int n, int[] buffers, int offset) {
62         synchronized (sLock) {
63             gl11ep.glDeleteFramebuffersOES(n, buffers, offset);
64         }
65     }
66 
67 
68 }
69