From fb31bd24d8f607b18ab3eef6b90a1e1e20a5ec82 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Wed, 15 Feb 2012 13:51:22 +0100 Subject: GLGLuegen: Enhance debug/analysis code and API comments - Use Gluegen.debug() setting - BuildStaticGLInfo.getExtension(name) returns a set of all extension where name occurs - GLConfiguration.shouldIgnoreExtension() reflects all extensions, inclusive the renames one and gives a warning in case the symbol belongs to multiple extension - in debug mode! - API comment: List all extensions, incl. the one from the renames, this allows having a proper list to which extensions the define/function belongs to. --- .../com/jogamp/gluegen/opengl/GLEmitter.java | 84 +++++++++++++++------- 1 file changed, 59 insertions(+), 25 deletions(-) (limited to 'src/jogl/classes/com/jogamp/gluegen/opengl/GLEmitter.java') diff --git a/src/jogl/classes/com/jogamp/gluegen/opengl/GLEmitter.java b/src/jogl/classes/com/jogamp/gluegen/opengl/GLEmitter.java index a096934d0..f4658ad7b 100644 --- a/src/jogl/classes/com/jogamp/gluegen/opengl/GLEmitter.java +++ b/src/jogl/classes/com/jogamp/gluegen/opengl/GLEmitter.java @@ -103,6 +103,9 @@ public class GLEmitter extends ProcAddressEmitter { return; } for (String extension : extensionsRenamedIntoCore) { + if(JavaConfiguration.DEBUG_RENAMES) { + System.err.println(" declarations = glInfo.getDeclarations(extension); if (declarations != null) { for (Iterator iterator = declarations.iterator(); iterator.hasNext();) { @@ -120,6 +123,9 @@ public class GLEmitter extends ProcAddressEmitter { } } } + if(JavaConfiguration.DEBUG_RENAMES) { + System.err.println("RenameExtensionIntoCore: "+extension+" END>"); + } } } @@ -321,8 +327,8 @@ public class GLEmitter extends ProcAddressEmitter { } String symbolRenamed = def.getName(); StringBuilder newComment = new StringBuilder(); - newComment.append("Part of "); - if (0 == addExtensionsOfSymbols2Buffer(newComment, ", ", symbolRenamed, def.getAliasedNames())) { + newComment.append("Part of "); + if (0 == addExtensionsOfSymbols2Buffer(newComment, ", ", "; ", symbolRenamed, def.getAliasedNames())) { if (def.isEnum()) { String enumName = def.getEnumName(); if (null != enumName) { @@ -348,7 +354,6 @@ public class GLEmitter extends ProcAddressEmitter { } } } - newComment.append(""); if (null != optionalComment) { newComment.append("
"); @@ -358,7 +363,48 @@ public class GLEmitter extends ProcAddressEmitter { super.emitDefine(def, newComment.toString()); } - public int addExtensionsOfSymbols2Buffer(StringBuilder buf, String sep, String first, Collection col) { + private int addExtensionListOfSymbol2Buffer(BuildStaticGLInfo glInfo, StringBuilder buf, String sep1, String name) { + int num = 0; + Set extensionNames = glInfo.getExtension(name); + if(null!=extensionNames) { + for(Iterator i=extensionNames.iterator(); i.hasNext(); ) { + String extensionName = i.next(); + if (null != extensionName) { + buf.append(""); + buf.append(extensionName); + buf.append(""); + if (i.hasNext()) { + buf.append(sep1); // same-name seperator + } + num++; + } + } + } + return num; + } + private int addExtensionListOfAliasedSymbols2Buffer(BuildStaticGLInfo glInfo, StringBuilder buf, String sep1, String sep2, String name, Collection exclude) { + int num = 0; + if(null != name) { + num += addExtensionListOfSymbol2Buffer(glInfo, buf, sep1, name); // extensions of given name + boolean needsSep2 = 0 origNames = cfg.getRenamedJavaSymbols(name); + if(null != origNames) { + for(String origName : origNames) { + if(!exclude.contains(origName)) { + if (needsSep2) { + buf.append(sep2); // diff-name seperator + } + int num2 = addExtensionListOfSymbol2Buffer(glInfo, buf, sep1, origName); // extensions of orig-name + needsSep2 = num col) { BuildStaticGLInfo glInfo = getGLConfig().getGLInfo(); if (null == glInfo) { throw new RuntimeException("No GLInfo for: " + first); @@ -367,28 +413,16 @@ public class GLEmitter extends ProcAddressEmitter { if (null == buf) { buf = new StringBuilder(); } - String extensionName; - - Iterator iter = col.iterator(); - if (null != first) { - extensionName = glInfo.getExtension(first); - if (null != extensionName) { - buf.append(extensionName); - if (iter.hasNext()) { - buf.append(sep); - } - num++; - } - } - while (iter.hasNext()) { - extensionName = glInfo.getExtension(iter.next()); - if (null != extensionName) { - buf.append(extensionName); - if (iter.hasNext()) { - buf.append(sep); - } - num++; + + num += addExtensionListOfAliasedSymbols2Buffer(glInfo, buf, sep1, sep2, first, col); + boolean needsSep2 = 0 iter = col.iterator(); iter.hasNext(); ) { + if(needsSep2) { + buf.append(sep2); // diff-name seperator } + int num2 = addExtensionListOfAliasedSymbols2Buffer(glInfo, buf, sep1, sep2, iter.next(), col); + needsSep2 = num