Ejemplo n.º 1
0
 public void pushProjectionIdentity(GL2 gl)
 {
     gl.MatrixMode(GL2.GL_PROJECTION);
     this.projectionPushed = true;
     gl.PushMatrix();
     gl.LoadIdentity();
 }
Ejemplo n.º 2
0
 public void pushTextureIdentity(GL2 gl)
 {
     gl.MatrixMode(GL2.GL_TEXTURE);
     this.texturePushed = true;
     gl.PushMatrix();
     gl.LoadIdentity();
 }
Ejemplo n.º 3
0
 public void pushModelviewIdentity(GL2 gl)
 {
     gl.MatrixMode(GL2.GL_MODELVIEW);
     this.modelviewPushed = true;
     gl.PushMatrix();
     gl.LoadIdentity();
 }
Ejemplo n.º 4
0
        /**
         * Sets the the opengl modelview and projection matrices to the given matrices.
         *
         * @param dc         the drawing context
         * @param modelview  the modelview matrix
         * @param projection the projection matrix
         */
        public static void loadGLViewState(DrawContext dc, Matrix modelview, Matrix projection)
        {
            if (dc == null)
            {
                String message = Logging.getMessage("nullValue.DrawContextIsNull");
                Logging.logger().severe(message);
                throw new ArgumentException(message);
            }
            if (dc.getGL() == null)
            {
                String message = Logging.getMessage("nullValue.DrawingContextGLIsNull");
                Logging.logger().severe(message);
                throw new IllegalStateException(message);
            }
            if (modelview == null)
            {
                Logging.logger().fine("nullValue.ModelViewIsNull");
            }
            if (projection == null)
            {
                Logging.logger().fine("nullValue.ProjectionIsNull");
            }

            double[] matrixArray = new double[16];

            GL2 gl = dc.getGL().getGL2(); // GL initialization checks for GL2 compatibility.
            // Store the current matrix-mode state.
            OGLStackHandler ogsh = new OGLStackHandler();

            try
            {
                ogsh.pushAttrib(gl, GL2.GL_TRANSFORM_BIT);

                // Apply the model-view matrix to the current OpenGL context.
                gl.MatrixMode(GL2.GL_MODELVIEW);
                if (modelview != null)
                {
                    modelview.toArray(matrixArray, 0, false);
                    gl.LoadMatrix(matrixArray);
                }
                else
                {
                    gl.LoadIdentity();
                }

                // Apply the projection matrix to the current OpenGL context.
                gl.MatrixMode(GL2.GL_PROJECTION);
                if (projection != null)
                {
                    projection.toArray(matrixArray, 0, false);
                    gl.LoadMatrix(matrixArray);
                }
                else
                {
                    gl.LoadIdentity();
                }
            }
            finally
            {
                ogsh.pop(gl);
            }
        }