예제 #1
0
        public void pop(GL2 gl)
        {
            if (this.attribsPushed)
            {
                gl.PopAttrib();
                this.attribsPushed = false;
            }

            if (this.clientAttribsPushed)
            {
                gl.PopClientAttrib();
                this.clientAttribsPushed = false;
            }

            if (this.modelviewPushed)
            {
                gl.MatrixMode(GL2.GL_MODELVIEW);
                gl.PopMatrix();
                this.modelviewPushed = false;
            }

            if (this.projectionPushed)
            {
                gl.MatrixMode(GL2.GL_PROJECTION);
                gl.PopAttrib();
                this.projectionPushed = false;
            }

            if (this.texturePushed)
            {
                gl.MatrixMode(GL2.GL_TEXTURE);
                gl.PopMatrix();
                this.texturePushed = false;
            }
        }
예제 #2
0
        /**
         * Removes the model-view matrix on top of the matrix stack, and restores the original matrix.
         *
         * @param dc the current World Wind drawing context on which the original matrix will be restored.
         *
         * @throws ArgumentException if <code>dc</code> is null, or if the <code>Globe</code> or <code>GL</code>
         *                                  instances in <code>dc</code> are null.
         */
        public void popReferenceCenter(DrawContext dc)
        {
            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);
            }

            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);

                gl.MatrixMode(GL2.GL_MODELVIEW);

                // Pop the top model-view matrix.
                gl.PopMatrix();
            }
            finally
            {
                ogsh.pop(gl);
            }
        }