protected void setupDefaultTargets(final TextureStoreFormat outputformat) { _renderTargetMap.put("*Framebuffer", new RenderTarget_Framebuffer()); _inOutTargetA = new RenderTarget_Texture2D(_canvasSettings.getWidth(), _canvasSettings.getHeight(), outputformat); _inOutTargetB = new RenderTarget_Texture2D(_canvasSettings.getWidth(), _canvasSettings.getHeight(), outputformat); }
protected void setupDefaultTargets(final TextureStoreFormat outputformat) { _renderTargetMap.put(EffectManager.RT_FRAMEBUFFER, new RenderTarget_Framebuffer()); _inOutTargetA = new RenderTarget_Texture2D(_canvasSettings.getWidth(), _canvasSettings.getHeight(), outputformat); _inOutTargetB = new RenderTarget_Texture2D(_canvasSettings.getWidth(), _canvasSettings.getHeight(), outputformat); }
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; } }
protected void initTargets(final EffectManager manager) { final DisplaySettings canvas = manager.getCanvasSettings(); final int downsampledHeight = Math.round(canvas.getHeight() * _downsampleRatio); final int downsampledWidth = Math.round(canvas.getWidth() * _downsampleRatio); final RenderTarget_Texture2D main = new RenderTarget_Texture2D(downsampledWidth, downsampledHeight, manager .getOutputFormat()); main.getTexture().setWrap(WrapMode.Clamp); manager.getRenderTargetMap().put(RT_MAIN, main); final RenderTarget_Texture2D secondary = new RenderTarget_Texture2D(downsampledWidth, downsampledHeight, manager.getOutputFormat()); secondary.getTexture().setWrap(WrapMode.Clamp); manager.getRenderTargetMap().put(RT_SECONDARY, secondary); }
protected void initTargets(final EffectManager manager) { final DisplaySettings canvas = manager.getCanvasSettings(); final int downsampledHeight = Math.round(canvas.getHeight() * _downsampleRatio); final int downsampledWidth = Math.round(canvas.getWidth() * _downsampleRatio); final RenderTarget_Texture2D main = new RenderTarget_Texture2D(downsampledWidth, downsampledHeight, manager.getOutputFormat()); main.getTexture().setWrap(WrapMode.EdgeClamp); manager.getRenderTargetMap().put(RT_MAIN, main); final RenderTarget_Texture2D secondary = new RenderTarget_Texture2D(downsampledWidth, downsampledHeight, manager.getOutputFormat()); secondary.getTexture().setWrap(WrapMode.EdgeClamp); manager.getRenderTargetMap().put(RT_SECONDARY, secondary); }
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 EffectManager(final DisplaySettings settings, final TextureStoreFormat outputformat) { _canvasSettings = settings; _fsqCamera = new Camera(settings.getWidth(), settings.getHeight()); _fsqCamera.setFrustum(-1, 1, -1, 1, 1, -1); _fsqCamera.setProjectionMode(ProjectionMode.Parallel); _fsqCamera.setAxes(Vector3.NEG_UNIT_X, Vector3.UNIT_Y, Vector3.NEG_UNIT_Z); _outputFormat = outputformat; setupDefaultTargets(outputformat); }
private void initTargets(final EffectManager manager) { final DisplaySettings canvas = manager.getCanvasSettings(); final int downsampledHeight = Math.round(canvas.getHeight() * _downsampleRatio); final int downsampledWidth = Math.round(canvas.getWidth() * _downsampleRatio); final RenderTarget_Texture2D downsampled = new RenderTarget_Texture2D(downsampledWidth, downsampledHeight, TextureStoreFormat.RGBA16F); downsampled.getTexture().setWrap(WrapMode.EdgeClamp); manager.getRenderTargetMap().put(RT_DOWNSAMPLED, downsampled); manager.getRenderTargetMap().put(RT_LUM64x64, getLuminanceDownsampleTexture(64)); manager.getRenderTargetMap().put(RT_LUM16x16, getLuminanceDownsampleTexture(16)); manager.getRenderTargetMap().put(RT_LUM1x1, getLuminanceDownsampleTexture(1)); final RenderTarget_Texture2D brightmap = new RenderTarget_Texture2D(downsampledWidth, downsampledHeight, TextureStoreFormat.RGBA16F); brightmap.getTexture().setWrap(WrapMode.EdgeClamp); manager.getRenderTargetMap().put(RT_BRIGHTMAP, brightmap); final RenderTarget_Texture2D bloomHoriz = new RenderTarget_Texture2D(downsampledWidth, downsampledHeight, TextureStoreFormat.RGBA8); bloomHoriz.getTexture().setWrap(WrapMode.EdgeClamp); manager.getRenderTargetMap().put(RT_BLOOM_HORIZONTAL, bloomHoriz); final RenderTarget_Texture2D bloom = new RenderTarget_Texture2D(downsampledWidth, downsampledHeight, TextureStoreFormat.RGBA8); bloom.getTexture().setWrap(WrapMode.EdgeClamp); manager.getRenderTargetMap().put(RT_BLOOM, bloom); }
private void initTargets(final EffectManager manager) { final DisplaySettings canvas = manager.getCanvasSettings(); final int downsampledHeight = Math.round(canvas.getHeight() * _downsampleRatio); final int downsampledWidth = Math.round(canvas.getWidth() * _downsampleRatio); final RenderTarget_Texture2D downsampled = new RenderTarget_Texture2D(downsampledWidth, downsampledHeight, TextureStoreFormat.RGBA16F); downsampled.getTexture().setWrap(WrapMode.Clamp); manager.getRenderTargetMap().put(RT_DOWNSAMPLED, downsampled); manager.getRenderTargetMap().put(RT_LUM64x64, getLuminanceDownsampleTexture(64)); manager.getRenderTargetMap().put(RT_LUM16x16, getLuminanceDownsampleTexture(16)); manager.getRenderTargetMap().put(RT_LUM1x1, getLuminanceDownsampleTexture(1)); final RenderTarget_Texture2D brightmap = new RenderTarget_Texture2D(downsampledWidth, downsampledHeight, TextureStoreFormat.RGBA16F); brightmap.getTexture().setWrap(WrapMode.Clamp); manager.getRenderTargetMap().put(RT_BRIGHTMAP, brightmap); final RenderTarget_Texture2D bloomHoriz = new RenderTarget_Texture2D(downsampledWidth, downsampledHeight, TextureStoreFormat.RGBA8); bloomHoriz.getTexture().setWrap(WrapMode.Clamp); manager.getRenderTargetMap().put(RT_BLOOM_HORIZONTAL, bloomHoriz); final RenderTarget_Texture2D bloom = new RenderTarget_Texture2D(downsampledWidth, downsampledHeight, TextureStoreFormat.RGBA8); bloom.getTexture().setWrap(WrapMode.Clamp); manager.getRenderTargetMap().put(RT_BLOOM, bloom); }
@Override public void init() { if (_inited) { return; } GLFWErrorCallback.createPrint(System.err).set(); if (!GLFW.glfwInit()) { throw new IllegalStateException("Unable to initialize GLFW"); } try { GLFW.glfwDefaultWindowHints(); GLFW.glfwWindowHint(GLFW.GLFW_RESIZABLE, GL11C.GL_FALSE); GLFW.glfwWindowHint(GLFW.GLFW_VISIBLE, GL11C.GL_FALSE); GLFW.glfwWindowHint(GLFW.GLFW_CONTEXT_VERSION_MAJOR, 3); GLFW.glfwWindowHint(GLFW.GLFW_CONTEXT_VERSION_MINOR, 3); GLFW.glfwWindowHint(GLFW.GLFW_OPENGL_DEBUG_CONTEXT, GLFW.GLFW_TRUE); GLFW.glfwWindowHint(GLFW.GLFW_OPENGL_PROFILE, GLFW.GLFW_OPENGL_CORE_PROFILE); GLFW.glfwWindowHint(GLFW.GLFW_OPENGL_FORWARD_COMPAT, GLFW.GLFW_TRUE); GLFW.glfwSetErrorCallback(_errorCallback = GLFWErrorCallback.createPrint(System.err)); _windowId = GLFW.glfwCreateWindow(_settings.getWidth(), _settings.getHeight(), "Ardor3D", 0, 0); } 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; }
public JoglAwtCanvas(final DisplaySettings settings, final JoglCanvasRenderer canvasRenderer, final CapsUtil capsUtil) { super(capsUtil.getCapsForSettings(settings)); _drawerGLRunnable = new JoglDrawerRunnable(canvasRenderer); _initializerRunnable = new JoglInitializerRunnable(this, settings); _settings = settings; _canvasRenderer = canvasRenderer; setFocusable(true); requestFocus(); setSize(_settings.getWidth(), _settings.getHeight()); setIgnoreRepaint(true); setAutoSwapBufferMode(false); }
public JoglNewtAwtCanvas(final DisplaySettings settings, final JoglCanvasRenderer canvasRenderer, final CapsUtil capsUtil) { super(GLWindow.create(capsUtil.getCapsForSettings(settings))); _drawerGLRunnable = new JoglDrawerRunnable(canvasRenderer); getNewtWindow().setUndecorated(true); _settings = settings; _canvasRenderer = canvasRenderer; setFocusable(true); setSize(_settings.getWidth(), _settings.getHeight()); setIgnoreRepaint(true); getNewtWindow().setAutoSwapBufferMode(false); }
int height = settings.getHeight(); if (!caps.isNonPowerOfTwoTextureSupported()) {
EXTFramebufferObject.glBindFramebufferEXT(EXTFramebufferBlit.GL_DRAW_FRAMEBUFFER_EXT, _fboID); EXTFramebufferObject.glBindFramebufferEXT(EXTFramebufferBlit.GL_READ_FRAMEBUFFER_EXT, _msfboID); EXTFramebufferBlit.glBlitFramebufferEXT(0, 0, _settings.getWidth(), _settings.getHeight(), 0, 0, _settings.getWidth(), _settings.getHeight(), GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT | GL11.GL_STENCIL_BUFFER_BIT, GL11.GL_NEAREST); GL11.glReadPixels(0, 0, _settings.getWidth(), _settings.getHeight(), GL12.GL_BGRA, GL11.GL_UNSIGNED_BYTE, _data);
/** * Applies all settings not related to OpenGL (screen resolution, screen size, etc...) * */ private void applySettings() { _newtWindow.setUndecorated(_settings.isFullScreen()); _newtWindow.setFullscreen(_settings.isFullScreen()); // FIXME Ardor3D does not allow to change the resolution /** * uses the filtering relying on resolution with the size to fetch only the screen mode matching with the * current resolution */ if (_settings.isFullScreen()) { final MonitorDevice monitor = _newtWindow.getMainMonitor(); List<MonitorMode> monitorModes = monitor.getSupportedModes(); // the resolution is provided by the user final Dimension dimension = new Dimension(_settings.getWidth(), _settings.getHeight()); monitorModes = MonitorModeUtil.filterByResolution(monitorModes, dimension); monitorModes = MonitorModeUtil.getHighestAvailableBpp(monitorModes); if (_settings.getFrequency() > 0) { monitorModes = MonitorModeUtil.filterByRate(monitorModes, _settings.getFrequency()); } else { monitorModes = MonitorModeUtil.getHighestAvailableRate(monitorModes); } monitor.setCurrentMode(monitorModes.get(0)); } }
_camera = new Camera(settings.getWidth(), settings.getHeight()); _camera.setFrustumPerspective(45.0f, (float) settings.getWidth() / (float) settings.getHeight(), 1, 1000); _camera.setProjectionMode(ProjectionMode.Perspective); } else { _camera.setFrustumPerspective(_camera.getFovY(), (float) settings.getWidth() / (float) settings.getHeight(), _camera.getFrustumNear(), _camera.getFrustumFar());
setSize(_settings.getWidth(), _settings.getHeight());
_camera = new Camera(settings.getWidth(), settings.getHeight()); _camera.setFrustumPerspective(45.0f, (float) settings.getWidth() / (float) settings.getHeight(), 1, 1000); _camera.setProjectionMode(ProjectionMode.Perspective); (float) settings.getWidth() / (float) settings.getHeight(), _camera.getFrustumNear(), _camera.getFrustumFar());