当前位置: 首页>>代码示例>>Java>>正文


Java GLDrawableFactory类代码示例

本文整理汇总了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);
}
 
开发者ID:vitrivr,项目名称:cineast,代码行数:26,代码来源:JOGLOffscreenRenderer.java

示例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);
    }
  }
 
开发者ID:google,项目名称:depan,代码行数:16,代码来源:GLScene.java

示例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
    }
}
 
开发者ID:java-opengl-labs,项目名称:jogl-samples,代码行数:48,代码来源:GLEventListenerButton.java

示例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;
}
 
开发者ID:Helioviewer-Project,项目名称:JHelioviewer-SWHV,代码行数:6,代码来源:GLHelper.java

示例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");
}
 
开发者ID:google,项目名称:sagetv,代码行数:71,代码来源:OpenGLGFXCMD.java


注:本文中的com.jogamp.opengl.GLDrawableFactory类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。