public JoglPanel(final TestbedModel model, final TestbedController controller) { super(new GLCapabilities(GLProfile.getDefault())); this.controller = controller; setSize(600, 600); setPreferredSize(new Dimension(600, 600)); setAutoSwapBufferMode(true); addGLEventListener(this); AWTPanelHelper.addHelpAndPanelListeners(this, model, controller, SCREEN_DRAG_BUTTON); }
final GLCapabilities caps = new GLCapabilities(getProfile()); caps.setHardwareAccelerated(true); caps.setDoubleBuffered(true); caps.setAlphaBits(settings.getAlphaBits()); caps.setDepthBits(settings.getDepthBits()); caps.setNumSamples(settings.getSamples()); caps.setSampleBuffers(settings.getSamples() != 0); caps.setStereo(settings.isStereo()); caps.setStencilBits(settings.getStencilBits()); switch (settings.getColorDepth()) { case 32: case 24: caps.setRedBits(8); caps.setBlueBits(8); caps.setGreenBits(8); break; case 16: caps.setRedBits(4); caps.setBlueBits(4); caps.setGreenBits(4); break; caps.setOnscreen(onscreen); if (!onscreen) { caps.setBitmap(bitmapRequested); caps.setPBuffer(pbufferRequested); caps.setFBO(fboRequested);
/** Fix opaque setting while preserve alpha bits */ public static GLCapabilities fixOpaqueGLCapabilities(final GLCapabilities capsRequested, final boolean isOpaque) { if( capsRequested.isBackgroundOpaque() != isOpaque) { final int alphaBits = capsRequested.getAlphaBits(); capsRequested.setBackgroundOpaque(isOpaque); capsRequested.setAlphaBits(alphaBits); } return capsRequested; }
/** * Defaults to false.<br> * Indicates whether sample buffers for full-scene antialiasing * (FSAA) should be allocated for this drawable.<br> * Mind that this requires the alpha component.<br> * If enabled this method also invokes {@link #setAlphaBits(int) setAlphaBits(1)} * if {@link #getAlphaBits()} == 0.<br> */ public void setSampleBuffers(final boolean enable) { sampleBuffers = enable; if(sampleBuffers && getAlphaBits()==0) { setAlphaBits(1); } }
public static final GLCapabilities fixWinAttribBitsAndHwAccel(final AbstractGraphicsDevice device, final int winattrbits, final GLCapabilities caps) { caps.setBitmap ( 0 != ( BITMAP_BIT & winattrbits ) ); caps.setPBuffer ( 0 != ( PBUFFER_BIT & winattrbits ) ); caps.setFBO ( 0 != ( FBO_BIT & winattrbits ) ); // we reflect availability semantics, hence setting onscreen at last (maybe overwritten above)! caps.setOnscreen( 0 != ( WINDOW_BIT & winattrbits ) ); final int accel = GLContext.isHardwareRasterizer( device, caps.getGLProfile() ); if(0 == accel && caps.getHardwareAccelerated() ) { caps.setHardwareAccelerated(false); } return caps; }
final GLCapabilities caps = new GLCapabilities(glp); int alphaBits = 0; for (int i = 0; i < len; i++) { switch (attr) { case CGL.NSOpenGLPFAAccelerated: caps.setHardwareAccelerated(ivalue != 0); break; caps.setPBuffer(ivalue != 0); break; caps.setDoubleBuffered(ivalue != 0); break; caps.setStereo(ivalue != 0); break; caps.setRedBits(bitSize); caps.setGreenBits(bitSize); caps.setBlueBits(bitSize); caps.setDepthBits(ivalue); break; caps.setAccumRedBits(bitSize); caps.setAccumGreenBits(bitSize); caps.setAccumBlueBits(bitSize); caps.setAccumAlphaBits(bitSize);
res.setDoubleBuffered(glXGetConfig(display, info, GLX.GLX_DOUBLEBUFFER, tmp) != 0); res.setStereo (glXGetConfig(display, info, GLX.GLX_STEREO, tmp) != 0); res.setSampleBuffers(glXGetConfig(display, info, GLX.GLX_SAMPLE_BUFFERS, tmp) != 0); res.setNumSamples (glXGetConfig(display, info, GLX.GLX_SAMPLES, tmp)); null ; final int alphaMask = ( null != xrmask ) ? xrmask.getAlphaMask() : 0; res.setBackgroundOpaque( 0 >= alphaMask ); if( !res.isBackgroundOpaque() ) { res.setTransparentRedValue(xrmask.getRedMask()); res.setTransparentGreenValue(xrmask.getGreenMask()); res.setTransparentBlueValue(xrmask.getBlueMask()); res.setTransparentAlphaValue(alphaMask); res.setHardwareAccelerated(true); res.setDepthBits (glXGetConfig(display, info, GLX.GLX_DEPTH_SIZE, tmp)); res.setStencilBits (glXGetConfig(display, info, GLX.GLX_STENCIL_SIZE, tmp)); res.setRedBits (glXGetConfig(display, info, GLX.GLX_RED_SIZE, tmp)); res.setGreenBits (glXGetConfig(display, info, GLX.GLX_GREEN_SIZE, tmp)); res.setBlueBits (glXGetConfig(display, info, GLX.GLX_BLUE_SIZE, tmp)); res.setAlphaBits (glXGetConfig(display, info, GLX.GLX_ALPHA_SIZE, tmp)); res.setAccumRedBits (glXGetConfig(display, info, GLX.GLX_ACCUM_RED_SIZE, tmp)); res.setAccumGreenBits(glXGetConfig(display, info, GLX.GLX_ACCUM_GREEN_SIZE, tmp)); res.setAccumBlueBits (glXGetConfig(display, info, GLX.GLX_ACCUM_BLUE_SIZE, tmp)); res.setAccumAlphaBits(glXGetConfig(display, info, GLX.GLX_ACCUM_ALPHA_SIZE, tmp));
final GLCapabilities caps = new GLCapabilities(profile); caps.setHardwareAccelerated(true); caps.setDoubleBuffered(true); caps.setAlphaBits(_settings.getAlphaBits()); caps.setDepthBits(_settings.getDepthBits()); caps.setNumSamples(_settings.getSamples()); caps.setSampleBuffers(_settings.getSamples() != 0); caps.setStencilBits(_settings.getStencilBits()); caps.setDoubleBuffered(false); caps.setOnscreen(false); caps.setPBuffer(true); _offscreenDrawable = fac.createOffscreenAutoDrawable(null, caps, null, _width, _height, _parentContext); _context = _offscreenDrawable.getContext();
final static public void initCaps(boolean stereo){ if (caps != null){ return; } //System.out.println("profile -- is GL2 = " + profile.isGL2()+" -- isHardwareRasterizer = "+ profile.isHardwareRasterizer()); caps = new GLCapabilities(profile); //caps.setAlphaBits(8); //anti-aliasing caps.setSampleBuffers(true); caps.setNumSamples(4); //avoid flickering caps.setDoubleBuffered(true); //caps.setDoubleBuffered(false); if (stereo){ //add stereo caps.setStereo(true); } //stencil buffer is needed for hacked passive 3D caps.setStencilBits(1); }
final boolean forceTransparentFlag) { if (capsChosen == null) { capsChosen = new GLCapabilities(null); final GLCapabilities fixedCaps = new GLCapabilities(glp); fixedCaps.setSampleBuffers(true); fixedCaps.setNumSamples(4); fixedCaps.setRedBits(8); fixedCaps.setGreenBits(8); fixedCaps.setBlueBits(8); fixedCaps.setDepthBits(16); if( !capsChosen.isOnscreen() ) { fixedCaps.setOnscreen(false); fixedCaps.setPBuffer(capsChosen.isPBuffer()); fixedCaps.setFBO(capsChosen.isFBO()); final GLCapabilities fixedCaps = new GLCapabilities(glp); fixedCaps.setRedBits(5); fixedCaps.setGreenBits(6); fixedCaps.setBlueBits(5); fixedCaps.setDepthBits(16); if( !capsChosen.isOnscreen() ) { fixedCaps.setOnscreen(false); fixedCaps.setPBuffer(capsChosen.isPBuffer()); fixedCaps.setFBO(capsChosen.isFBO()); final GLCapabilities fixedCaps = new GLCapabilities(glp); fixedCaps.setSampleBuffers(true); fixedCaps.setNumSamples(4);
final GLCapabilities reqCapsAny = new GLCapabilities(glp); reqCapsAny.setRedBits(5); reqCapsAny.setGreenBits(5); reqCapsAny.setBlueBits(5); reqCapsAny.setAlphaBits(0); reqCapsAny.setDoubleBuffered(false);
private void setupOpenGL( boolean testSphere ) { GLCapabilities caps = new GLCapabilities(); caps.setDoubleBuffered( true ); caps.setHardwareAccelerated( true ); caps.setAlphaBits( 8 ); caps.setAccumAlphaBits( 8 ); openGLEventListener = new OpenGLEventHandler( testSphere ); canvas = new GLCanvas( caps ); canvas.addGLEventListener( openGLEventListener ); canvas.addMouseListener( openGLEventListener.getTrackBall() ); canvas.addMouseWheelListener( openGLEventListener.getTrackBall() ); canvas.addMouseMotionListener( openGLEventListener.getTrackBall() ); getContentPane().add( canvas, BorderLayout.CENTER ); }
final GLCapabilities caps = new GLCapabilities(GLProfile.get(glProfileName)); caps.setAlphaBits(glAlphaBits); if(0<glNumMultisampleBuffer) { caps.setSampleBuffers(true); caps.setNumSamples(glNumMultisampleBuffer); caps.setBackgroundOpaque(glOpaque); glWindow = GLWindow.create(caps); glWindow.setUpdateFPSFrames(FPSCounter.DEFAULT_FRAMES_PER_INTERVAL, System.err);
GLCapabilities caps = new GLCapabilities(glp); caps.setDoubleBuffered(true); canvas = new GLCanvas(caps); canvas.addGLEventListener(this);
newGLADCaps.setDoubleBuffered(false); newGLADCaps.setOnscreen(false); if( printNumSamples != newGLADCaps.getNumSamples() ) { newGLADCaps.setSampleBuffers(0 < printNumSamples); newGLADCaps.setNumSamples(printNumSamples); final GLDrawableFactory factory = GLDrawableFactory.getFactory(newGLADCaps.getGLProfile()); GLOffscreenAutoDrawable offGLAD = null; try {
public GLCanvas createGLCanvas(int width, int height) { //GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice(); GLCapabilities caps = new GLCapabilities(GLProfile.get(GLProfile.GL2)); caps.setHardwareAccelerated(true); caps.setDoubleBuffered(true); GLCanvas glCanvas = new GLCanvas(caps);//new GLCapabilities(GLProfile.get(GLProfile.GL))); //GLCapabilitiesImmutable icaps = glCanvas.getChosenGLCapabilities(); //boolean hwa = icaps.getHardwareAccelerated(); glCanvas.setSize( width, height ); glCanvas.setIgnoreRepaint( true ); return glCanvas; }
caps.setRedBits(4); caps.setGreenBits(4); caps.setBlueBits(4); caps.setAlphaBits(4); break; case GL.GL_RGB5_A1: caps.setRedBits(5); caps.setGreenBits(5); caps.setBlueBits(5); caps.setAlphaBits(1); break; case GL.GL_RGB565: caps.setRedBits(5); caps.setGreenBits(6); caps.setBlueBits(5); caps.setAlphaBits(0); break; case GL.GL_RGB8: caps.setRedBits(8); caps.setGreenBits(8); caps.setBlueBits(8); caps.setAlphaBits(0); break; case GL.GL_RGBA8: caps.setRedBits(8); caps.setGreenBits(8); caps.setBlueBits(8); caps.setAlphaBits(8); break;
if( isFBO ) { targetCaps = new GLCapabilities( chosenCaps.getGLProfile() ); } else { targetCaps = chosenCaps; } else { final GLCapabilities _fixedCaps = MacOSXCGLGraphicsConfiguration.NSPixelFormat2GLCapabilities(chosenCaps.getGLProfile(), pixelFormat); if( !_fixedCaps.isPBuffer() && isPBuffer ) { throw new InternalError("handle is PBuffer, fixedCaps not: "+drawable); _fixedCaps.setPBuffer( isPBuffer ); // exclusive _fixedCaps.setBitmap( false ); // n/a in our OSX impl. _fixedCaps.setOnscreen( !isFBO && !isPBuffer ); fixedCaps = GLGraphicsConfigurationUtil.fixOpaqueGLCapabilities(_fixedCaps, chosenCaps.isBackgroundOpaque());
public static GLCapabilitiesImmutable clipRGBAGLCapabilities(final GLCapabilitiesImmutable caps, final boolean allowRGB555, final boolean allowAlpha) { final int iR = caps.getRedBits(); final int iG = caps.getGreenBits(); final int iB = caps.getBlueBits(); final int iA = caps.getAlphaBits(); final int oR = clipColor(iR, allowRGB555); final int oG = clipColor(iG, allowRGB555); final int oB = clipColor(iB, allowRGB555); final int oA = ( allowAlpha && 0 < iA ) ? oR : 0 ; // align alpha to red if requested and allowed if( iR != oR || iG != oG || iB != oB || iA != oA ) { final GLCapabilities caps2 = (GLCapabilities) caps.cloneMutable(); caps2.setRedBits(oR); caps2.setGreenBits(oG); caps2.setBlueBits(oB); caps2.setAlphaBits(oA); return caps2; } return caps; }
caps2.setOnscreen(false); caps2.setFBO( useFBO ); caps2.setPBuffer( usePbuffer ); caps2.setBitmap( useBitmap ); if( !doubleBufferAvailable ) { caps2.setDoubleBuffered(false);