Login  Register

Re: small drawing

Posted by keith on Jul 25, 2016; 3:34pm
URL: https://forum.jogamp.org/small-drawing-tp4036875p4036957.html

Once I added newResizeHandler it drew correctly. So the problem was that the camera was not at the correct size, etc. Setting camera size and frustrumPerspective before shell.open also works since my shell can not be resized.

Thanks for the help.

Keith

 canvas1.addControlListener(newResizeHandler(canvas1, canvasRenderer1));

 static ControlListener newResizeHandler(final JoglNewtSwtCanvas swtCanvas, final CanvasRenderer canvasRenderer) {
        final ControlListener retVal = new ControlListener() {
            @Override
            public void controlMoved(final ControlEvent e) {}

            @Override
            public void controlResized(final ControlEvent event) {
                final Rectangle size = swtCanvas.getClientArea();
                if ((size.width == 0) && (size.height == 0)) {
                    return;
                }
                final float aspect = (float) size.width / (float) size.height;
                final Camera camera = canvasRenderer.getCamera();
                if (camera != null) {
                    final double fovY = camera.getFovY();
                    final double near = camera.getFrustumNear();
                    final double far = camera.getFrustumFar();
                    camera.setFrustumPerspective(fovY, aspect, near, far);
                    camera.resize(size.width, size.height);
                }
            }
        };
        return retVal;
    }