diff options
Diffstat (limited to 'opengl/tools/glgen/src')
-rw-r--r-- | opengl/tools/glgen/src/GenerateGLES.java | 4 | ||||
-rw-r--r-- | opengl/tools/glgen/src/JniCodeEmitter.java | 46 | ||||
-rw-r--r-- | opengl/tools/glgen/src/ParameterChecker.java | 17 |
3 files changed, 39 insertions, 28 deletions
diff --git a/opengl/tools/glgen/src/GenerateGLES.java b/opengl/tools/glgen/src/GenerateGLES.java index 6468957..6f9da5d 100644 --- a/opengl/tools/glgen/src/GenerateGLES.java +++ b/opengl/tools/glgen/src/GenerateGLES.java @@ -42,7 +42,6 @@ public class GenerateGLES { } CFunc cfunc = CFunc.parseCFunc(s); - String fname = cfunc.getName(); String stubRoot = "stubs/gles11/" + fname; String javaPath = stubRoot + ".java"; @@ -96,10 +95,9 @@ public class GenerateGLES { new PrintStream(new FileOutputStream("out/" + gl11Filename)); PrintStream gl11cStream = new PrintStream(new FileOutputStream("out/" + gl11cFilename)); - gl11Stream.println("/*"); - gl11cStream.println("/*"); copy("stubs/gles11/" + suffix + "Header.java-if", gl11Stream); copy("stubs/gles11/" + suffix + "cHeader.cpp", gl11cStream); + copy("stubs/gles11/common.cpp", gl11cStream); GLESCodeEmitter emitter = new GLESCodeEmitter( "android/opengl/" + suffix, checker, gl11Stream, gl11cStream); diff --git a/opengl/tools/glgen/src/JniCodeEmitter.java b/opengl/tools/glgen/src/JniCodeEmitter.java index 774f40c..01c5c48 100644 --- a/opengl/tools/glgen/src/JniCodeEmitter.java +++ b/opengl/tools/glgen/src/JniCodeEmitter.java @@ -197,30 +197,30 @@ public class JniCodeEmitter { void printIfcheckPostamble(PrintStream out, boolean isBuffer, boolean emitExceptionCheck, String iii) { - printIfcheckPostamble(out, isBuffer, emitExceptionCheck, - "offset", "_remaining", iii); - } + printIfcheckPostamble(out, isBuffer, emitExceptionCheck, + "offset", "_remaining", iii); + } void printIfcheckPostamble(PrintStream out, boolean isBuffer, boolean emitExceptionCheck, String offset, String remaining, String iii) { - out.println(iii + " default:"); - out.println(iii + " _needed = 0;"); - out.println(iii + " break;"); - out.println(iii + "}"); - - out.println(iii + "if (" + remaining + " < _needed) {"); - out.println(iii + indent + "_exception = 1;"); - out.println(iii + indent + - "_exceptionType = \"java/lang/IllegalArgumentException\";"); - out.println(iii + indent + - "_exceptionMessage = \"" + - (isBuffer ? "remaining()" : "length - " + offset) + - " < needed\";"); - out.println(iii + indent + "goto exit;"); - out.println(iii + "}"); - - needsExit = true; - } + out.println(iii + " default:"); + out.println(iii + " _needed = 1;"); + out.println(iii + " break;"); + out.println(iii + "}"); + + out.println(iii + "if (" + remaining + " < _needed) {"); + out.println(iii + indent + "_exception = 1;"); + out.println(iii + indent + + "_exceptionType = \"java/lang/IllegalArgumentException\";"); + out.println(iii + indent + + "_exceptionMessage = \"" + + (isBuffer ? "remaining()" : "length - " + offset) + + " < needed\";"); + out.println(iii + indent + "goto exit;"); + out.println(iii + "}"); + + needsExit = true; + } boolean isNullAllowed(CFunc cfunc) { String[] checks = mChecker.getChecks(cfunc.getName()); @@ -932,8 +932,8 @@ public class JniCodeEmitter { // Emit an _exeption variable if there will be error checks if (emitExceptionCheck) { out.println(indent + "jint _exception = 0;"); - out.println(indent + "const char * _exceptionType;"); - out.println(indent + "const char * _exceptionMessage;"); + out.println(indent + "const char * _exceptionType = NULL;"); + out.println(indent + "const char * _exceptionMessage = NULL;"); } // Emit a single _array or multiple _XXXArray variables diff --git a/opengl/tools/glgen/src/ParameterChecker.java b/opengl/tools/glgen/src/ParameterChecker.java index bff6d86..fbc47fb 100644 --- a/opengl/tools/glgen/src/ParameterChecker.java +++ b/opengl/tools/glgen/src/ParameterChecker.java @@ -22,8 +22,21 @@ public class ParameterChecker { HashMap<String,String[]> map = new HashMap<String,String[]>(); public ParameterChecker(BufferedReader reader) throws Exception { - String s; - while ((s = reader.readLine()) != null) { + String line; + while ((line = reader.readLine()) != null) { + String s = line.trim(); + + // skip empty lines + if (s.isEmpty()) { + continue; + } + + // skip single-line comments + if (s.startsWith("//") || + s.startsWith("#")) { + continue; + } + String[] tokens = s.split("\\s"); map.put(tokens[0], tokens); } |