diff options
-rw-r--r-- | src/java/com/sun/gluegen/opengl/GLEmitter.java | 19 | ||||
-rw-r--r-- | src/java/com/sun/gluegen/runtime/opengl/GLUnifiedName.java | 9 |
2 files changed, 13 insertions, 15 deletions
diff --git a/src/java/com/sun/gluegen/opengl/GLEmitter.java b/src/java/com/sun/gluegen/opengl/GLEmitter.java index 27a77fc..b9c4349 100644 --- a/src/java/com/sun/gluegen/opengl/GLEmitter.java +++ b/src/java/com/sun/gluegen/opengl/GLEmitter.java @@ -332,17 +332,16 @@ public class GLEmitter extends ProcAddressEmitter protected void validateFunctionsToBind(Set/*FunctionSymbol*/ funcsSet) { ArrayList newUniFuncs = new ArrayList(); + HashSet origFuncNames = new HashSet(); for (Iterator iter = funcsSet.iterator(); iter.hasNext(); ) { FunctionSymbol fsOrig = (FunctionSymbol) iter.next(); + origFuncNames.add(fsOrig.getName()); GLUnifiedName uniName = new GLUnifiedName(fsOrig.getName()); if (GLEmitter.shouldIgnore(uniName, (GLConfiguration)cfg)) { iter.remove(); // remove ignored function } else { if( uniName.isExtensionARB() && !((GLConfiguration)cfg).skipProcAddressGen(fsOrig.getName()) ) { - if(!funcNameMap.containsKey(uniName.getUni())) { - funcNameMap.put(uniName.getUni(), uniName); - } FunctionSymbol fsUni = new FunctionSymbol(uniName.getUni(), fsOrig.getType()); if(!funcsSet.contains(fsUni)) { newUniFuncs.add(fsUni); // add new uni name @@ -350,10 +349,14 @@ public class GLEmitter extends ProcAddressEmitter "\n\tARB: "+fsOrig+ "\n\tUNI: "+fsUni); } else { + uniName.addOrig(uniName.getUni()); // the original name w/o extension System.err.println("INFO: Dub ARB Normalized Function:"+ "\n\tARB: "+fsOrig+ "\n\tDUB: "+fsUni); } + if(!funcNameMap.containsKey(uniName.getUni())) { + funcNameMap.put(uniName.getUni(), uniName); + } iter.remove(); // remove ARB function // make the function being dynamical fetched, due to it's dynamic naming scheme ((GLConfiguration)cfg).addForceProcAddressGen(uniName.getUni()); @@ -374,10 +377,14 @@ public class GLEmitter extends ProcAddressEmitter FunctionSymbol fsUni = new FunctionSymbol(uniName.getUni(), fsOrig.getType()); if(funcsSet.contains(fsUni)) { GLUnifiedName uniNameMap = (GLUnifiedName) funcNameMap.get(uniName.getUni()); - if(null!=uniNameMap) { - uniNameMap.addOrig(fsOrig.getName()); - } else { + if(null==uniNameMap) { funcNameMap.put(uniName.getUni(), uniName); + uniNameMap=uniName; + } else { + uniNameMap.addOrig(fsOrig.getName()); // add the VEN extension name + } + if(origFuncNames.contains(uniName.getUni())) { + uniNameMap.addOrig(uniName.getUni()); // the original name w/o extension } iter.remove(); // remove VEN function (already incl. as ARB) System.err.println("INFO: Dub VEN Function:"+ diff --git a/src/java/com/sun/gluegen/runtime/opengl/GLUnifiedName.java b/src/java/com/sun/gluegen/runtime/opengl/GLUnifiedName.java index 89d40e3..403e388 100644 --- a/src/java/com/sun/gluegen/runtime/opengl/GLUnifiedName.java +++ b/src/java/com/sun/gluegen/runtime/opengl/GLUnifiedName.java @@ -57,10 +57,6 @@ public class GLUnifiedName implements Cloneable { if(str.endsWith(extensions[i])) { return true; } - /* - if(str.startsWith("GL_"+extensions[i]+"_")) { - return true; - } */ } return false; } @@ -77,11 +73,6 @@ public class GLUnifiedName implements Cloneable { str = str.substring(0, str.length()-extensions[i].length()); touched=true; } - /* - if(str.startsWith("GL_"+extensions[i]+"_")) { - str = "GL_"+str.substring(4+extensions[i].length()); - touched=true; - } */ } return str; } |