From 02937ccd2cb974bd1e96a8ebfa51a4d69d5082f1 Mon Sep 17 00:00:00 2001 From: Luke Benstead Date: Thu, 28 Feb 2019 08:46:13 +0000 Subject: [PATCH] Add stub with just GL_PROJECTION_MATRIX supported --- GL/matrix.c | 4 ++++ GL/private.h | 2 ++ GL/state.c | 12 ++++++++++++ 3 files changed, 18 insertions(+) diff --git a/GL/matrix.c b/GL/matrix.c index d4ce3ff..85f0233 100644 --- a/GL/matrix.c +++ b/GL/matrix.c @@ -33,6 +33,10 @@ static const matrix_t IDENTITY = { void APIENTRY glDepthRange(GLclampf n, GLclampf f); +matrix_t* _glGetProjectionMatrix() { + return (matrix_t*) stack_top(&MATRIX_STACKS[1]); +} + void initMatrices() { init_stack(&MATRIX_STACKS[0], sizeof(matrix_t), 32); init_stack(&MATRIX_STACKS[1], sizeof(matrix_t), 32); diff --git a/GL/private.h b/GL/private.h index c496e19..8fb07b0 100644 --- a/GL/private.h +++ b/GL/private.h @@ -108,6 +108,8 @@ void _matrixLoadModelView(); void _matrixLoadTexture(); void _applyRenderMatrix(); +matrix_t* _glGetProjectionMatrix(); + void wipeTextureOnFramebuffers(GLuint texture); GLubyte checkImmediateModeInactive(const char* func); diff --git a/GL/state.c b/GL/state.c index 96c0bf2..0fcfd81 100644 --- a/GL/state.c +++ b/GL/state.c @@ -563,6 +563,18 @@ void APIENTRY glGetBooleanv(GLenum pname, GLboolean* params) { } } +void APIENTRY glGetFloatv(GLenum pname, GLfloat* params) { + switch(pname) { + case GL_PROJECTION_MATRIX: + memcpy(params, _glGetProjectionMatrix(), sizeof(float) * 16); + break; + default: + _glKosThrowError(GL_INVALID_ENUM, "glGetIntegerv"); + _glKosPrintError(); + break; + } +} + void APIENTRY glGetIntegerv(GLenum pname, GLint *params) { switch(pname) { case GL_MAX_LIGHTS: