public TextureRenderer createTextureRenderer(final DisplaySettings settings, final boolean forcePbuffer, final Renderer renderer, final ContextCapabilities caps) { if (!forcePbuffer && caps.isFBOSupported()) { return new JoglTextureRenderer(settings.getWidth(), settings.getHeight(), settings.getDepthBits(), settings .getSamples(), renderer, caps); } else if (caps.isPbufferSupported()) { return new JoglPbufferTextureRenderer(settings, renderer, caps); } else { logger.severe("No texture renderer support (FBO or Pbuffer)."); return null; } }
public TextureRenderer createTextureRenderer(final DisplaySettings settings, final boolean forcePbuffer, final Renderer renderer, final ContextCapabilities caps) { if (!forcePbuffer && caps.isFBOSupported()) { return new LwjglTextureRenderer(settings.getWidth(), settings.getHeight(), settings.getDepthBits(), settings.getSamples(), renderer, caps); } else if (caps.isPbufferSupported()) { return new LwjglPbufferTextureRenderer(settings, renderer, caps); } else { logger.severe("No texture renderer support (FBO or Pbuffer)."); return null; } } }
public void init() { if (_inited) { return; } // create the Display. final PixelFormat format = new PixelFormat(_settings.getAlphaBits(), _settings.getDepthBits(), _settings.getStencilBits()).withSamples(_settings.getSamples()).withStereo(_settings.isStereo()); try { Display.setParent(_canvas); // NOTE: Workaround for possible lwjgl "pixel not accelerated" bug, as suggested by user "faust" try { Display.create(format); } catch (final LWJGLException e) { // failed to create Display, apply workaround (sleep for 1 second) and try again Thread.sleep(1000); Display.create(format); } } catch (final Exception e) { logger.severe("Cannot create window"); logger.logp(Level.SEVERE, this.getClass().toString(), "initDisplay()", "Exception", e); throw new Ardor3dException("Cannot create window: " + e.getMessage()); } _canvasRenderer.init(_settings, true); // true - do swap in renderer. _inited = true; }
_settings.getStencilBits()).withSamples(_settings.getSamples()) .withBitsPerPixel(_settings.getColorDepth()).withStereo(_settings.isStereo()); _pbuffer = new Pbuffer(_width, _height, format, _texture, null);
public LwjglAwtCanvas(final DisplaySettings settings, final LwjglCanvasRenderer canvasRenderer) throws LWJGLException { super(new PixelFormat(settings.getColorDepth(), settings.getAlphaBits(), settings.getDepthBits(), settings .getStencilBits(), settings.getSamples()).withStereo(settings.isStereo())); _settings = settings; _canvasRenderer = canvasRenderer; _canvasRenderer.setCanvasCallback(new LwjglCanvasCallback() { @Override public void makeCurrent() throws LWJGLException { LwjglAwtCanvas.this.makeCurrent(); } @Override public void releaseContext() throws LWJGLException { LwjglAwtCanvas.this.releaseContext(); } }); }
_settings.getStencilBits()).withSamples(_settings.getSamples()).withStereo(_settings.isStereo());
caps.setAlphaBits(_settings.getAlphaBits()); caps.setDepthBits(_settings.getDepthBits()); caps.setNumSamples(_settings.getSamples()); caps.setSampleBuffers(_settings.getSamples() != 0); caps.setStencilBits(_settings.getStencilBits()); caps.setDoubleBuffered(false);
_settings.getSamples());
if (caps.isFBOMultisampleSupported() && caps.isFBOBlitSupported() && _settings.getSamples() > 0) { _useMSAA = true; EXTFramebufferObject.glBindRenderbufferEXT(EXTFramebufferObject.GL_RENDERBUFFER_EXT, _mscolorRBID); EXTFramebufferMultisample.glRenderbufferStorageMultisampleEXT(EXTFramebufferObject.GL_RENDERBUFFER_EXT, _settings.getSamples(), GL11.GL_RGBA, width, height); EXTFramebufferObject.glBindRenderbufferEXT(EXTFramebufferObject.GL_RENDERBUFFER_EXT, _msdepthRBID); EXTFramebufferMultisample.glRenderbufferStorageMultisampleEXT(EXTFramebufferObject.GL_RENDERBUFFER_EXT, _settings.getSamples(), GL11.GL_DEPTH_COMPONENT, width, height);
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());
if (settings.getSamples() != 0) { GL11C.glEnable(GL13C.GL_MULTISAMPLE);
if (settings.getSamples() != 0 && caps.isMultisampleSupported()) { GL11.glEnable(ARBMultisample.GL_MULTISAMPLE_ARB);
if (settings.getSamples() != 0 && caps.isMultisampleSupported()) { final GL gl = GLContext.getCurrentGL(); gl.glEnable(GL.GL_MULTISAMPLE);