Class GLPipelineFactory

  • public class GLPipelineFactory
    extends Object
    Factory for pipelining GL instances
    • Field Detail

      • DEBUG

        public static final boolean DEBUG
    • Constructor Detail

      • GLPipelineFactory

        public GLPipelineFactory()
    • Method Detail

      • create

        public static final GL create​(String pipelineClazzBaseName,
                                      Class<?> reqInterface,
                                      GL downstream,
                                      Object[] additionalArgs)
        Creates a pipelined GL instance using the given downstream downstream and optional arguments additionalArgs for the constructor.

        Sample code which installs a Debug and Trace pipeline automatic w/ user defined interface, here: GL2ES2:

             gl = drawable.setGL( GLPipelineFactory.create("com.jogamp.opengl.Debug", GL2ES2.class, gl, null) );
             gl = drawable.setGL( GLPipelineFactory.create("com.jogamp.opengl.Trace", GL2ES2.class, gl, new Object[] { System.err } ) );
        or automatic w/ automatic defined class:
             gl = drawable.setGL( GLPipelineFactory.create("com.jogamp.opengl.Debug",         null, gl, null) );
             gl = drawable.setGL( GLPipelineFactory.create("com.jogamp.opengl.Trace",         null, gl, new Object[] { System.err } ) );

        The upstream GL instance is determined as follows:

        • Use pipelineClazzBaseName as the class name's full basename, incl. package name
        • For the downstream class and it's superclasses, do:
          • For all downstream class and superclass interfaces, do:
            • If reqInterface is not null and the interface is unequal, continue loop.
            • If downstream is not instance of interface, continue loop.
            • If upstream class is available use it, end loop.

        pipelineClazzBaseName - the basename of the pipline class name
        reqInterface - optional requested interface to be used, may be null, in which case the first matching one is used
        downstream - is always the 1st argument for the upstream constructor
        additionalArgs - additional arguments for the upstream constructor