本文整理汇总了Java中com.jogamp.opengl.GLDrawableFactory类的典型用法代码示例。如果您正苦于以下问题:Java GLDrawableFactory类的具体用法?Java GLDrawableFactory怎么用?Java GLDrawableFactory使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
GLDrawableFactory类属于com.jogamp.opengl包,在下文中一共展示了GLDrawableFactory类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: JOGLOffscreenRenderer
import com.jogamp.opengl.GLDrawableFactory; //导入依赖的package包/类
/**
* Default constructor. Defines the width and the height of this JOGLOffscreenRenderer and
* initializes all the required OpenGL bindings.
*
* @param width Width in pixels.
* @param height Height in pixels.
*/
public JOGLOffscreenRenderer(int width, int height) {
/* Assign width and height. */
this.width = width;
this.height = height;
this.aspect = (float) width / (float) height;
/* Initialize GLOffscreenAutoDrawable. */
GLDrawableFactory factory = GLDrawableFactory.getFactory(GL_PROFILE);
this.drawable = factory.createOffscreenAutoDrawable(null, GL_CAPABILITIES,null,width,height);
this.drawable.display();
/* Initialize GLU and GL2. */
this.glu = new GLU();
this.gl = drawable.getGL().getGL2();
/* Set default color. */
gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
}
示例2: createGLContext
import com.jogamp.opengl.GLDrawableFactory; //导入依赖的package包/类
private GLContext createGLContext() {
try {
GLLogger.LOG.info("Create context...");
GLDrawableFactory drawableFactory = GLDrawableFactory.getFactory(DEFAULT_PROFILE);
GLContext result = drawableFactory.createExternalGLContext();
GLLogger.LOG.info(" Done.");
return result;
} catch (Throwable errGl) {
GLLogger.LOG.error("Unable to create GL Context", errGl);
errGl.printStackTrace();
throw new RuntimeException(errGl);
}
}
示例3: drawShape
import com.jogamp.opengl.GLDrawableFactory; //导入依赖的package包/类
@Override
public void drawShape(final GL2ES2 gl, final RegionRenderer renderer, final int[] sampleCount) {
if( null == fboGLAD ) {
final ImageSequence imgSeq = (ImageSequence)texSeq;
final GLContext ctx = gl.getContext();
final GLDrawable drawable = ctx.getGLDrawable();
final GLCapabilitiesImmutable reqCaps = drawable.getRequestedGLCapabilities();
final GLCapabilities caps = (GLCapabilities) reqCaps.cloneMutable();
caps.setFBO(true);
caps.setDoubleBuffered(false);
if( !useAlpha ) {
caps.setAlphaBits(0);
}
final GLDrawableFactory factory = GLDrawableFactory.getFactory(caps.getGLProfile());
fboGLAD = (GLOffscreenAutoDrawable.FBO) factory.createOffscreenAutoDrawable(
drawable.getNativeSurface().getGraphicsConfiguration().getScreen().getDevice(),
caps, null, fboWidth, fboHeight);
fboWidth = 0;
fboHeight = 0;
fboGLAD.setSharedContext(ctx);
fboGLAD.setTextureUnit(imgSeq.getTextureUnit());
fboGLAD.addGLEventListener(glel);
fboGLAD.display(); // 1st init!
final FBObject.TextureAttachment texA01 = fboGLAD.getColorbuffer(GL.GL_FRONT).getTextureAttachment();
final Texture tex = new Texture(texA01.getName(), imgSeq.getTextureTarget(),
fboGLAD.getSurfaceWidth(), fboGLAD.getSurfaceHeight(), fboGLAD.getSurfaceWidth(), fboGLAD.getSurfaceHeight(),
false /* mustFlipVertically */);
imgSeq.addFrame(gl, tex);
markStateDirty();
} else if( 0 != fboWidth*fboHeight ) {
fboGLAD.setSurfaceSize(fboWidth, fboHeight);
fboWidth = 0;
fboHeight = 0;
markStateDirty();
} else if( animateGLEL ) {
fboGLAD.display();
}
super.drawShape(gl, renderer, sampleCount);
if( animateGLEL ) {
markStateDirty(); // keep on going
}
}
示例4: getSharedDrawable
import com.jogamp.opengl.GLDrawableFactory; //导入依赖的package包/类
private static GLAutoDrawable getSharedDrawable(GLProfile profile, GLCapabilities capabilities) {
GLAutoDrawable sharedDrawable = GLDrawableFactory.getFactory(profile).createDummyAutoDrawable(null, true, capabilities, null);
sharedDrawable.display();
return sharedDrawable;
}
示例5: initpbuffer
import com.jogamp.opengl.GLDrawableFactory; //导入依赖的package包/类
private void initpbuffer()
{
GL2 gl;
System.out.println("initpbuffer");
osdwidth=newosdwidth;
osdheight=newosdheight;
GLCapabilities caps = new GLCapabilities(null);
caps.setHardwareAccelerated(true);
caps.setDoubleBuffered(false);
caps.setAlphaBits(8);
caps.setRedBits(8);
caps.setGreenBits(8);
caps.setBlueBits(8);
caps.setDepthBits(0);
caps.setFBO(false);
System.out.println("initpbuffer2");
if (!GLDrawableFactory.getFactory(caps.getGLProfile()).canCreateGLPbuffer(null, caps.getGLProfile()))
{
throw new GLException("pbuffers unsupported");
}
if(pbuffer!=null) pbuffer.destroy();
System.out.println("initpbuffer3");
pbuffer = GLDrawableFactory.getFactory(caps.getGLProfile()).createOffscreenAutoDrawable(null,
caps,
null,
osdwidth,
osdheight
);
pbuffer.setContext(pbuffer.createContext(c.getContext()), true);
//pbuffer.setContext(c.getContext(), false);
System.out.println("initpbuffer4: pbuffers is null? " + (pbuffer==null));
if(pbuffer.getContext().makeCurrent()==GLContext.CONTEXT_NOT_CURRENT)
{
System.out.println("Couldn't make pbuffer current?");
return;
}
System.out.println("initpbuffer5");
gl = pbuffer.getGL().getGL2();
gl.glClearColor( 0.0f, 0.0f, 0.0f, 0.0f);
gl.glClear( gl.GL_COLOR_BUFFER_BIT);
gl.glViewport(0, 0, osdwidth, osdheight);
gl.glMatrixMode(GLMatrixFunc.GL_PROJECTION);
gl.glLoadIdentity();
gl.glOrtho(0,osdwidth,0,osdheight,-1.0,1.0);
gl.glMatrixMode(GLMatrixFunc.GL_MODELVIEW);
gl.glLoadIdentity();
// TODO: look into reusing same texture like OSX version...
if(osdt!=null) gl.glDeleteTextures(1, osdt, 0);
osdt = new int[1];
byte img[] = new byte[osdwidth*osdheight*4];
gl.glGenTextures(1, osdt, 0);
gl.glEnable(gl.GL_TEXTURE_RECTANGLE);
gl.glBindTexture(gl.GL_TEXTURE_RECTANGLE,osdt[0]);
gl.glTexParameteri(gl.GL_TEXTURE_RECTANGLE, gl.GL_TEXTURE_MAG_FILTER, gl.GL_LINEAR);
gl.glTexParameteri(gl.GL_TEXTURE_RECTANGLE, gl.GL_TEXTURE_MIN_FILTER, gl.GL_LINEAR);
gl.glTexImage2D(gl.GL_TEXTURE_RECTANGLE, 0, 4, osdwidth, osdheight, 0,
gl.GL_BGRA, bigendian ? gl.GL_UNSIGNED_INT_8_8_8_8_REV : gl.GL_UNSIGNED_BYTE, java.nio.ByteBuffer.wrap(img));
gl.glEnable(gl.GL_TEXTURE_RECTANGLE);
gl.glBindTexture(gl.GL_TEXTURE_RECTANGLE, osdt[0]);
gl.glCopyTexSubImage2D(gl.GL_TEXTURE_RECTANGLE, 0, 0, 0, 0, 0, osdwidth, osdheight);
gl.glDisable(gl.GL_TEXTURE_RECTANGLE);
System.out.println("initpbuffer6");
pbuffer.getContext().release();
System.out.println("initpbuffer7");
}