com.jogamp.gluegen.opengl
Class GLEmitter

java.lang.Object
  extended by ProcAddressEmitter
      extended by com.jogamp.gluegen.opengl.GLEmitter
Direct Known Subclasses:
NativeSignatureEmitter

public class GLEmitter
extends ProcAddressEmitter

A subclass of ProcAddressEmitter with special OpenGL-specific configuration abilities.


Constructor Summary
GLEmitter()
           
 
Method Summary
 int addExtensionsOfSymbols2Buffer(StringBuilder buf, String sep, String first, Collection<String> col)
           
 void beginEmission(GlueEmitterControls controls)
           
protected  JavaConfiguration createConfig()
           
 void emitDefine(ConstantDefinition def, String optionalComment)
           
protected  void endProcAddressTable()
           
protected  List<MethodBinding> expandMethodBinding(MethodBinding binding)
          In order to implement Buffer Object variants of certain functions we generate another MethodBinding which maps the void* argument to a Java long.
protected  void generateModifiedEmitters(JavaMethodBindingEmitter baseJavaEmitter, List<FunctionEmitter> emitters)
           
protected  GLConfiguration getGLConfig()
           
 boolean isBufferObjectMethodBinding(MethodBinding binding)
           
protected  boolean needsBufferObjectVariant(FunctionSymbol sym)
           
protected  boolean needsModifiedEmitters(FunctionSymbol sym)
           
protected  void renameExtensionsIntoCore()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GLEmitter

public GLEmitter()
Method Detail

beginEmission

public void beginEmission(GlueEmitterControls controls)
                   throws IOException
Throws:
IOException

renameExtensionsIntoCore

protected void renameExtensionsIntoCore()

createConfig

protected JavaConfiguration createConfig()

expandMethodBinding

protected List<MethodBinding> expandMethodBinding(MethodBinding binding)
In order to implement Buffer Object variants of certain functions we generate another MethodBinding which maps the void* argument to a Java long. The generation of emitters then takes place as usual. We do however need to keep track of the modified MethodBinding object so that we can also modify the emitters later to inform them that their argument has changed. We might want to push this functionality down into the MethodBinding (i.e., mutators for argument names). We also would need to inform the CMethodBindingEmitter that it is overloaded in this case (though we default to true currently).


needsModifiedEmitters

protected boolean needsModifiedEmitters(FunctionSymbol sym)

isBufferObjectMethodBinding

public boolean isBufferObjectMethodBinding(MethodBinding binding)

emitDefine

public void emitDefine(ConstantDefinition def,
                       String optionalComment)
                throws Exception
Throws:
Exception

addExtensionsOfSymbols2Buffer

public int addExtensionsOfSymbols2Buffer(StringBuilder buf,
                                         String sep,
                                         String first,
                                         Collection<String> col)

generateModifiedEmitters

protected void generateModifiedEmitters(JavaMethodBindingEmitter baseJavaEmitter,
                                        List<FunctionEmitter> emitters)

needsBufferObjectVariant

protected boolean needsBufferObjectVariant(FunctionSymbol sym)

getGLConfig

protected GLConfiguration getGLConfig()

endProcAddressTable

protected void endProcAddressTable()
                            throws Exception
Throws:
Exception


Copyright 2010 JogAmp Community.