public void draw(final CountDownLatch latch) { if (!_inited) { init(); } if (!isDisposed() && isVisible()) { // draw our scene to FBO checkRTT(); _rtt.setBackgroundColor(_canvasRenderer.getRenderer().getBackgroundColor()); _rtt.render(_canvasRenderer.getScene(), _texList, Renderer.BUFFER_COLOR_AND_DEPTH); // now render our quad final Renderer renderer = _canvasRenderer.getRenderer(); // clear color buffer renderer.clearBuffers(Renderer.BUFFER_COLOR); // draw ortho quad, textured with our actual scene _quad.draw(renderer); // flush render buckets renderer.flushFrame(false); // Clean up card garbage such as textures, vbos, etc. ContextGarbageCollector.doRuntimeCleanup(renderer); // swap our swt managed back buffer swapBuffers(); } latch.countDown(); }
_canvasRenderer.getRenderer().getTextureUtils().deleteTexture(_fboTexture); _rtt = _canvasRenderer.getRenderer().createTextureRenderer(width, height, _settings.getDepthBits(), _settings.getSamples());
@MainThread public void init() { // tell our parent to lay us out so we have the right starting size. getParent().layout(); _quad = new Quad("fsq", 2, 2); _quad.setRenderMaterial("unlit/textured/fsq.yaml"); _quad.setModelBound(new BoundingBox()); _quad.getSceneHints().setLightCombineMode(LightCombineMode.Off); _quad.getSceneHints().setTextureCombineMode(TextureCombineMode.Replace); _quad.getSceneHints().setRenderBucketType(RenderBucketType.Skip); checkRTT(); _canvasRenderer.getCamera().apply(_canvasRenderer.getRenderer()); _inited = true; }