id of bound texture is stored in client side (PGL)

This commit is contained in:
codeanticode
2012-07-26 14:46:33 +00:00
parent 61e13ecc07
commit 003ea07a51
3 changed files with 20 additions and 23 deletions

View File

@@ -362,6 +362,9 @@ public class PGL {
/** Which texturing targets are enabled */
protected static boolean[] texturingTargets = { false, false };
/** Which textures are bound to each target */
protected static int[] boundTextures = { 0, 0 };
///////////////////////////////////////////////////////////////////////////////////
// FBO for anti-aliased rendering
@@ -1060,6 +1063,11 @@ public class PGL {
public void glBindTexture(int target, int id) {
gl.glBindTexture(target, id);
if (target == GL_TEXTURE_2D) {
boundTextures[0] = id;
} else if (target == GL_TEXTURE_RECTANGLE) {
boundTextures[1] = id;
}
}
@@ -1729,6 +1737,17 @@ public class PGL {
}
public boolean textureIsBound(int target, int id) {
if (target == GL_TEXTURE_2D) {
return boundTextures[0] == id;
} else if (target == GL_TEXTURE_RECTANGLE) {
return boundTextures[1] == id;
} else {
return false;
}
}
public void initTexture(int target, int format, int width, int height) {
int[] texels = new int[width * height];
glTexSubImage2D(target, 0, 0, 0, width, height, format, GL_UNSIGNED_BYTE, IntBuffer.wrap(texels));