mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-29 16:20:11 -04:00
gles2gsg: Implement support for GL_EXT_clear_texture in OpenGL ES 2+
This commit is contained in:
parent
481fc67996
commit
8c01f7faff
@ -1050,6 +1050,16 @@ GL_APICALL void GL_APIENTRY glBufferStorageEXT (GLenum target, GLsizeiptr size,
|
||||
#endif
|
||||
#endif /* GL_EXT_buffer_storage */
|
||||
|
||||
#ifndef GL_EXT_clear_texture
|
||||
#define GL_EXT_clear_texture 1
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARTEXIMAGEEXTPROC) (GLuint texture, GLint level, GLenum format, GLenum type, const void *data);
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARTEXSUBIMAGEEXTPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glClearTexImageEXT (GLuint texture, GLint level, GLenum format, GLenum type, const void *data);
|
||||
GL_APICALL void GL_APIENTRY glClearTexSubImageEXT (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data);
|
||||
#endif
|
||||
#endif /* GL_EXT_clear_texture */
|
||||
|
||||
#ifndef GL_EXT_clip_control
|
||||
#define GL_EXT_clip_control 1
|
||||
#define GL_LOWER_LEFT_EXT 0x8CA1
|
||||
|
@ -1080,6 +1080,18 @@ reset() {
|
||||
_supports_clear_texture = true;
|
||||
}
|
||||
}
|
||||
#elif !defined(OPENGLES_1)
|
||||
if (has_extension("GL_EXT_clear_texture")) {
|
||||
_glClearTexImage = (PFNGLCLEARTEXIMAGEEXTPROC)
|
||||
get_extension_func("glClearTexImageEXT");
|
||||
|
||||
if (_glClearTexImage == nullptr) {
|
||||
GLCAT.warning()
|
||||
<< "GL_EXT_clear_texture advertised as supported by OpenGL runtime, but could not get pointers to extension function.\n";
|
||||
} else {
|
||||
_supports_clear_texture = true;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
_supports_clear_buffer = false;
|
||||
|
@ -229,10 +229,10 @@ typedef void (APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFo
|
||||
typedef void (APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params);
|
||||
typedef void (APIENTRYP PFNGLBUFFERSTORAGEPROC) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);
|
||||
typedef void (APIENTRYP PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
|
||||
#endif // OPENGLES_1
|
||||
#ifndef OPENGLES
|
||||
typedef void (APIENTRYP PFNGLCLEARTEXIMAGEPROC) (GLuint texture, GLint level, GLenum format, GLenum type, const void *data);
|
||||
typedef void (APIENTRYP PFNGLCLEARTEXSUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data);
|
||||
#endif // OPENGLES_1
|
||||
#ifndef OPENGLES
|
||||
typedef void (APIENTRYP PFNGLBINDTEXTURESPROC) (GLuint first, GLsizei count, const GLuint *textures);
|
||||
typedef void (APIENTRYP PFNGLBINDSAMPLERSPROC) (GLuint first, GLsizei count, const GLuint *samplers);
|
||||
typedef void (APIENTRYP PFNGLBINDIMAGETEXTURESPROC) (GLuint first, GLsizei count, const GLuint *textures);
|
||||
@ -804,7 +804,7 @@ public:
|
||||
#endif
|
||||
|
||||
bool _supports_clear_texture;
|
||||
#ifndef OPENGLES
|
||||
#ifndef OPENGLES_1
|
||||
PFNGLCLEARTEXIMAGEPROC _glClearTexImage;
|
||||
#endif
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user