diff --git a/GL/matrix.c b/GL/matrix.c index 683d83f..f71a624 100644 --- a/GL/matrix.c +++ b/GL/matrix.c @@ -39,6 +39,10 @@ Matrix4x4* _glGetModelViewMatrix() { return (Matrix4x4*) stack_top(&MATRIX_STACKS[0]); } +GLenum _glGetMatrixMode() { + return MATRIX_MODE; +} + void _glInitMatrices() { init_stack(&MATRIX_STACKS[0], sizeof(Matrix4x4), 32); init_stack(&MATRIX_STACKS[1], sizeof(Matrix4x4), 32); diff --git a/GL/private.h b/GL/private.h index cc42dae..35707fd 100644 --- a/GL/private.h +++ b/GL/private.h @@ -332,6 +332,7 @@ extern GLfloat HALF_POINT_SIZE; Matrix4x4* _glGetProjectionMatrix(); Matrix4x4* _glGetModelViewMatrix(); +GLenum _glGetMatrixMode(); void _glWipeTextureOnFramebuffers(GLuint texture); diff --git a/GL/state.c b/GL/state.c index 04003f4..cac3fba 100644 --- a/GL/state.c +++ b/GL/state.c @@ -996,6 +996,9 @@ void APIENTRY glGetIntegerv(GLenum pname, GLint *params) { case GL_MAX_LIGHTS: *params = MAX_GLDC_LIGHTS; break; + case GL_MATRIX_MODE: + *params = _glGetMatrixMode(); + break; case GL_TEXTURE_BINDING_2D: *params = (_glGetBoundTexture()) ? _glGetBoundTexture()->index : 0; break;