Hello,
I started a project that needs to include a 3D screen inside an Eclipse RCP application using Views. I started with the example in http://www.jpct.net/forum2/index.php?topic=343.0 and successfully got jPCT to run within an RCP application. Unfortunately, not within a View component.
The problem is, that the 3d world is rendered as an external window, and not as hoped inside the RCP view:
(http://www.freeimagehosting.net/uploads/th.e142f83d12.jpg) (http://www.freeimagehosting.net/image.php?e142f83d12.jpg)
I guess, the reason must be the call of the FrameBuffer, wich is the one as in the example:
private void init() {
canvas.setCurrent();
try {
GLContext.useContext(canvas);
} catch (LWJGLException e) {
e.printStackTrace();
}
buffer = new FrameBuffer(640, 480, FrameBuffer.SAMPLINGMODE_NORMAL);
buffer.disableRenderer(IRenderer.RENDERER_SOFTWARE);
buffer.enableRenderer(IRenderer.RENDERER_OPENGL);
}
Furthermore, the render() function is called on every SWT.Paint and SWT.Resize event and is
private void render() {
buffer.clear();
world.renderScene(buffer);
world.draw(buffer);
buffer.update();
buffer.displayGLOnly();
canvas.swapBuffers();
}
Has anyone experience with this behaviour?
Thanks in advance.
Did you set http://www.jpct.net/doc/com/threed/jpct/Config.html#glSkipInitialization (http://www.jpct.net/doc/com/threed/jpct/Config.html#glSkipInitialization) to true before enabling the GLRenderer?
Thanks for the tip! :) Setting
Config.glSkipInitialization = true;
renders the 3d world into the RCP view.
Cool! What's the exact purpose of having a 3d view inside eclipse. It sounds interesting.