From 494ceee05e7f2d939e99c0310e7b72aab8a88ac2 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 10 Apr 2016 16:31:00 +0200 Subject: [PATCH] Update glsm --- libretro-common/glsm/glsm.c | 41 +++++++++++++++++++++++++- libretro-common/include/glsm/glsmsym.h | 14 ++++++++- 2 files changed, 53 insertions(+), 2 deletions(-) diff --git a/libretro-common/glsm/glsm.c b/libretro-common/glsm/glsm.c index 7e36c4c8c7..7e95cc5677 100644 --- a/libretro-common/glsm/glsm.c +++ b/libretro-common/glsm/glsm.c @@ -421,6 +421,15 @@ void rglLinkProgram(GLuint program) glLinkProgram(program); } +void rglFramebufferTexture(GLenum target, GLenum attachment, + GLuint texture, GLint level) +{ +#if defined(HAVE_OPENGLES) && !defined(HAVE_OPENGLES32) +#else + glFramebufferTexture(target, attachment, texture, level); +#endif +} + void rglFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) { @@ -446,7 +455,7 @@ void rglFramebufferRenderbuffer(GLenum target, GLenum attachment, glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer); } -void rglDeleteFramebuffers(GLsizei n, GLuint *framebuffers) +void rglDeleteFramebuffers(GLsizei n, const GLuint *framebuffers) { glDeleteFramebuffers(n, framebuffers); } @@ -703,6 +712,12 @@ void rglUniform4fv(GLint location, GLsizei count, const GLfloat *value) glUniform4fv(location, count, value); } +void rglTexStorage2D(GLenum target, GLsizei levels, GLenum internalFormat, + GLsizei width, GLsizei height) +{ + glTexStorage2D(target, levels, internalFormat, width, height); +} + void rglPolygonOffset(GLfloat factor, GLfloat units) { glsm_ctl(GLSM_CTL_IMM_VBO_DRAW, NULL); @@ -712,6 +727,30 @@ void rglPolygonOffset(GLfloat factor, GLfloat units) gl_state.polygonoffset.units = units; } +void rglDrawBuffers(GLsizei n, const GLenum *bufs) +{ +#if defined(HAVE_OPENGLES) && !defined(HAVE_OPENGLES3) && !defined(HAVE_OPENGLES31) +#else + glDrawBuffers(n, bufs); +#endif +} + +void rglBindVertexArray(GLuint array) +{ +#if defined(HAVE_OPENGLES) && !defined(HAVE_OPENGLES3) && !defined(HAVE_OPENGLES31) +#else + glBindVertexArray(array); +#endif +} + +void rglGenVertexArrays(GLsizei n, GLuint *arrays) +{ +#if defined(HAVE_OPENGLES) && !defined(HAVE_OPENGLES3) && !defined(HAVE_OPENGLES31) +#else + glGenVertexArrays(n, arrays); +#endif +} + /* GLSM-side */ static void glsm_state_setup(void) diff --git a/libretro-common/include/glsm/glsmsym.h b/libretro-common/include/glsm/glsmsym.h index eac9b36276..36fef49c85 100644 --- a/libretro-common/include/glsm/glsmsym.h +++ b/libretro-common/include/glsm/glsmsym.h @@ -41,6 +41,7 @@ extern "C" { #define glCompressedTexImage2D rglCompressedTexImage2D #define glBindTexture rglBindTexture #define glActiveTexture rglActiveTexture +#define glFramebufferTexture rglFramebufferTexture #define glFramebufferTexture2D rglFramebufferTexture2D #define glFramebufferRenderbuffer rglFramebufferRenderbuffer #define glDeleteFramebuffers rglDeleteFramebuffers @@ -112,22 +113,31 @@ extern "C" { #define glReadBuffer rglReadBuffer #define glUniformMatrix4fv rglUniformMatrix4fv #define glGetAttribLocation rglGetAttribLocation +#define glTexStorage2D rglTexStorage2D +#define glDrawBuffers rglDrawBuffers +#define glGenVertexArrays rglGenVertexArrays +#define glBindVertexArray rglBindVertexArray +void rglGenVertexArrays(GLsizei n, GLuint *arrays); void rglReadBuffer(GLenum mode); void rglPixelStorei(GLenum pname, GLint param); void rglTexCoord2f(GLfloat s, GLfloat t); void rglDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices); +void rglTexStorage2D(GLenum target, GLsizei levels, GLenum internalFormat, + GLsizei width, GLsizei height); void rglCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); void glBindTexture(GLenum target, GLuint texture); void glActiveTexture(GLenum texture); +void rglFramebufferTexture(GLenum target, GLenum attachment, + GLuint texture, GLint level); void rglFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); void rglFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -void rglDeleteFramebuffers(GLsizei n, GLuint *framebuffers); +void rglDeleteFramebuffers(GLsizei n, const GLuint *framebuffers); void rglRenderbufferStorage(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height); void rglDeleteTextures(GLsizei n, const GLuint *textures); @@ -214,6 +224,8 @@ void rglDetachShader(GLuint program, GLuint shader); void rglUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLint rglGetAttribLocation(GLuint program, const GLchar *name); +void rglDrawBuffers(GLsizei n, const GLenum *bufs); +void rglBindVertexArray(GLuint array); #ifdef __cplusplus }