diff options
author | MinusKube <minuskube@gmail.com> | 2022-08-22 00:16:56 +0200 |
---|---|---|
committer | MinusKube <minuskube@gmail.com> | 2022-09-04 22:48:54 +0200 |
commit | f5a808192b263b7227b448492cc65d9145e18afd (patch) | |
tree | 6e7cd72df7c8b08ecbfdeb9af2ff1d72090c8580 /drivers/gles3 | |
parent | e7a0a97c0bc5d86644e62d537503e3b05313a01c (diff) |
Prevent windows from having a size greater than device limit
Diffstat (limited to 'drivers/gles3')
-rw-r--r-- | drivers/gles3/storage/config.cpp | 1 | ||||
-rw-r--r-- | drivers/gles3/storage/config.h | 1 | ||||
-rw-r--r-- | drivers/gles3/storage/utilities.cpp | 9 | ||||
-rw-r--r-- | drivers/gles3/storage/utilities.h | 2 |
4 files changed, 13 insertions, 0 deletions
diff --git a/drivers/gles3/storage/config.cpp b/drivers/gles3/storage/config.cpp index 6cc65e7bb2..eb59be2e39 100644 --- a/drivers/gles3/storage/config.cpp +++ b/drivers/gles3/storage/config.cpp @@ -85,6 +85,7 @@ Config::Config() { glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &max_texture_image_units); glGetIntegerv(GL_MAX_TEXTURE_SIZE, &max_texture_size); glGetIntegerv(GL_MAX_UNIFORM_BLOCK_SIZE, &max_uniform_buffer_size); + glGetIntegerv(GL_MAX_VIEWPORT_DIMS, &max_viewport_size); // the use skeleton software path should be used if either float texture is not supported, // OR max_vertex_texture_image_units is zero diff --git a/drivers/gles3/storage/config.h b/drivers/gles3/storage/config.h index b83c83f425..7b9d54ac2e 100644 --- a/drivers/gles3/storage/config.h +++ b/drivers/gles3/storage/config.h @@ -60,6 +60,7 @@ public: int max_texture_image_units = 0; int max_texture_size = 0; int max_uniform_buffer_size = 0; + int max_viewport_size = 0; int max_renderable_elements = 0; int max_renderable_lights = 0; int max_lights_per_object = 0; diff --git a/drivers/gles3/storage/utilities.cpp b/drivers/gles3/storage/utilities.cpp index 16bacf1829..157166e041 100644 --- a/drivers/gles3/storage/utilities.cpp +++ b/drivers/gles3/storage/utilities.cpp @@ -355,4 +355,13 @@ String Utilities::get_video_adapter_api_version() const { return (const char *)glGetString(GL_VERSION); } +Size2i Utilities::get_maximum_viewport_size() const { + Config *config = Config::get_singleton(); + if (!config) { + return Size2i(); + } + + return Size2i(config->max_viewport_size, config->max_viewport_size); +} + #endif // GLES3_ENABLED diff --git a/drivers/gles3/storage/utilities.h b/drivers/gles3/storage/utilities.h index e054f2f816..936ac35cc9 100644 --- a/drivers/gles3/storage/utilities.h +++ b/drivers/gles3/storage/utilities.h @@ -150,6 +150,8 @@ public: virtual String get_video_adapter_vendor() const override; virtual RenderingDevice::DeviceType get_video_adapter_type() const override; virtual String get_video_adapter_api_version() const override; + + virtual Size2i get_maximum_viewport_size() const override; }; } // namespace GLES3 |