summaryrefslogtreecommitdiffstats
path: root/src/demos/hdr
diff options
context:
space:
mode:
Diffstat (limited to 'src/demos/hdr')
-rwxr-xr-xsrc/demos/hdr/ARBFPPipeline.java10
-rwxr-xr-xsrc/demos/hdr/CgPipeline.java2
-rwxr-xr-xsrc/demos/hdr/HDR.java32
-rwxr-xr-xsrc/demos/hdr/HDRTexture.java50
4 files changed, 47 insertions, 47 deletions
diff --git a/src/demos/hdr/ARBFPPipeline.java b/src/demos/hdr/ARBFPPipeline.java
index e13b9f7..d7a13be 100755
--- a/src/demos/hdr/ARBFPPipeline.java
+++ b/src/demos/hdr/ARBFPPipeline.java
@@ -46,12 +46,12 @@ public class ARBFPPipeline implements Pipeline {
private int loadProgram(GL gl, String fileName, int profile) throws IOException {
String programBuffer = FileUtils.loadStreamIntoString(getClass().getClassLoader().getResourceAsStream(fileName));
int[] tmpInt = new int[1];
- gl.glGenProgramsARB(1, tmpInt);
+ gl.glGenProgramsARB(1, tmpInt, 0);
int res = tmpInt[0];
gl.glBindProgramARB(profile, res);
gl.glProgramStringARB(profile, GL.GL_PROGRAM_FORMAT_ASCII_ARB, programBuffer.length(), programBuffer);
int[] errPos = new int[1];
- gl.glGetIntegerv(GL.GL_PROGRAM_ERROR_POSITION_ARB, errPos);
+ gl.glGetIntegerv(GL.GL_PROGRAM_ERROR_POSITION_ARB, errPos, 0);
if (errPos[0] >= 0) {
String kind = "Program";
if (profile == GL.GL_VERTEX_PROGRAM_ARB) {
@@ -78,7 +78,7 @@ public class ARBFPPipeline implements Pipeline {
int[] isNative = new int[1];
gl.glGetProgramivARB(GL.GL_FRAGMENT_PROGRAM_ARB,
GL.GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB,
- isNative);
+ isNative, 0);
if (isNative[0] != 1) {
System.out.println("WARNING: fragment program is over native resource limits");
Thread.dumpStack();
@@ -146,8 +146,8 @@ public class ARBFPPipeline implements Pipeline {
float[] mvp = new float[16];
// Get matrices
- gl.glGetFloatv(GL.GL_PROJECTION_MATRIX, projection);
- gl.glGetFloatv(GL.GL_MODELVIEW_MATRIX, modelView);
+ gl.glGetFloatv(GL.GL_PROJECTION_MATRIX, projection, 0);
+ gl.glGetFloatv(GL.GL_MODELVIEW_MATRIX, modelView, 0);
// Multiply together
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
diff --git a/src/demos/hdr/CgPipeline.java b/src/demos/hdr/CgPipeline.java
index 2f3a9f5..5956967 100755
--- a/src/demos/hdr/CgPipeline.java
+++ b/src/demos/hdr/CgPipeline.java
@@ -108,6 +108,6 @@ public class CgPipeline implements Pipeline {
}
public void setMatrixParameterfc(GL gl, int param, float[] matrix) {
- CgGL.cgGLSetMatrixParameterfc((CGparameter) parameters.get(param), matrix);
+ CgGL.cgGLSetMatrixParameterfc((CGparameter) parameters.get(param), matrix, 0);
}
}
diff --git a/src/demos/hdr/HDR.java b/src/demos/hdr/HDR.java
index 2e650fc..76b66ac 100755
--- a/src/demos/hdr/HDR.java
+++ b/src/demos/hdr/HDR.java
@@ -252,15 +252,15 @@ public class HDR {
int[] tmp = new int[1];
pbuffer = drawable.createOffscreenDrawable(caps, pbuffer_w, pbuffer_h);
pbuffer.addGLEventListener(new PbufferListener());
- gl.glGenTextures(1, tmp);
+ gl.glGenTextures(1, tmp, 0);
pbuffer_tex = tmp[0];
blur_pbuffer = drawable.createOffscreenDrawable(caps, blur_w, blur_h);
blur_pbuffer.addGLEventListener(new BlurPbufferListener());
- gl.glGenTextures(1, tmp);
+ gl.glGenTextures(1, tmp, 0);
blur_pbuffer_tex = tmp[0];
blur2_pbuffer = drawable.createOffscreenDrawable(caps, blur_w, blur_h);
blur2_pbuffer.addGLEventListener(new Blur2PbufferListener());
- gl.glGenTextures(1, tmp);
+ gl.glGenTextures(1, tmp, 0);
blur2_pbuffer_tex = tmp[0];
caps.setOffscreenFloatingPointBuffers(false);
caps.setRedBits(8);
@@ -269,7 +269,7 @@ public class HDR {
caps.setDepthBits(24);
tonemap_pbuffer = drawable.createOffscreenDrawable(caps, pbuffer_w, pbuffer_h);
tonemap_pbuffer.addGLEventListener(new TonemapPbufferListener());
- gl.glGenTextures(1, tmp);
+ gl.glGenTextures(1, tmp, 0);
tonemap_pbuffer_tex = tmp[0];
drawable.addKeyListener(new KeyAdapter() {
@@ -433,7 +433,7 @@ public class HDR {
// create gamma lookup table texture
private int createGammaTexture(GL gl, int size, float gamma) {
int[] tmp = new int[1];
- gl.glGenTextures(1, tmp);
+ gl.glGenTextures(1, tmp, 0);
int texid = tmp[0];
int target = GL.GL_TEXTURE_1D;
@@ -451,7 +451,7 @@ public class HDR {
img[i] = (float) Math.pow(x, gamma);
}
- gl.glTexImage1D(target, 0, GL.GL_LUMINANCE, size, 0, GL.GL_LUMINANCE, GL.GL_FLOAT, img);
+ gl.glTexImage1D(target, 0, GL.GL_LUMINANCE, size, 0, GL.GL_LUMINANCE, GL.GL_FLOAT, img, 0);
return texid;
}
@@ -460,7 +460,7 @@ public class HDR {
// based on Debevec's pflare.c
int createVignetteTexture(GL gl, int xsiz, int ysiz, float r0, float r1) {
int[] tmp = new int[1];
- gl.glGenTextures(1, tmp);
+ gl.glGenTextures(1, tmp, 0);
int texid = tmp[0];
gl.glBindTexture(GL.GL_TEXTURE_RECTANGLE_NV, texid);
@@ -491,7 +491,7 @@ public class HDR {
}
}
- gl.glTexImage2D(GL.GL_TEXTURE_RECTANGLE_NV, 0, GL.GL_LUMINANCE, xsiz, ysiz, 0, GL.GL_LUMINANCE, GL.GL_FLOAT, img);
+ gl.glTexImage2D(GL.GL_TEXTURE_RECTANGLE_NV, 0, GL.GL_LUMINANCE, xsiz, ysiz, 0, GL.GL_LUMINANCE, GL.GL_FLOAT, img, 0);
return texid;
}
@@ -679,7 +679,7 @@ public class HDR {
gl.glVertexPointer(3, GL.GL_FLOAT, 0, model.getVertices());
gl.glNormalPointer(GL.GL_FLOAT, 0, model.getVertexNormals());
int[] indices = model.getFaceIndices();
- gl.glDrawElements(GL.GL_TRIANGLES, indices.length, GL.GL_UNSIGNED_INT, indices);
+ gl.glDrawElements(GL.GL_TRIANGLES, indices.length, GL.GL_UNSIGNED_INT, indices, 0);
gl.glDisableClientState(GL.GL_VERTEX_ARRAY);
gl.glDisableClientState(GL.GL_NORMAL_ARRAY);
break;
@@ -891,9 +891,9 @@ public class HDR {
float[] s_plane = { 1.0f, 0.0f, 0.0f, 0.0f };
float[] t_plane = { 0.0f, 1.0f, 0.0f, 0.0f };
float[] r_plane = { 0.0f, 0.0f, 1.0f, 0.0f };
- gl.glTexGenfv(GL.GL_S, GL.GL_OBJECT_PLANE, s_plane);
- gl.glTexGenfv(GL.GL_T, GL.GL_OBJECT_PLANE, t_plane);
- gl.glTexGenfv(GL.GL_R, GL.GL_OBJECT_PLANE, r_plane);
+ gl.glTexGenfv(GL.GL_S, GL.GL_OBJECT_PLANE, s_plane, 0);
+ gl.glTexGenfv(GL.GL_T, GL.GL_OBJECT_PLANE, t_plane, 0);
+ gl.glTexGenfv(GL.GL_R, GL.GL_OBJECT_PLANE, r_plane, 0);
gl.glPopMatrix();
gl.glTexGeni(GL.GL_S, GL.GL_TEXTURE_GEN_MODE, GL.GL_OBJECT_LINEAR);
gl.glTexGeni(GL.GL_T, GL.GL_TEXTURE_GEN_MODE, GL.GL_OBJECT_LINEAR);
@@ -1032,13 +1032,13 @@ public class HDR {
private int loadProgram(GL gl, int target, String code) {
int prog_id;
int[] tmp = new int[1];
- gl.glGenProgramsARB(1, tmp);
+ gl.glGenProgramsARB(1, tmp, 0);
prog_id = tmp[0];
gl.glBindProgramARB(target, prog_id);
int size = code.length();
gl.glProgramStringARB(target, GL.GL_PROGRAM_FORMAT_ASCII_ARB, code.length(), code);
int[] errPos = new int[1];
- gl.glGetIntegerv(GL.GL_PROGRAM_ERROR_POSITION_ARB, errPos);
+ gl.glGetIntegerv(GL.GL_PROGRAM_ERROR_POSITION_ARB, errPos, 0);
if (errPos[0] >= 0) {
String kind = "Program";
if (target == GL.GL_VERTEX_PROGRAM_ARB) {
@@ -1065,7 +1065,7 @@ public class HDR {
int[] isNative = new int[1];
gl.glGetProgramivARB(GL.GL_FRAGMENT_PROGRAM_ARB,
GL.GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB,
- isNative);
+ isNative, 0);
if (isNative[0] != 1) {
System.out.println("WARNING: fragment program is over native resource limits");
Thread.dumpStack();
@@ -1154,7 +1154,7 @@ public class HDR {
private void applyTransform(GL gl, Mat4f mat) {
float[] data = new float[16];
mat.getColumnMajorData(data);
- gl.glMultMatrixf(data);
+ gl.glMultMatrixf(data, 0);
}
private void usage() {
diff --git a/src/demos/hdr/HDRTexture.java b/src/demos/hdr/HDRTexture.java
index fcaac11..f5cf829 100755
--- a/src/demos/hdr/HDRTexture.java
+++ b/src/demos/hdr/HDRTexture.java
@@ -94,7 +94,7 @@ public class HDRTexture {
public int create2DTextureRGBE(GL gl, int targetTextureType) {
m_target = targetTextureType;
int[] tmp = new int[1];
- gl.glGenTextures(1, tmp);
+ gl.glGenTextures(1, tmp, 0);
int texid = tmp[1];
gl.glBindTexture(m_target, texid);
@@ -106,7 +106,7 @@ public class HDRTexture {
gl.glPixelStorei(GL.GL_UNPACK_ALIGNMENT, 1);
gl.glTexParameteri(m_target, GL.GL_GENERATE_MIPMAP_SGIS, GL.GL_TRUE);
- gl.glTexImage2D(m_target, 0, GL.GL_RGBA, m_width, m_height, 0, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE, m_data);
+ gl.glTexImage2D(m_target, 0, GL.GL_RGBA, m_width, m_height, 0, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE, m_data, 0);
return texid;
}
@@ -114,7 +114,7 @@ public class HDRTexture {
public int create2DTextureHILO(GL gl, int targetTextureType, boolean rg) {
m_target = targetTextureType;
int[] tmp = new int[1];
- gl.glGenTextures(1, tmp);
+ gl.glGenTextures(1, tmp, 0);
int texid = tmp[0];
gl.glBindTexture(m_target, texid);
@@ -143,7 +143,7 @@ public class HDRTexture {
}
}
- gl.glTexImage2D(m_target, 0, GL.GL_HILO16_NV, m_width, m_height, 0, GL.GL_HILO_NV, GL.GL_FLOAT, img);
+ gl.glTexImage2D(m_target, 0, GL.GL_HILO16_NV, m_width, m_height, 0, GL.GL_HILO_NV, GL.GL_FLOAT, img, 0);
return texid;
}
@@ -157,7 +157,7 @@ public class HDRTexture {
m_target = GL.GL_TEXTURE_CUBE_MAP_ARB;
int[] tmp = new int[1];
- gl.glGenTextures(1, tmp);
+ gl.glGenTextures(1, tmp, 0);
int texid = tmp[0];
gl.glBindTexture(m_target, texid);
@@ -184,7 +184,7 @@ public class HDRTexture {
face[ptr++] = m_data[src++];
}
}
- gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB, 0, GL.GL_RGBA, face_width, face_height, 0, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE, face);
+ gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB, 0, GL.GL_RGBA, face_width, face_height, 0, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE, face, 0);
// positive X
ptr = 0;
@@ -197,7 +197,7 @@ public class HDRTexture {
face[ptr++] = m_data[src++];
}
}
- gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB, 0, GL.GL_RGBA, face_width, face_height, 0, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE, face);
+ gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB, 0, GL.GL_RGBA, face_width, face_height, 0, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE, face, 0);
// negative Z
ptr = 0;
@@ -210,7 +210,7 @@ public class HDRTexture {
face[ptr++] = m_data[src++];
}
}
- gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB, 0, GL.GL_RGBA, face_width, face_height, 0, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE, face);
+ gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB, 0, GL.GL_RGBA, face_width, face_height, 0, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE, face, 0);
// negative X
ptr = 0;
@@ -223,7 +223,7 @@ public class HDRTexture {
face[ptr++] = m_data[src++];
}
}
- gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB, 0, GL.GL_RGBA, face_width, face_height, 0, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE, face);
+ gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB, 0, GL.GL_RGBA, face_width, face_height, 0, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE, face, 0);
// negative Y
ptr = 0;
@@ -236,7 +236,7 @@ public class HDRTexture {
face[ptr++] = m_data[src++];
}
}
- gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB, 0, GL.GL_RGBA, face_width, face_height, 0, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE, face);
+ gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB, 0, GL.GL_RGBA, face_width, face_height, 0, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE, face, 0);
// positive Z
ptr = 0;
@@ -249,7 +249,7 @@ public class HDRTexture {
face[ptr++] = m_data[src++];
}
}
- gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB, 0, GL.GL_RGBA, face_width, face_height, 0, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE, face);
+ gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB, 0, GL.GL_RGBA, face_width, face_height, 0, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE, face, 0);
return texid;
}
@@ -262,7 +262,7 @@ public class HDRTexture {
m_target = GL.GL_TEXTURE_CUBE_MAP_ARB;
int[] tmp = new int[1];
- gl.glGenTextures(1, tmp);
+ gl.glGenTextures(1, tmp, 0);
int texid = tmp[0];
gl.glBindTexture(m_target, texid);
@@ -290,7 +290,7 @@ public class HDRTexture {
}
}
}
- gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB, 0, GL.GL_HILO16_NV, face_width, face_height, 0, GL.GL_HILO_NV, GL.GL_FLOAT, face);
+ gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB, 0, GL.GL_HILO16_NV, face_width, face_height, 0, GL.GL_HILO_NV, GL.GL_FLOAT, face, 0);
// positive X
ptr = 0;
@@ -306,7 +306,7 @@ public class HDRTexture {
}
}
}
- gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB, 0, GL.GL_HILO16_NV, face_width, face_height, 0, GL.GL_HILO_NV, GL.GL_FLOAT, face);
+ gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB, 0, GL.GL_HILO16_NV, face_width, face_height, 0, GL.GL_HILO_NV, GL.GL_FLOAT, face, 0);
// negative Z
ptr = 0;
@@ -322,7 +322,7 @@ public class HDRTexture {
}
}
}
- gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB, 0, GL.GL_HILO16_NV, face_width, face_height, 0, GL.GL_HILO_NV, GL.GL_FLOAT, face);
+ gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB, 0, GL.GL_HILO16_NV, face_width, face_height, 0, GL.GL_HILO_NV, GL.GL_FLOAT, face, 0);
// negative X
ptr = 0;
@@ -338,7 +338,7 @@ public class HDRTexture {
}
}
}
- gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB, 0, GL.GL_HILO16_NV, face_width, face_height, 0, GL.GL_HILO_NV, GL.GL_FLOAT, face);
+ gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB, 0, GL.GL_HILO16_NV, face_width, face_height, 0, GL.GL_HILO_NV, GL.GL_FLOAT, face, 0);
// negative Y
ptr = 0;
@@ -354,7 +354,7 @@ public class HDRTexture {
}
}
}
- gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB, 0, GL.GL_HILO16_NV, face_width, face_height, 0, GL.GL_HILO_NV, GL.GL_FLOAT, face);
+ gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB, 0, GL.GL_HILO16_NV, face_width, face_height, 0, GL.GL_HILO_NV, GL.GL_FLOAT, face, 0);
// positive Z
ptr = 0;
@@ -370,7 +370,7 @@ public class HDRTexture {
}
}
}
- gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB, 0, GL.GL_HILO16_NV, face_width, face_height, 0, GL.GL_HILO_NV, GL.GL_FLOAT, face);
+ gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB, 0, GL.GL_HILO16_NV, face_width, face_height, 0, GL.GL_HILO_NV, GL.GL_FLOAT, face, 0);
return texid;
}
@@ -383,7 +383,7 @@ public class HDRTexture {
m_target = GL.GL_TEXTURE_CUBE_MAP_ARB;
int[] tmp = new int[1];
- gl.glGenTextures(1, tmp);
+ gl.glGenTextures(1, tmp, 0);
int texid = tmp[0];
gl.glBindTexture(m_target, texid);
@@ -407,7 +407,7 @@ public class HDRTexture {
face[ptr++] = m_floatdata[src + 2];
}
}
- gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB, 0, format, face_width, face_height, 0, GL.GL_RGB, GL.GL_FLOAT, face);
+ gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB, 0, format, face_width, face_height, 0, GL.GL_RGB, GL.GL_FLOAT, face, 0);
// positive X
ptr = 0;
@@ -419,7 +419,7 @@ public class HDRTexture {
face[ptr++] = m_floatdata[src + 2];
}
}
- gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB, 0, format, face_width, face_height, 0, GL.GL_RGB, GL.GL_FLOAT, face);
+ gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB, 0, format, face_width, face_height, 0, GL.GL_RGB, GL.GL_FLOAT, face, 0);
// negative Z
ptr = 0;
@@ -431,7 +431,7 @@ public class HDRTexture {
face[ptr++] = m_floatdata[src + 2];
}
}
- gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB, 0, format, face_width, face_height, 0, GL.GL_RGB, GL.GL_FLOAT, face);
+ gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB, 0, format, face_width, face_height, 0, GL.GL_RGB, GL.GL_FLOAT, face, 0);
// negative X
ptr = 0;
@@ -443,7 +443,7 @@ public class HDRTexture {
face[ptr++] = m_floatdata[src + 2];
}
}
- gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB, 0, format, face_width, face_height, 0, GL.GL_RGB, GL.GL_FLOAT, face);
+ gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB, 0, format, face_width, face_height, 0, GL.GL_RGB, GL.GL_FLOAT, face, 0);
// negative Y
ptr = 0;
@@ -455,7 +455,7 @@ public class HDRTexture {
face[ptr++] = m_floatdata[src + 2];
}
}
- gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB, 0, format, face_width, face_height, 0, GL.GL_RGB, GL.GL_FLOAT, face);
+ gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB, 0, format, face_width, face_height, 0, GL.GL_RGB, GL.GL_FLOAT, face, 0);
// positive Z
ptr = 0;
@@ -467,7 +467,7 @@ public class HDRTexture {
face[ptr++] = m_floatdata[src + 2];
}
}
- gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB, 0, format, face_width, face_height, 0, GL.GL_RGB, GL.GL_FLOAT, face);
+ gl.glTexImage2D(GL.GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB, 0, format, face_width, face_height, 0, GL.GL_RGB, GL.GL_FLOAT, face, 0);
return texid;
}