diff options
author | patwork <patwork@gmail.com> | 2024-06-07 00:06:27 +0200 |
---|---|---|
committer | patwork <patwork@gmail.com> | 2024-06-14 01:53:12 +0200 |
commit | ed5f33ef07540fa7529363819f40c4df3110ef80 (patch) | |
tree | b4c7af9facbcc6d5005214c68cda4768676cc2ec /drivers/gles3/storage | |
parent | 680e489189796af2c34f06df49e19b17dec5c6fc (diff) | |
download | redot-engine-ed5f33ef07540fa7529363819f40c4df3110ef80.tar.gz |
Make query for GL_MAX_VIEWPORT_DIMS compatible with web exports
Diffstat (limited to 'drivers/gles3/storage')
-rw-r--r-- | drivers/gles3/storage/config.cpp | 17 | ||||
-rw-r--r-- | drivers/gles3/storage/config.h | 11 | ||||
-rw-r--r-- | drivers/gles3/storage/utilities.cpp | 5 |
3 files changed, 17 insertions, 16 deletions
diff --git a/drivers/gles3/storage/config.cpp b/drivers/gles3/storage/config.cpp index 6b5e227782..2ab1ef1c9d 100644 --- a/drivers/gles3/storage/config.cpp +++ b/drivers/gles3/storage/config.cpp @@ -45,9 +45,9 @@ Config::Config() { singleton = this; { - int64_t max_extensions = 0; - glGetInteger64v(GL_NUM_EXTENSIONS, &max_extensions); - for (int64_t i = 0; i < max_extensions; i++) { + GLint max_extensions = 0; + glGetIntegerv(GL_NUM_EXTENSIONS, &max_extensions); + for (int i = 0; i < max_extensions; i++) { const GLubyte *s = glGetStringi(GL_EXTENSIONS, i); if (!s) { break; @@ -80,11 +80,14 @@ Config::Config() { rgtc_supported = extensions.has("GL_EXT_texture_compression_rgtc") || extensions.has("GL_ARB_texture_compression_rgtc") || extensions.has("EXT_texture_compression_rgtc"); } - glGetInteger64v(GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, &max_vertex_texture_image_units); - glGetInteger64v(GL_MAX_TEXTURE_IMAGE_UNITS, &max_texture_image_units); - glGetInteger64v(GL_MAX_TEXTURE_SIZE, &max_texture_size); + glGetIntegerv(GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, &max_vertex_texture_image_units); + glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &max_texture_image_units); + glGetIntegerv(GL_MAX_TEXTURE_SIZE, &max_texture_size); + glGetIntegerv(GL_MAX_VIEWPORT_DIMS, max_viewport_size); glGetInteger64v(GL_MAX_UNIFORM_BLOCK_SIZE, &max_uniform_buffer_size); - glGetInteger64v(GL_MAX_VIEWPORT_DIMS, max_viewport_size); + + // sanity clamp buffer size to 16K..1MB + max_uniform_buffer_size = CLAMP(max_uniform_buffer_size, 16384, 1048576); support_anisotropic_filter = extensions.has("GL_EXT_texture_filter_anisotropic"); if (support_anisotropic_filter) { diff --git a/drivers/gles3/storage/config.h b/drivers/gles3/storage/config.h index c3ab65f0bc..1ff80d9a9e 100644 --- a/drivers/gles3/storage/config.h +++ b/drivers/gles3/storage/config.h @@ -57,11 +57,12 @@ public: bool use_nearest_mip_filter = false; bool use_depth_prepass = true; - int64_t max_vertex_texture_image_units = 0; - int64_t max_texture_image_units = 0; - int64_t max_texture_size = 0; - int64_t max_viewport_size[2] = { 0, 0 }; - int64_t max_uniform_buffer_size = 0; + GLint max_vertex_texture_image_units = 0; + GLint max_texture_image_units = 0; + GLint max_texture_size = 0; + GLint max_viewport_size[2] = { 0, 0 }; + GLint64 max_uniform_buffer_size = 0; + int64_t max_renderable_elements = 0; int64_t max_renderable_lights = 0; int64_t max_lights_per_object = 0; diff --git a/drivers/gles3/storage/utilities.cpp b/drivers/gles3/storage/utilities.cpp index 356dc06733..7f0be36466 100644 --- a/drivers/gles3/storage/utilities.cpp +++ b/drivers/gles3/storage/utilities.cpp @@ -463,10 +463,7 @@ String Utilities::get_video_adapter_api_version() const { Size2i Utilities::get_maximum_viewport_size() const { Config *config = Config::get_singleton(); - if (!config) { - return Size2i(); - } - + ERR_FAIL_NULL_V(config, Size2i()); return Size2i(config->max_viewport_size[0], config->max_viewport_size[1]); } |