restoreMatrixMode();
	public static void matrixProjection( float fovY, float aspect, float near, float far, Matrix4f result ) {		float h = FastMath.tan( fovY * FastMath.DEG_TO_RAD ) * near * .5f;		float w = h * aspect;		float frustumLeft = -w;		float frustumRight = w;		float frustumBottom = -h;		float frustumTop = h;		float frustumNear = near;		float frustumFar = far;		GL11.glPushMatrix();		GL11.glMatrixMode( GL11.GL_PROJECTION );		GL11.glLoadIdentity();		GL11.glFrustum(				frustumLeft,				frustumRight,				frustumBottom,				frustumTop,				frustumNear,				frustumFar );		if( result != null ) {			tmp_FloatBuffer.rewind();			GL11.glGetFloat( GL11.GL_PROJECTION_MATRIX, tmp_FloatBuffer );			tmp_FloatBuffer.rewind();			result.readFloatBuffer( tmp_FloatBuffer );		}		GL11.glPopMatrix();	}