gl backend minor code cleanup
- be more consistant with extension naming - sort extension queries alphabetically
This commit is contained in:
committed by
Mathias Agopian
parent
449a5907d1
commit
c062cd9914
@@ -143,7 +143,7 @@ OpenGLContext::OpenGLContext() noexcept {
|
||||
#endif
|
||||
|
||||
#ifdef GL_EXT_texture_filter_anisotropic
|
||||
if (ext.texture_filter_anisotropic && !bugs.disable_texture_filter_anisotropic) {
|
||||
if (ext.EXT_texture_filter_anisotropic && !bugs.disable_texture_filter_anisotropic) {
|
||||
glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &gets.maxAnisotropy);
|
||||
}
|
||||
#endif
|
||||
@@ -221,23 +221,23 @@ bool OpenGLContext::hasExtension(ExtentionSet const& map, utils::StaticString ex
|
||||
|
||||
void OpenGLContext::initExtensionsGLES(GLint major, GLint minor, ExtentionSet const& exts) {
|
||||
// figure out and initialize the extensions we need
|
||||
ext.texture_filter_anisotropic = hasExtension(exts, "GL_EXT_texture_filter_anisotropic");
|
||||
ext.texture_compression_etc2 = true;
|
||||
ext.QCOM_tiled_rendering = hasExtension(exts, "GL_QCOM_tiled_rendering");
|
||||
ext.OES_EGL_image_external_essl3 = hasExtension(exts, "GL_OES_EGL_image_external_essl3");
|
||||
ext.EXT_debug_marker = hasExtension(exts, "GL_EXT_debug_marker");
|
||||
ext.EXT_color_buffer_half_float = hasExtension(exts, "GL_EXT_color_buffer_half_float");
|
||||
ext.EXT_color_buffer_float = hasExtension(exts, "GL_EXT_color_buffer_float");
|
||||
ext.APPLE_color_buffer_packed_float = hasExtension(exts, "GL_APPLE_color_buffer_packed_float");
|
||||
ext.texture_compression_s3tc = hasExtension(exts, "WEBGL_compressed_texture_s3tc");
|
||||
ext.EXT_clip_control = hasExtension(exts, "GL_EXT_clip_control");
|
||||
ext.EXT_color_buffer_float = hasExtension(exts, "GL_EXT_color_buffer_float");
|
||||
ext.EXT_color_buffer_half_float = hasExtension(exts, "GL_EXT_color_buffer_half_float");
|
||||
ext.EXT_debug_marker = hasExtension(exts, "GL_EXT_debug_marker");
|
||||
ext.EXT_disjoint_timer_query = hasExtension(exts, "GL_EXT_disjoint_timer_query");
|
||||
ext.EXT_multisampled_render_to_texture = hasExtension(exts, "GL_EXT_multisampled_render_to_texture");
|
||||
ext.EXT_multisampled_render_to_texture2 = hasExtension(exts, "GL_EXT_multisampled_render_to_texture2");
|
||||
ext.EXT_disjoint_timer_query = hasExtension(exts, "GL_EXT_disjoint_timer_query");
|
||||
ext.KHR_debug = hasExtension(exts, "GL_KHR_debug");
|
||||
ext.EXT_texture_compression_s3tc_srgb = hasExtension(exts, "GL_EXT_texture_compression_s3tc_srgb");
|
||||
ext.EXT_shader_framebuffer_fetch = hasExtension(exts, "GL_EXT_shader_framebuffer_fetch");
|
||||
ext.EXT_clip_control = hasExtension(exts, "GL_EXT_clip_control");
|
||||
ext.EXT_texture_compression_etc2 = true;
|
||||
ext.EXT_texture_compression_s3tc_srgb = hasExtension(exts, "GL_EXT_texture_compression_s3tc_srgb");
|
||||
ext.EXT_texture_filter_anisotropic = hasExtension(exts, "GL_EXT_texture_filter_anisotropic");
|
||||
ext.GOOGLE_cpp_style_line_directive = hasExtension(exts, "GL_GOOGLE_cpp_style_line_directive");
|
||||
ext.KHR_debug = hasExtension(exts, "GL_KHR_debug");
|
||||
ext.OES_EGL_image_external_essl3 = hasExtension(exts, "GL_OES_EGL_image_external_essl3");
|
||||
ext.QCOM_tiled_rendering = hasExtension(exts, "GL_QCOM_tiled_rendering");
|
||||
ext.WEBGL_texture_compression_s3tc = hasExtension(exts, "WEBGL_compressed_texture_s3tc");
|
||||
// ES 3.2 implies EXT_color_buffer_float
|
||||
if (major >= 3 && minor >= 2) {
|
||||
ext.EXT_color_buffer_float = true;
|
||||
@@ -245,19 +245,19 @@ void OpenGLContext::initExtensionsGLES(GLint major, GLint minor, ExtentionSet co
|
||||
}
|
||||
|
||||
void OpenGLContext::initExtensionsGL(GLint major, GLint minor, ExtentionSet const& exts) {
|
||||
ext.texture_filter_anisotropic = hasExtension(exts, "GL_EXT_texture_filter_anisotropic");
|
||||
ext.texture_compression_etc2 = hasExtension(exts, "GL_ARB_ES3_compatibility");
|
||||
ext.texture_compression_s3tc = hasExtension(exts, "GL_EXT_texture_compression_s3tc");
|
||||
ext.OES_EGL_image_external_essl3 = hasExtension(exts, "GL_OES_EGL_image_external_essl3");
|
||||
ext.EXT_debug_marker = hasExtension(exts, "GL_EXT_debug_marker");
|
||||
ext.EXT_color_buffer_half_float = true; // Assumes core profile.
|
||||
ext.EXT_color_buffer_float = true; // Assumes core profile.
|
||||
ext.APPLE_color_buffer_packed_float = true; // Assumes core profile.
|
||||
ext.KHR_debug = major >= 4 && minor >= 3;
|
||||
ext.EXT_texture_sRGB = hasExtension(exts, "GL_EXT_texture_sRGB");
|
||||
ext.EXT_shader_framebuffer_fetch = hasExtension(exts, "GL_EXT_shader_framebuffer_fetch");
|
||||
ext.EXT_clip_control = hasExtension(exts, "GL_ARB_clip_control") || (major == 4 && minor >= 5);
|
||||
ext.EXT_color_buffer_float = true; // Assumes core profile.
|
||||
ext.EXT_color_buffer_half_float = true; // Assumes core profile.
|
||||
ext.EXT_debug_marker = hasExtension(exts, "GL_EXT_debug_marker");
|
||||
ext.EXT_shader_framebuffer_fetch = hasExtension(exts, "GL_EXT_shader_framebuffer_fetch");
|
||||
ext.EXT_texture_compression_etc2 = hasExtension(exts, "GL_ARB_ES3_compatibility");
|
||||
ext.EXT_texture_filter_anisotropic = hasExtension(exts, "GL_EXT_texture_filter_anisotropic");
|
||||
ext.EXT_texture_sRGB = hasExtension(exts, "GL_EXT_texture_sRGB");
|
||||
ext.GOOGLE_cpp_style_line_directive = hasExtension(exts, "GL_GOOGLE_cpp_style_line_directive");
|
||||
ext.KHR_debug = major >= 4 && minor >= 3;
|
||||
ext.OES_EGL_image_external_essl3 = hasExtension(exts, "GL_OES_EGL_image_external_essl3");
|
||||
ext.WEBGL_texture_compression_s3tc = hasExtension(exts, "GL_EXT_texture_compression_s3tc");
|
||||
}
|
||||
|
||||
void OpenGLContext::bindBuffer(GLenum target, GLuint buffer) noexcept {
|
||||
|
||||
@@ -127,9 +127,9 @@ public:
|
||||
|
||||
// supported extensions detected at runtime
|
||||
struct {
|
||||
bool texture_compression_s3tc = false;
|
||||
bool texture_compression_etc2 = false;
|
||||
bool texture_filter_anisotropic = false;
|
||||
bool WEBGL_texture_compression_s3tc = false;
|
||||
bool EXT_texture_compression_etc2 = false;
|
||||
bool EXT_texture_filter_anisotropic = false;
|
||||
bool QCOM_tiled_rendering = false;
|
||||
bool OES_EGL_image_external_essl3 = false;
|
||||
bool EXT_debug_marker = false;
|
||||
|
||||
@@ -1564,13 +1564,13 @@ FenceStatus OpenGLDriver::wait(Handle<HwFence> fh, uint64_t timeout) {
|
||||
bool OpenGLDriver::isTextureFormatSupported(TextureFormat format) {
|
||||
auto& gl = mContext;
|
||||
if (isETC2Compression(format)) {
|
||||
return gl.ext.texture_compression_etc2;
|
||||
return gl.ext.EXT_texture_compression_etc2;
|
||||
}
|
||||
if (isS3TCCompression(format)) {
|
||||
if (isS3TCSRGBCompression(format)) {
|
||||
return gl.ext.texture_compression_s3tc && (gl.ext.EXT_texture_sRGB || gl.ext.EXT_texture_compression_s3tc_srgb);
|
||||
return gl.ext.WEBGL_texture_compression_s3tc && (gl.ext.EXT_texture_sRGB || gl.ext.EXT_texture_compression_s3tc_srgb);
|
||||
} else {
|
||||
return gl.ext.texture_compression_s3tc;
|
||||
return gl.ext.WEBGL_texture_compression_s3tc;
|
||||
}
|
||||
}
|
||||
return getInternalFormat(format) != 0;
|
||||
@@ -2828,7 +2828,7 @@ GLuint OpenGLDriver::getSamplerSlow(SamplerParams params) const noexcept {
|
||||
// TODO: Why does this fail with WebGL 2.0? The run-time check should suffice.
|
||||
#if defined(GL_EXT_texture_filter_anisotropic) && !defined(__EMSCRIPTEN__)
|
||||
auto& gl = mContext;
|
||||
if (gl.ext.texture_filter_anisotropic && !gl.bugs.disable_texture_filter_anisotropic) {
|
||||
if (gl.ext.EXT_texture_filter_anisotropic && !gl.bugs.disable_texture_filter_anisotropic) {
|
||||
GLfloat anisotropy = float(1u << params.anisotropyLog2);
|
||||
glSamplerParameterf(s, GL_TEXTURE_MAX_ANISOTROPY_EXT, std::min(gl.gets.maxAnisotropy, anisotropy));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user