Added new extensions
The new extensions are:
- GL_OES_framebuffer_object (with extra exports)
- GL_OES_depth24
- GL_OES_depth32
- GL_EXT_color_buffer_half_float
These were mostly supported already with the GLES3 related changes,
so only a few minor changes were required.
Change-Id: Iab6e94043cfdabb8ad74e526f44f7bd9d57c267f
Reviewed-on: https://swiftshader-review.googlesource.com/4342
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Alexis Hétu <sugoi@google.com>
diff --git a/src/OpenGL/libGL/utilities.cpp b/src/OpenGL/libGL/utilities.cpp
index ebdfdca..7483fad 100644
--- a/src/OpenGL/libGL/utilities.cpp
+++ b/src/OpenGL/libGL/utilities.cpp
@@ -858,8 +858,9 @@
switch(format)
{
case sw::FORMAT_D16:
- case sw::FORMAT_D32:
return GL_DEPTH_COMPONENT16;
+ case sw::FORMAT_D32:
+ return GL_DEPTH_COMPONENT32;
case sw::FORMAT_D24X8:
return GL_DEPTH_COMPONENT24;
case sw::FORMAT_D24S8:
diff --git a/src/OpenGL/libGLESv2/Context.cpp b/src/OpenGL/libGLESv2/Context.cpp
index d95240e..a87da2d 100644
--- a/src/OpenGL/libGLESv2/Context.cpp
+++ b/src/OpenGL/libGLESv2/Context.cpp
@@ -4238,12 +4238,15 @@
// Vendor extensions
static const GLubyte* extensions[] = {
(const GLubyte*)"GL_OES_compressed_ETC1_RGB8_texture",
+ (const GLubyte*)"GL_OES_depth24",
+ (const GLubyte*)"GL_OES_depth32",
(const GLubyte*)"GL_OES_depth_texture",
(const GLubyte*)"GL_OES_depth_texture_cube_map",
(const GLubyte*)"GL_OES_EGL_image",
(const GLubyte*)"GL_OES_EGL_image_external",
(const GLubyte*)"GL_OES_EGL_sync",
(const GLubyte*)"GL_OES_element_index_uint",
+ (const GLubyte*)"GL_OES_framebuffer_object",
(const GLubyte*)"GL_OES_packed_depth_stencil",
(const GLubyte*)"GL_OES_rgb8_rgba8",
(const GLubyte*)"GL_OES_standard_derivatives",
@@ -4254,6 +4257,7 @@
(const GLubyte*)"GL_OES_texture_npot",
(const GLubyte*)"GL_OES_texture_3D",
(const GLubyte*)"GL_EXT_blend_minmax",
+ (const GLubyte*)"GL_EXT_color_buffer_half_float",
(const GLubyte*)"GL_EXT_occlusion_query_boolean",
(const GLubyte*)"GL_EXT_read_format_bgra",
#if (S3TC_SUPPORT)
diff --git a/src/OpenGL/libGLESv2/Framebuffer.cpp b/src/OpenGL/libGLESv2/Framebuffer.cpp
index 272a26d..a97ec2c 100644
--- a/src/OpenGL/libGLESv2/Framebuffer.cpp
+++ b/src/OpenGL/libGLESv2/Framebuffer.cpp
@@ -476,6 +476,7 @@
case sw::FORMAT_X16B16G16R16UI:
case sw::FORMAT_X32B32G32R32I:
case sw::FORMAT_X32B32G32R32UI:return GL_RGB_INTEGER;
+ case sw::FORMAT_B16G16R16F:
case sw::FORMAT_X8B8G8R8I_SNORM:
case sw::FORMAT_X8B8G8R8:
case sw::FORMAT_X8R8G8B8:
diff --git a/src/OpenGL/libGLESv2/exports.map b/src/OpenGL/libGLESv2/exports.map
index 0accca9..2c11c20 100644
--- a/src/OpenGL/libGLESv2/exports.map
+++ b/src/OpenGL/libGLESv2/exports.map
@@ -167,6 +167,21 @@
glGetQueryObjectuivEXT;
glEGLImageTargetTexture2DOES;
glEGLImageTargetRenderbufferStorageOES;
+ glIsRenderbufferOES;
+ glBindRenderbufferOES;
+ glDeleteRenderbuffersOES;
+ glGenRenderbuffersOES;
+ glRenderbufferStorageOES;
+ glGetRenderbufferParameterivOES;
+ glIsFramebufferOES;
+ glBindFramebufferOES;
+ glDeleteFramebuffersOES;
+ glGenFramebuffersOES;
+ glCheckFramebufferStatusOES;
+ glFramebufferRenderbufferOES;
+ glFramebufferTexture2DOES;
+ glGetFramebufferAttachmentParameterivOES;
+ glGenerateMipmapOES;
# GLES 3.0 Functions
glReadBuffer;
diff --git a/src/OpenGL/libGLESv2/libGLESv2.cpp b/src/OpenGL/libGLESv2/libGLESv2.cpp
index e4c568c..44bf326 100644
--- a/src/OpenGL/libGLESv2/libGLESv2.cpp
+++ b/src/OpenGL/libGLESv2/libGLESv2.cpp
@@ -4800,7 +4800,6 @@
egl::GLint clientVersion = context->getClientVersion();
switch(internalformat)
{
- case GL_DEPTH_COMPONENT24:
case GL_DEPTH_COMPONENT32F:
if(clientVersion < 3)
{
@@ -4808,6 +4807,8 @@
}
// fall through
case GL_DEPTH_COMPONENT16:
+ case GL_DEPTH_COMPONENT24:
+ case GL_DEPTH_COMPONENT32_OES:
context->setRenderbufferStorage(new es2::Depthbuffer(width, height, samples));
break;
case GL_R8:
@@ -4857,7 +4858,6 @@
context->setRenderbufferStorage(new es2::Stencilbuffer(width, height, samples));
break;
case GL_DEPTH32F_STENCIL8:
- case GL_DEPTH_COMPONENT32_OES:
if(clientVersion < 3)
{
return error(GL_INVALID_ENUM);
@@ -5817,6 +5817,7 @@
}
break;
case GL_DEPTH_COMPONENT24:
+ case GL_DEPTH_COMPONENT32_OES:
switch(type)
{
case GL_UNSIGNED_INT:
@@ -7492,6 +7493,81 @@
UNIMPLEMENTED();
}
+GLboolean IsRenderbufferOES(GLuint renderbuffer)
+{
+ return IsRenderbuffer(renderbuffer);
+}
+
+void BindRenderbufferOES(GLenum target, GLuint renderbuffer)
+{
+ BindRenderbuffer(target, renderbuffer);
+}
+
+void DeleteRenderbuffersOES(GLsizei n, const GLuint* renderbuffers)
+{
+ DeleteRenderbuffers(n, renderbuffers);
+}
+
+void GenRenderbuffersOES(GLsizei n, GLuint* renderbuffers)
+{
+ GenRenderbuffers(n, renderbuffers);
+}
+
+void RenderbufferStorageOES(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
+{
+ RenderbufferStorage(target, internalformat, width, height);
+}
+
+void GetRenderbufferParameterivOES(GLenum target, GLenum pname, GLint* params)
+{
+ GetRenderbufferParameteriv(target, pname, params);
+}
+
+GLboolean IsFramebufferOES(GLuint framebuffer)
+{
+ return IsFramebuffer(framebuffer);
+}
+
+void BindFramebufferOES(GLenum target, GLuint framebuffer)
+{
+ BindFramebuffer(target, framebuffer);
+}
+
+void DeleteFramebuffersOES(GLsizei n, const GLuint* framebuffers)
+{
+ DeleteFramebuffers(n, framebuffers);
+}
+
+void GenFramebuffersOES(GLsizei n, GLuint* framebuffers)
+{
+ GenFramebuffers(n, framebuffers);
+}
+
+GLenum CheckFramebufferStatusOES(GLenum target)
+{
+ return CheckFramebufferStatus(target);
+}
+
+void FramebufferRenderbufferOES(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+{
+ FramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
+}
+
+void FramebufferTexture2DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ FramebufferTexture2D(target, attachment, textarget, texture, level);
+}
+
+void GetFramebufferAttachmentParameterivOES(GLenum target, GLenum attachment, GLenum pname, GLint* params)
+{
+ GetFramebufferAttachmentParameteriv(target, attachment, pname, params);
+}
+
+void GenerateMipmapOES(GLenum target)
+{
+ GenerateMipmap(target);
+}
+
}
extern "C" __eglMustCastToProperFunctionPointerType es2GetProcAddress(const char *procname)
@@ -7536,6 +7612,21 @@
EXTENSION(glDrawArraysInstancedANGLE),
EXTENSION(glDrawElementsInstancedANGLE),
EXTENSION(glVertexAttribDivisorANGLE),
+ EXTENSION(glIsRenderbufferOES),
+ EXTENSION(glBindRenderbufferOES),
+ EXTENSION(glDeleteRenderbuffersOES),
+ EXTENSION(glGenRenderbuffersOES),
+ EXTENSION(glRenderbufferStorageOES),
+ EXTENSION(glGetRenderbufferParameterivOES),
+ EXTENSION(glIsFramebufferOES),
+ EXTENSION(glBindFramebufferOES),
+ EXTENSION(glDeleteFramebuffersOES),
+ EXTENSION(glGenFramebuffersOES),
+ EXTENSION(glCheckFramebufferStatusOES),
+ EXTENSION(glFramebufferRenderbufferOES),
+ EXTENSION(glFramebufferTexture2DOES),
+ EXTENSION(glGetFramebufferAttachmentParameterivOES),
+ EXTENSION(glGenerateMipmapOES),
#undef EXTENSION
};
diff --git a/src/OpenGL/libGLESv2/libGLESv2.def b/src/OpenGL/libGLESv2/libGLESv2.def
index 9a7770b..fb94783 100644
--- a/src/OpenGL/libGLESv2/libGLESv2.def
+++ b/src/OpenGL/libGLESv2/libGLESv2.def
@@ -167,6 +167,21 @@
glGetQueryObjectuivEXT
glEGLImageTargetTexture2DOES
glEGLImageTargetRenderbufferStorageOES
+ glIsRenderbufferOES
+ glBindRenderbufferOES
+ glDeleteRenderbuffersOES
+ glGenRenderbuffersOES
+ glRenderbufferStorageOES
+ glGetRenderbufferParameterivOES
+ glIsFramebufferOES
+ glBindFramebufferOES
+ glDeleteFramebuffersOES
+ glGenFramebuffersOES
+ glCheckFramebufferStatusOES
+ glFramebufferRenderbufferOES
+ glFramebufferTexture2DOES
+ glGetFramebufferAttachmentParameterivOES
+ glGenerateMipmapOES
; GLES 3.0 Functions
glReadBuffer @211
diff --git a/src/OpenGL/libGLESv2/libGLESv2.hpp b/src/OpenGL/libGLESv2/libGLESv2.hpp
index 4cbd7ec..bde6c0a 100644
--- a/src/OpenGL/libGLESv2/libGLESv2.hpp
+++ b/src/OpenGL/libGLESv2/libGLESv2.hpp
@@ -209,6 +209,21 @@
void (*glFramebufferTexture3DOES)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
void (*glEGLImageTargetTexture2DOES)(GLenum target, GLeglImageOES image);
void (*glEGLImageTargetRenderbufferStorageOES)(GLenum target, GLeglImageOES image);
+ GLboolean (*glIsRenderbufferOES)(GLuint renderbuffer);
+ void (*glBindRenderbufferOES)(GLenum target, GLuint renderbuffer);
+ void (*glDeleteRenderbuffersOES)(GLsizei n, const GLuint* renderbuffers);
+ void (*glGenRenderbuffersOES)(GLsizei n, GLuint* renderbuffers);
+ void (*glRenderbufferStorageOES)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+ void (*glGetRenderbufferParameterivOES)(GLenum target, GLenum pname, GLint* params);
+ GLboolean (*glIsFramebufferOES)(GLuint framebuffer);
+ void (*glBindFramebufferOES)(GLenum target, GLuint framebuffer);
+ void (*glDeleteFramebuffersOES)(GLsizei n, const GLuint* framebuffers);
+ void (*glGenFramebuffersOES)(GLsizei n, GLuint* framebuffers);
+ GLenum (*glCheckFramebufferStatusOES)(GLenum target);
+ void (*glFramebufferRenderbufferOES)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+ void (*glFramebufferTexture2DOES)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+ void (*glGetFramebufferAttachmentParameterivOES)(GLenum target, GLenum attachment, GLenum pname, GLint* params);
+ void (*glGenerateMipmapOES)(GLenum target);
egl::Context *(*es2CreateContext)(const egl::Config *config, const egl::Context *shareContext, int clientVersion);
__eglMustCastToProperFunctionPointerType (*es2GetProcAddress)(const char *procname);
diff --git a/src/OpenGL/libGLESv2/libGLESv3.cpp b/src/OpenGL/libGLESv2/libGLESv3.cpp
index 98397ec..488f529 100644
--- a/src/OpenGL/libGLESv2/libGLESv3.cpp
+++ b/src/OpenGL/libGLESv2/libGLESv3.cpp
@@ -213,6 +213,7 @@
InsertFormatMapping(map, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT);
InsertFormatMapping(map, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT);
InsertFormatMapping(map, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT);
+ InsertFormatMapping(map, GL_DEPTH_COMPONENT32_OES, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT);
InsertFormatMapping(map, GL_DEPTH_COMPONENT32F, GL_DEPTH_COMPONENT, GL_FLOAT);
InsertFormatMapping(map, GL_DEPTH24_STENCIL8, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8);
InsertFormatMapping(map, GL_DEPTH32F_STENCIL8, GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV);
@@ -1507,6 +1508,7 @@
{
case GL_DEPTH_COMPONENT16:
case GL_DEPTH_COMPONENT24:
+ case GL_DEPTH_COMPONENT32_OES:
case GL_DEPTH_COMPONENT32F:
context->setRenderbufferStorage(new es2::Depthbuffer(width, height, samples));
break;
diff --git a/src/OpenGL/libGLESv2/main.cpp b/src/OpenGL/libGLESv2/main.cpp
index 3936852..1b51f67 100644
--- a/src/OpenGL/libGLESv2/main.cpp
+++ b/src/OpenGL/libGLESv2/main.cpp
@@ -337,6 +337,21 @@
GL_APICALL void FramebufferTexture3DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
GL_APICALL void EGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image);
GL_APICALL void EGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image);
+GL_APICALL GLboolean IsRenderbufferOES(GLuint renderbuffer);
+GL_APICALL void BindRenderbufferOES(GLenum target, GLuint renderbuffer);
+GL_APICALL void DeleteRenderbuffersOES(GLsizei n, const GLuint* renderbuffers);
+GL_APICALL void GenRenderbuffersOES(GLsizei n, GLuint* renderbuffers);
+GL_APICALL void RenderbufferStorageOES(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+GL_APICALL void GetRenderbufferParameterivOES(GLenum target, GLenum pname, GLint* params);
+GL_APICALL GLboolean IsFramebufferOES(GLuint framebuffer);
+GL_APICALL void BindFramebufferOES(GLenum target, GLuint framebuffer);
+GL_APICALL void DeleteFramebuffersOES(GLsizei n, const GLuint* framebuffers);
+GL_APICALL void GenFramebuffersOES(GLsizei n, GLuint* framebuffers);
+GL_APICALL GLenum CheckFramebufferStatusOES(GLenum target);
+GL_APICALL void FramebufferRenderbufferOES(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+GL_APICALL void FramebufferTexture2DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+GL_APICALL void GetFramebufferAttachmentParameterivOES(GLenum target, GLenum attachment, GLenum pname, GLint* params);
+GL_APICALL void GenerateMipmapOES(GLenum target);
}
extern "C"
@@ -371,11 +386,21 @@
return es2::BindFramebuffer(target, framebuffer);
}
+GL_APICALL void GL_APIENTRY glBindFramebufferOES(GLenum target, GLuint framebuffer)
+{
+ return es2::BindFramebuffer(target, framebuffer);
+}
+
GL_APICALL void GL_APIENTRY glBindRenderbuffer(GLenum target, GLuint renderbuffer)
{
return es2::BindRenderbuffer(target, renderbuffer);
}
+GL_APICALL void GL_APIENTRY glBindRenderbufferOES(GLenum target, GLuint renderbuffer)
+{
+ return es2::BindRenderbuffer(target, renderbuffer);
+}
+
GL_APICALL void GL_APIENTRY glBindTexture(GLenum target, GLuint texture)
{
return es2::BindTexture(target, texture);
@@ -421,6 +446,11 @@
return es2::CheckFramebufferStatus(target);
}
+GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatusOES(GLenum target)
+{
+ return es2::CheckFramebufferStatus(target);
+}
+
GL_APICALL void GL_APIENTRY glClear(GLbitfield mask)
{
return es2::Clear(mask);
@@ -503,6 +533,11 @@
return es2::DeleteFramebuffers(n, framebuffers);
}
+GL_APICALL void GL_APIENTRY glDeleteFramebuffersOES(GLsizei n, const GLuint* framebuffers)
+{
+ return es2::DeleteFramebuffers(n, framebuffers);
+}
+
GL_APICALL void GL_APIENTRY glDeleteProgram(GLuint program)
{
return es2::DeleteProgram(program);
@@ -518,6 +553,11 @@
return es2::DeleteRenderbuffers(n, renderbuffers);
}
+GL_APICALL void GL_APIENTRY glDeleteRenderbuffersOES(GLsizei n, const GLuint* renderbuffers)
+{
+ return es2::DeleteRenderbuffers(n, renderbuffers);
+}
+
GL_APICALL void GL_APIENTRY glDeleteShader(GLuint shader)
{
return es2::DeleteShader(shader);
@@ -633,11 +673,21 @@
return es2::FramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
}
+GL_APICALL void GL_APIENTRY glFramebufferRenderbufferOES(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+{
+ return es2::FramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
+}
+
GL_APICALL void GL_APIENTRY glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
{
return es2::FramebufferTexture2D(target, attachment, textarget, texture, level);
}
+GL_APICALL void GL_APIENTRY glFramebufferTexture2DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ return es2::FramebufferTexture2D(target, attachment, textarget, texture, level);
+}
+
GL_APICALL void GL_APIENTRY glFrontFace(GLenum mode)
{
return es2::FrontFace(mode);
@@ -653,6 +703,11 @@
return es2::GenerateMipmap(target);
}
+GL_APICALL void GL_APIENTRY glGenerateMipmapOES(GLenum target)
+{
+ return es2::GenerateMipmap(target);
+}
+
GL_APICALL void GL_APIENTRY glGenFencesNV(GLsizei n, GLuint* fences)
{
return es2::GenFencesNV(n, fences);
@@ -663,6 +718,11 @@
return es2::GenFramebuffers(n, framebuffers);
}
+GL_APICALL void GL_APIENTRY glGenFramebuffersOES(GLsizei n, GLuint* framebuffers)
+{
+ return es2::GenFramebuffers(n, framebuffers);
+}
+
GL_APICALL void GL_APIENTRY glGenQueriesEXT(GLsizei n, GLuint* ids)
{
return es2::GenQueriesEXT(n, ids);
@@ -673,6 +733,11 @@
return es2::GenRenderbuffers(n, renderbuffers);
}
+GL_APICALL void GL_APIENTRY glGenRenderbuffersOES(GLsizei n, GLuint* renderbuffers)
+{
+ return es2::GenRenderbuffers(n, renderbuffers);
+}
+
GL_APICALL void GL_APIENTRY glGenTextures(GLsizei n, GLuint* textures)
{
return es2::GenTextures(n, textures);
@@ -728,6 +793,11 @@
return es2::GetFramebufferAttachmentParameteriv(target, attachment, pname, params);
}
+GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameterivOES(GLenum target, GLenum attachment, GLenum pname, GLint* params)
+{
+ return es2::GetFramebufferAttachmentParameteriv(target, attachment, pname, params);
+}
+
GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatusEXT(void)
{
return es2::GetGraphicsResetStatusEXT();
@@ -763,6 +833,11 @@
return es2::GetRenderbufferParameteriv(target, pname, params);
}
+GL_APICALL void GL_APIENTRY glGetRenderbufferParameterivOES(GLenum target, GLenum pname, GLint* params)
+{
+ return es2::GetRenderbufferParameteriv(target, pname, params);
+}
+
GL_APICALL void GL_APIENTRY glGetShaderiv(GLuint shader, GLenum pname, GLint* params)
{
return es2::GetShaderiv(shader, pname, params);
@@ -863,6 +938,11 @@
return es2::IsFramebuffer(framebuffer);
}
+GL_APICALL GLboolean GL_APIENTRY glIsFramebufferOES(GLuint framebuffer)
+{
+ return es2::IsFramebuffer(framebuffer);
+}
+
GL_APICALL GLboolean GL_APIENTRY glIsProgram(GLuint program)
{
return es2::IsProgram(program);
@@ -878,6 +958,11 @@
return es2::IsRenderbuffer(renderbuffer);
}
+GL_APICALL GLboolean GL_APIENTRY glIsRenderbufferOES(GLuint renderbuffer)
+{
+ return es2::IsRenderbuffer(renderbuffer);
+}
+
GL_APICALL GLboolean GL_APIENTRY glIsShader(GLuint shader)
{
return es2::IsShader(shader);
@@ -934,6 +1019,11 @@
return es2::RenderbufferStorage(target, internalformat, width, height);
}
+GL_APICALL void GL_APIENTRY glRenderbufferStorageOES(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
+{
+ return es2::RenderbufferStorage(target, internalformat, width, height);
+}
+
GL_APICALL void GL_APIENTRY glSampleCoverage(GLclampf value, GLboolean invert)
{
return es2::SampleCoverage(value, invert);
@@ -1424,6 +1514,21 @@
this->glFramebufferTexture3DOES = es2::FramebufferTexture3DOES;
this->glEGLImageTargetTexture2DOES = es2::EGLImageTargetTexture2DOES;
this->glEGLImageTargetRenderbufferStorageOES = es2::EGLImageTargetRenderbufferStorageOES;
+ this->glIsRenderbufferOES = es2::IsRenderbufferOES;
+ this->glBindRenderbufferOES = es2::BindRenderbufferOES;
+ this->glDeleteRenderbuffersOES = es2::DeleteRenderbuffersOES;
+ this->glGenRenderbuffersOES = es2::GenRenderbuffersOES;
+ this->glRenderbufferStorageOES = es2::RenderbufferStorageOES;
+ this->glGetRenderbufferParameterivOES = es2::GetRenderbufferParameterivOES;
+ this->glIsFramebufferOES = es2::IsFramebufferOES;
+ this->glBindFramebufferOES = es2::BindFramebufferOES;
+ this->glDeleteFramebuffersOES = es2::DeleteFramebuffersOES;
+ this->glGenFramebuffersOES = es2::GenFramebuffersOES;
+ this->glCheckFramebufferStatusOES = es2::CheckFramebufferStatusOES;
+ this->glFramebufferRenderbufferOES = es2::FramebufferRenderbufferOES;
+ this->glFramebufferTexture2DOES = es2::FramebufferTexture2DOES;
+ this->glGetFramebufferAttachmentParameterivOES = es2::GetFramebufferAttachmentParameterivOES;
+ this->glGenerateMipmapOES = es2::GenerateMipmapOES;
this->es2CreateContext = ::es2CreateContext;
this->es2GetProcAddress = ::es2GetProcAddress;
diff --git a/src/OpenGL/libGLESv2/utilities.cpp b/src/OpenGL/libGLESv2/utilities.cpp
index dfff1da..4896b27 100644
--- a/src/OpenGL/libGLESv2/utilities.cpp
+++ b/src/OpenGL/libGLESv2/utilities.cpp
@@ -440,7 +440,13 @@
bool IsDepthTexture(GLenum format)
{
return format == GL_DEPTH_COMPONENT ||
- format == GL_DEPTH_STENCIL_OES;
+ format == GL_DEPTH_STENCIL_OES ||
+ format == GL_DEPTH_COMPONENT16 ||
+ format == GL_DEPTH_COMPONENT24 ||
+ format == GL_DEPTH_COMPONENT32_OES ||
+ format == GL_DEPTH_COMPONENT32F ||
+ format == GL_DEPTH24_STENCIL8 ||
+ format == GL_DEPTH32F_STENCIL8;
}
bool IsStencilTexture(GLenum format)