aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2008-08-21 17:37:13 +0000
committerSven Gothel <[email protected]>2008-08-21 17:37:13 +0000
commitc91152ffe6a86e29c4e6c896eec7af5a40bc7be0 (patch)
tree21809b8009b7be06558fb0db3d33941dbb8017cf /src
parenta971f95b23fd9f8287acdad1afc2eed75a531bc1 (diff)
Added missing SystemUtils. Added proper GLSL ArrayData validation
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1763 232f8b59-042b-4e1e-8c03-345bb8c30851
Diffstat (limited to 'src')
-rw-r--r--src/classes/com/sun/opengl/impl/SystemUtil.java.javame_cdc_fp10
-rw-r--r--src/classes/com/sun/opengl/impl/SystemUtil.java.javase18
-rw-r--r--src/classes/javax/media/opengl/GLArrayDataClient.java2
-rw-r--r--src/classes/javax/media/opengl/GLArrayDataServer.java2
-rw-r--r--src/classes/javax/media/opengl/GLProfile.java59
5 files changed, 58 insertions, 33 deletions
diff --git a/src/classes/com/sun/opengl/impl/SystemUtil.java.javame_cdc_fp b/src/classes/com/sun/opengl/impl/SystemUtil.java.javame_cdc_fp
new file mode 100644
index 000000000..91723b505
--- /dev/null
+++ b/src/classes/com/sun/opengl/impl/SystemUtil.java.javame_cdc_fp
@@ -0,0 +1,10 @@
+package com.sun.opengl.impl;
+
+public class SystemUtil {
+
+ /** Wrapper for System.getenv(), which doesn't work on platforms
+ earlier than JDK 5 */
+ public static String getenv(String variableName) {
+ return null;
+ }
+}
diff --git a/src/classes/com/sun/opengl/impl/SystemUtil.java.javase b/src/classes/com/sun/opengl/impl/SystemUtil.java.javase
new file mode 100644
index 000000000..3f201c2b6
--- /dev/null
+++ b/src/classes/com/sun/opengl/impl/SystemUtil.java.javase
@@ -0,0 +1,18 @@
+package com.sun.opengl.impl;
+
+public class SystemUtil {
+
+ private static volatile boolean getenvSupported = true;
+ /** Wrapper for System.getenv(), which doesn't work on platforms
+ earlier than JDK 5 */
+ public static String getenv(String variableName) {
+ if (getenvSupported) {
+ try {
+ return System.getenv(variableName);
+ } catch (Error e) {
+ getenvSupported = false;
+ }
+ }
+ return null;
+ }
+}
diff --git a/src/classes/javax/media/opengl/GLArrayDataClient.java b/src/classes/javax/media/opengl/GLArrayDataClient.java
index 2a5b48506..a4b4cae19 100644
--- a/src/classes/javax/media/opengl/GLArrayDataClient.java
+++ b/src/classes/javax/media/opengl/GLArrayDataClient.java
@@ -58,6 +58,7 @@ public class GLArrayDataClient implements GLArrayData {
if(!GLProfile.isGL2ES2()) {
throw new GLException("GLArrayDataServer not supported for profile: "+GLProfile.getProfile());
}
+ GLProfile.isValidateArrayDataType(-1, comps, dataType, true, true);
GLArrayDataClient adc = new GLArrayDataClient();
GLArrayHandler glArrayHandler = new GLSLArrayHandler(adc);
@@ -72,6 +73,7 @@ public class GLArrayDataClient implements GLArrayData {
if(!GLProfile.isGL2ES2()) {
throw new GLException("GLArrayDataServer not supported for profile: "+GLProfile.getProfile());
}
+ GLProfile.isValidateArrayDataType(-1, comps, dataType, true, true);
GLArrayDataClient adc = new GLArrayDataClient();
GLArrayHandler glArrayHandler = new GLSLArrayHandler(adc);
diff --git a/src/classes/javax/media/opengl/GLArrayDataServer.java b/src/classes/javax/media/opengl/GLArrayDataServer.java
index 032e0a6f1..6fcb03a90 100644
--- a/src/classes/javax/media/opengl/GLArrayDataServer.java
+++ b/src/classes/javax/media/opengl/GLArrayDataServer.java
@@ -106,6 +106,7 @@ public class GLArrayDataServer extends GLArrayDataClient implements GLArrayData
if(!GLProfile.isGL2ES2()) {
throw new GLException("GLArrayDataServer not supported for profile: "+GLProfile.getProfile());
}
+ GLProfile.isValidateArrayDataType(-1, comps, dataType, true, true);
GLArrayDataServer ads = new GLArrayDataServer();
GLArrayHandler glArrayHandler = new GLSLArrayHandler(ads);
@@ -126,6 +127,7 @@ public class GLArrayDataServer extends GLArrayDataClient implements GLArrayData
if(!GLProfile.isGL2ES2()) {
throw new GLException("GLArrayDataServer not supported for profile: "+GLProfile.getProfile());
}
+ GLProfile.isValidateArrayDataType(-1, comps, dataType, true, true);
GLArrayDataServer ads = new GLArrayDataServer();
GLArrayHandler glArrayHandler = new GLSLArrayHandler(ads);
diff --git a/src/classes/javax/media/opengl/GLProfile.java b/src/classes/javax/media/opengl/GLProfile.java
index 65e103937..ac37305b2 100644
--- a/src/classes/javax/media/opengl/GLProfile.java
+++ b/src/classes/javax/media/opengl/GLProfile.java
@@ -373,41 +373,34 @@ public class GLProfile {
}
} else if(GLProfile.isGL2ES12() || GLProfile.isGL2()) {
if(isVertexAttribPointer) {
- switch(index) {
- case GL.GL_VERTEX_ARRAY:
- case GL.GL_TEXTURE_COORD_ARRAY:
- case GL.GL_NORMAL_ARRAY:
- case GL.GL_COLOR_ARRAY:
- switch(type) {
- case GL.GL_UNSIGNED_BYTE:
- case GL.GL_BYTE:
- case GL.GL_UNSIGNED_SHORT:
- case GL.GL_SHORT:
- case GL.GL_FLOAT:
- case javax.media.opengl.GL2ES2.GL_INT:
- case javax.media.opengl.GL2ES2.GL_UNSIGNED_INT:
- case javax.media.opengl.GL2.GL_DOUBLE:
- break;
- default:
- if(throwException) {
- throw new GLException("Illegal data type for "+indexName+" on profile GL2: "+type);
- }
- return false;
- }
- switch(comps) {
- case 0:
- case 1:
- case 2:
- case 3:
- case 4:
- break;
- default:
- if(throwException) {
- throw new GLException("Illegal component number for "+indexName+" on profile GL2: "+comps);
- }
- return false;
+ switch(type) {
+ case GL.GL_UNSIGNED_BYTE:
+ case GL.GL_BYTE:
+ case GL.GL_UNSIGNED_SHORT:
+ case GL.GL_SHORT:
+ case GL.GL_FLOAT:
+ case javax.media.opengl.GL2ES2.GL_INT:
+ case javax.media.opengl.GL2ES2.GL_UNSIGNED_INT:
+ case javax.media.opengl.GL2.GL_DOUBLE:
+ break;
+ default:
+ if(throwException) {
+ throw new GLException("Illegal data type for "+indexName+" on profile GL2: "+type);
}
+ return false;
+ }
+ switch(comps) {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 4:
break;
+ default:
+ if(throwException) {
+ throw new GLException("Illegal component number for "+indexName+" on profile GL2: "+comps);
+ }
+ return false;
}
} else {
switch(index) {