From b585b0086f41db383bb7cbb4ab75abda2c5b6ca8 Mon Sep 17 00:00:00 2001 From: Alex Cristici Date: Fri, 16 May 2025 19:29:25 +0300 Subject: [PATCH] Clean more legacy code (#3478) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- CMakeLists.txt | 28 +++--- bazel/core.bzl | 28 +++--- include/mbgl/gfx/context.hpp | 12 +-- include/mbgl/gfx/drawable_impl.hpp | 2 +- include/mbgl/gfx/polyline_generator.hpp | 2 +- include/mbgl/gfx/texture2d.hpp | 2 + include/mbgl/gl/drawable_gl.hpp | 4 +- include/mbgl/gl/texture2d.hpp | 3 +- include/mbgl/mtl/context.hpp | 5 -- include/mbgl/mtl/drawable.hpp | 2 +- include/mbgl/mtl/upload_pass.hpp | 16 ---- include/mbgl/shaders/gl/shader_group_gl.hpp | 2 +- include/mbgl/shaders/mtl/shader_group.hpp | 2 +- .../mbgl/shaders}/program_parameters.hpp | 0 include/mbgl/shaders/vulkan/shader_group.hpp | 2 +- include/mbgl/vulkan/context.hpp | 5 -- include/mbgl/vulkan/pipeline.hpp | 1 + include/mbgl/vulkan/upload_pass.hpp | 16 ---- src/mbgl/geometry/line_atlas.hpp | 1 - src/mbgl/gfx/drawable_builder_impl.hpp | 2 +- src/mbgl/gfx/program.hpp | 58 ------------- src/mbgl/gfx/texture.hpp | 86 ------------------- src/mbgl/gfx/upload_pass.hpp | 46 ---------- src/mbgl/gl/attribute.hpp | 2 +- src/mbgl/gl/context.cpp | 70 --------------- src/mbgl/gl/context.hpp | 8 -- src/mbgl/gl/drawable_gl.cpp | 2 +- src/mbgl/gl/drawable_gl_impl.hpp | 4 +- src/mbgl/gl/renderer_backend.cpp | 5 ++ src/mbgl/gl/resource_pool.cpp | 46 +++++++--- src/mbgl/gl/resource_pool.hpp | 4 + src/mbgl/gl/texture.cpp | 55 ------------ src/mbgl/gl/texture.hpp | 47 ---------- src/mbgl/gl/texture2d.cpp | 23 ++--- src/mbgl/gl/texture_resource.cpp | 45 ---------- src/mbgl/gl/texture_resource.hpp | 24 ------ src/mbgl/gl/upload_pass.cpp | 63 -------------- src/mbgl/gl/upload_pass.hpp | 16 ---- src/mbgl/mtl/context.cpp | 9 +- src/mbgl/mtl/drawable.cpp | 2 +- src/mbgl/mtl/drawable_impl.hpp | 3 +- src/mbgl/mtl/upload_pass.cpp | 25 ------ src/mbgl/programs/clipping_mask_program.cpp | 3 - src/mbgl/programs/textures.hpp | 17 ---- src/mbgl/renderer/buckets/circle_bucket.hpp | 2 +- src/mbgl/renderer/buckets/debug_bucket.hpp | 4 +- src/mbgl/renderer/buckets/fill_bucket.hpp | 2 +- .../buckets/fill_extrusion_bucket.hpp | 2 +- src/mbgl/renderer/buckets/heatmap_bucket.hpp | 2 +- .../renderer/buckets/hillshade_bucket.hpp | 6 +- src/mbgl/renderer/buckets/line_bucket.hpp | 2 +- src/mbgl/renderer/buckets/raster_bucket.cpp | 1 - src/mbgl/renderer/buckets/raster_bucket.hpp | 4 +- src/mbgl/renderer/buckets/symbol_bucket.hpp | 13 +-- .../layers/render_background_layer.cpp | 1 - .../layers/render_background_layer.hpp | 2 +- .../renderer/layers/render_circle_layer.cpp | 1 - .../layers/render_fill_extrusion_layer.cpp | 1 - .../renderer/layers/render_fill_layer.cpp | 2 +- .../renderer/layers/render_heatmap_layer.cpp | 5 +- .../renderer/layers/render_heatmap_layer.hpp | 2 - .../layers/render_hillshade_layer.cpp | 1 - .../renderer/layers/render_line_layer.cpp | 4 +- .../renderer/layers/render_line_layer.hpp | 5 +- .../render_location_indicator_layer.cpp | 3 +- .../renderer/layers/render_raster_layer.cpp | 1 - .../renderer/layers/render_symbol_layer.cpp | 2 +- src/mbgl/renderer/paint_parameters.cpp | 14 ++- src/mbgl/renderer/paint_parameters.hpp | 4 - src/mbgl/renderer/paint_property_binder.hpp | 2 +- src/mbgl/renderer/pattern_atlas.hpp | 1 - src/mbgl/renderer/render_static_data.cpp | 15 +--- src/mbgl/renderer/render_static_data.hpp | 10 +-- src/mbgl/renderer/render_tile.cpp | 1 - src/mbgl/renderer/render_tile.hpp | 1 - src/mbgl/renderer/renderer_impl.cpp | 7 +- .../renderer/sources/render_image_source.cpp | 1 - .../renderer/sources/render_image_source.hpp | 1 - src/mbgl/renderer/tile_render_data.hpp | 1 - src/mbgl/{programs => shaders}/attributes.hpp | 0 .../gl/legacy}/clipping_mask_program.hpp | 7 +- .../gl/legacy}/program.hpp | 81 ++++++++--------- .../gl/legacy/program_base.hpp} | 33 +++---- .../gl/legacy}/programs.cpp | 3 +- .../gl/legacy}/programs.hpp | 3 +- src/mbgl/shaders/gl/shader_program_gl.cpp | 2 +- src/mbgl/shaders/mtl/shader_program.cpp | 2 +- .../program_parameters.cpp | 2 +- src/mbgl/{programs => shaders}/segment.hpp | 0 src/mbgl/{programs => shaders}/uniforms.hpp | 0 src/mbgl/shaders/vulkan/shader_program.cpp | 2 +- .../layers/background_layer_properties.hpp | 4 +- .../style/layers/circle_layer_properties.hpp | 4 +- .../fill_extrusion_layer_properties.hpp | 4 +- .../style/layers/fill_layer_properties.hpp | 4 +- .../style/layers/heatmap_layer_properties.hpp | 4 +- .../layers/hillshade_layer_properties.hpp | 4 +- .../style/layers/layer_properties.hpp.ejs | 4 +- .../style/layers/line_layer_properties.hpp | 4 +- .../location_indicator_layer_properties.hpp | 4 +- .../style/layers/raster_layer_properties.hpp | 4 +- .../style/layers/symbol_layer_properties.hpp | 4 +- src/mbgl/tile/geometry_tile.hpp | 1 - src/mbgl/vulkan/context.cpp | 9 +- src/mbgl/vulkan/drawable.cpp | 2 +- src/mbgl/vulkan/drawable_impl.hpp | 2 +- src/mbgl/vulkan/upload_pass.cpp | 25 ------ test/renderer/shader_registry.test.cpp | 7 +- 108 files changed, 212 insertions(+), 937 deletions(-) rename {src/mbgl/programs => include/mbgl/shaders}/program_parameters.hpp (100%) delete mode 100644 src/mbgl/gfx/program.hpp delete mode 100644 src/mbgl/gfx/texture.hpp delete mode 100644 src/mbgl/gl/texture.cpp delete mode 100644 src/mbgl/gl/texture.hpp delete mode 100644 src/mbgl/gl/texture_resource.cpp delete mode 100644 src/mbgl/gl/texture_resource.hpp delete mode 100644 src/mbgl/programs/clipping_mask_program.cpp delete mode 100644 src/mbgl/programs/textures.hpp rename src/mbgl/{programs => shaders}/attributes.hpp (100%) rename src/mbgl/{programs => shaders/gl/legacy}/clipping_mask_program.hpp (83%) rename src/mbgl/{programs => shaders/gl/legacy}/program.hpp (82%) rename src/mbgl/{gl/program.hpp => shaders/gl/legacy/program_base.hpp} (88%) rename src/mbgl/{programs => shaders/gl/legacy}/programs.cpp (93%) rename src/mbgl/{programs => shaders/gl/legacy}/programs.hpp (82%) rename src/mbgl/{programs => shaders}/program_parameters.cpp (98%) rename src/mbgl/{programs => shaders}/segment.hpp (100%) rename src/mbgl/{programs => shaders}/uniforms.hpp (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index aefcb6d16..cb25edf48 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -279,6 +279,7 @@ list(APPEND INCLUDE_FILES ${PROJECT_SOURCE_DIR}/include/mbgl/renderer/renderer_frontend.hpp ${PROJECT_SOURCE_DIR}/include/mbgl/renderer/renderer_observer.hpp ${PROJECT_SOURCE_DIR}/include/mbgl/renderer/renderer_state.hpp + ${PROJECT_SOURCE_DIR}/include/mbgl/shaders/program_parameters.hpp ${PROJECT_SOURCE_DIR}/include/mbgl/storage/database_file_source.hpp ${PROJECT_SOURCE_DIR}/include/mbgl/storage/file_source.hpp ${PROJECT_SOURCE_DIR}/include/mbgl/storage/file_source_manager.hpp @@ -485,7 +486,6 @@ list(APPEND SRC_FILES ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/offscreen_texture.hpp ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/polyline_generator.cpp ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/fill_generator.cpp - ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/program.hpp ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/render_pass.hpp ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/renderbuffer.hpp ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/renderer_backend.cpp @@ -493,7 +493,6 @@ list(APPEND SRC_FILES ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/shader_group.cpp ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/shader_registry.cpp ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/stencil_mode.hpp - ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/texture.hpp ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/uniform.hpp ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/upload_pass.hpp ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/vertex_buffer.hpp @@ -543,17 +542,6 @@ list(APPEND SRC_FILES ${PROJECT_SOURCE_DIR}/src/mbgl/map/zoom_history.hpp ${PROJECT_SOURCE_DIR}/src/mbgl/math/log2.cpp ${PROJECT_SOURCE_DIR}/src/mbgl/platform/settings.cpp - ${PROJECT_SOURCE_DIR}/src/mbgl/programs/attributes.hpp - ${PROJECT_SOURCE_DIR}/src/mbgl/programs/clipping_mask_program.cpp - ${PROJECT_SOURCE_DIR}/src/mbgl/programs/clipping_mask_program.hpp - ${PROJECT_SOURCE_DIR}/src/mbgl/programs/program.hpp - ${PROJECT_SOURCE_DIR}/src/mbgl/programs/program_parameters.cpp - ${PROJECT_SOURCE_DIR}/src/mbgl/programs/program_parameters.hpp - ${PROJECT_SOURCE_DIR}/src/mbgl/programs/programs.cpp - ${PROJECT_SOURCE_DIR}/src/mbgl/programs/programs.hpp - ${PROJECT_SOURCE_DIR}/src/mbgl/programs/segment.hpp - ${PROJECT_SOURCE_DIR}/src/mbgl/programs/textures.hpp - ${PROJECT_SOURCE_DIR}/src/mbgl/programs/uniforms.hpp ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/backend_scope.cpp ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/bucket.hpp ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/bucket_parameters.cpp @@ -657,6 +645,10 @@ list(APPEND SRC_FILES ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/transition_parameters.hpp ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/update_parameters.hpp ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/upload_parameters.hpp + ${PROJECT_SOURCE_DIR}/src/mbgl/shaders/attributes.hpp + ${PROJECT_SOURCE_DIR}/src/mbgl/shaders/program_parameters.cpp + ${PROJECT_SOURCE_DIR}/src/mbgl/shaders/segment.hpp + ${PROJECT_SOURCE_DIR}/src/mbgl/shaders/uniforms.hpp ${PROJECT_SOURCE_DIR}/src/mbgl/sprite/sprite_loader.cpp ${PROJECT_SOURCE_DIR}/src/mbgl/sprite/sprite_loader.hpp ${PROJECT_SOURCE_DIR}/src/mbgl/sprite/sprite_loader_observer.hpp @@ -1040,7 +1032,6 @@ if(MLN_WITH_OPENGL) ${PROJECT_SOURCE_DIR}/src/mbgl/gl/object.hpp ${PROJECT_SOURCE_DIR}/src/mbgl/gl/offscreen_texture.cpp ${PROJECT_SOURCE_DIR}/src/mbgl/gl/offscreen_texture.hpp - ${PROJECT_SOURCE_DIR}/src/mbgl/gl/program.hpp ${PROJECT_SOURCE_DIR}/src/mbgl/gl/render_pass.cpp ${PROJECT_SOURCE_DIR}/src/mbgl/gl/render_pass.hpp ${PROJECT_SOURCE_DIR}/src/mbgl/gl/renderbuffer_resource.cpp @@ -1049,10 +1040,6 @@ if(MLN_WITH_OPENGL) ${PROJECT_SOURCE_DIR}/src/mbgl/gl/resource_pool.cpp ${PROJECT_SOURCE_DIR}/src/mbgl/gl/resource_pool.hpp ${PROJECT_SOURCE_DIR}/src/mbgl/gl/state.hpp - ${PROJECT_SOURCE_DIR}/src/mbgl/gl/texture.cpp - ${PROJECT_SOURCE_DIR}/src/mbgl/gl/texture.hpp - ${PROJECT_SOURCE_DIR}/src/mbgl/gl/texture_resource.cpp - ${PROJECT_SOURCE_DIR}/src/mbgl/gl/texture_resource.hpp ${PROJECT_SOURCE_DIR}/src/mbgl/gl/timestamp_query_extension.cpp ${PROJECT_SOURCE_DIR}/src/mbgl/gl/timestamp_query_extension.hpp ${PROJECT_SOURCE_DIR}/src/mbgl/gl/types.hpp @@ -1067,6 +1054,11 @@ if(MLN_WITH_OPENGL) ${PROJECT_SOURCE_DIR}/src/mbgl/gl/vertex_buffer_resource.cpp ${PROJECT_SOURCE_DIR}/src/mbgl/gl/vertex_buffer_resource.hpp ${PROJECT_SOURCE_DIR}/src/mbgl/platform/gl_functions.cpp + ${PROJECT_SOURCE_DIR}/src/mbgl/shaders/gl/legacy/clipping_mask_program.hpp + ${PROJECT_SOURCE_DIR}/src/mbgl/shaders/gl/legacy/program_base.hpp + ${PROJECT_SOURCE_DIR}/src/mbgl/shaders/gl/legacy/program.hpp + ${PROJECT_SOURCE_DIR}/src/mbgl/shaders/gl/legacy/programs.cpp + ${PROJECT_SOURCE_DIR}/src/mbgl/shaders/gl/legacy/programs.hpp ) list(APPEND INCLUDE_FILES diff --git a/bazel/core.bzl b/bazel/core.bzl index 06efec4e3..485dc8dbd 100644 --- a/bazel/core.bzl +++ b/bazel/core.bzl @@ -132,7 +132,6 @@ MLN_CORE_SOURCE = [ "src/mbgl/gfx/index_vector.hpp", "src/mbgl/gfx/offscreen_texture.hpp", "src/mbgl/gfx/polyline_generator.cpp", - "src/mbgl/gfx/program.hpp", "src/mbgl/gfx/render_pass.hpp", "src/mbgl/gfx/renderbuffer.hpp", "src/mbgl/gfx/renderer_backend.cpp", @@ -140,7 +139,6 @@ MLN_CORE_SOURCE = [ "src/mbgl/gfx/shader_registry.cpp", "src/mbgl/gfx/shader_group.cpp", "src/mbgl/gfx/stencil_mode.hpp", - "src/mbgl/gfx/texture.hpp", "src/mbgl/gfx/uniform.hpp", "src/mbgl/gfx/upload_pass.hpp", "src/mbgl/gfx/vertex_buffer.hpp", @@ -184,17 +182,6 @@ MLN_CORE_SOURCE = [ "src/mbgl/map/zoom_history.hpp", "src/mbgl/math/log2.cpp", "src/mbgl/platform/settings.cpp", - "src/mbgl/programs/attributes.hpp", - "src/mbgl/programs/clipping_mask_program.cpp", - "src/mbgl/programs/clipping_mask_program.hpp", - "src/mbgl/programs/program.hpp", - "src/mbgl/programs/program_parameters.cpp", - "src/mbgl/programs/program_parameters.hpp", - "src/mbgl/programs/programs.cpp", - "src/mbgl/programs/programs.hpp", - "src/mbgl/programs/segment.hpp", - "src/mbgl/programs/textures.hpp", - "src/mbgl/programs/uniforms.hpp", "src/mbgl/renderer/backend_scope.cpp", "src/mbgl/renderer/bucket.hpp", "src/mbgl/renderer/bucket_parameters.cpp", @@ -302,6 +289,10 @@ MLN_CORE_SOURCE = [ "src/mbgl/renderer/transition_parameters.hpp", "src/mbgl/renderer/update_parameters.hpp", "src/mbgl/renderer/upload_parameters.hpp", + "src/mbgl/shaders/attributes.hpp", + "src/mbgl/shaders/program_parameters.cpp", + "src/mbgl/shaders/segment.hpp", + "src/mbgl/shaders/uniforms.hpp", "src/mbgl/sprite/sprite_loader.cpp", "src/mbgl/sprite/sprite_loader.hpp", "src/mbgl/sprite/sprite_loader_observer.hpp", @@ -653,6 +644,7 @@ MLN_CORE_HEADERS = [ "include/mbgl/renderer/renderer_frontend.hpp", "include/mbgl/renderer/renderer_observer.hpp", "include/mbgl/renderer/renderer_state.hpp", + "include/mbgl/shaders/program_parameters.hpp", "include/mbgl/storage/database_file_source.hpp", "include/mbgl/storage/file_source.hpp", "include/mbgl/storage/file_source_manager.hpp", @@ -834,7 +826,6 @@ MLN_OPENGL_SOURCE = [ "src/mbgl/gl/object.hpp", "src/mbgl/gl/offscreen_texture.cpp", "src/mbgl/gl/offscreen_texture.hpp", - "src/mbgl/gl/program.hpp", "src/mbgl/gl/render_pass.cpp", "src/mbgl/gl/render_pass.hpp", "src/mbgl/gl/renderbuffer_resource.cpp", @@ -843,10 +834,6 @@ MLN_OPENGL_SOURCE = [ "src/mbgl/gl/resource_pool.cpp", "src/mbgl/gl/resource_pool.hpp", "src/mbgl/gl/state.hpp", - "src/mbgl/gl/texture.cpp", - "src/mbgl/gl/texture.hpp", - "src/mbgl/gl/texture_resource.cpp", - "src/mbgl/gl/texture_resource.hpp", "src/mbgl/gl/timestamp_query_extension.cpp", "src/mbgl/gl/timestamp_query_extension.hpp", "src/mbgl/gl/types.hpp", @@ -861,6 +848,11 @@ MLN_OPENGL_SOURCE = [ "src/mbgl/gl/vertex_buffer_resource.cpp", "src/mbgl/gl/vertex_buffer_resource.hpp", "src/mbgl/platform/gl_functions.cpp", + "src/mbgl/shaders/gl/legacy/clipping_mask_program.hpp", + "src/mbgl/shaders/gl/legacy/program_base.hpp", + "src/mbgl/shaders/gl/legacy/program.hpp", + "src/mbgl/shaders/gl/legacy/programs.cpp", + "src/mbgl/shaders/gl/legacy/programs.hpp", ] MLN_OPENGL_HEADERS = [ diff --git a/include/mbgl/gfx/context.hpp b/include/mbgl/gfx/context.hpp index 28016426c..abcefef38 100644 --- a/include/mbgl/gfx/context.hpp +++ b/include/mbgl/gfx/context.hpp @@ -5,10 +5,8 @@ #include #include #include -#include #include #include -#include #include #include @@ -30,6 +28,8 @@ using RenderTargetPtr = std::shared_ptr; namespace gfx { +class DepthMode; +class ColorMode; class OffscreenTexture; class ShaderRegistry; @@ -79,13 +79,6 @@ public: virtual std::unique_ptr createOffscreenTexture(Size, TextureChannelDataType) = 0; - /// Creates an empty texture with the specified dimensions. - Texture createTexture(const Size size, - TexturePixelType format = TexturePixelType::RGBA, - TextureChannelDataType type = TextureChannelDataType::UnsignedByte) { - return {size, createTextureResource(size, format, type)}; - } - template Renderbuffer createRenderbuffer(const Size size) { return {size, createRenderbufferResource(pixelType, size)}; @@ -173,7 +166,6 @@ public: virtual void unbindGlobalUniformBuffers(gfx::RenderPass&) const noexcept = 0; protected: - virtual std::unique_ptr createTextureResource(Size, TexturePixelType, TextureChannelDataType) = 0; virtual std::unique_ptr createRenderbufferResource(RenderbufferPixelType, Size) = 0; virtual std::unique_ptr createDrawScopeResource() = 0; diff --git a/include/mbgl/gfx/drawable_impl.hpp b/include/mbgl/gfx/drawable_impl.hpp index c98be4914..b01ca246a 100644 --- a/include/mbgl/gfx/drawable_impl.hpp +++ b/include/mbgl/gfx/drawable_impl.hpp @@ -2,7 +2,7 @@ #include #include -#include +#include namespace mbgl { namespace gfx { diff --git a/include/mbgl/gfx/polyline_generator.hpp b/include/mbgl/gfx/polyline_generator.hpp index f25752315..bb82ff6eb 100644 --- a/include/mbgl/gfx/polyline_generator.hpp +++ b/include/mbgl/gfx/polyline_generator.hpp @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #include diff --git a/include/mbgl/gfx/texture2d.hpp b/include/mbgl/gfx/texture2d.hpp index 2200e9a9b..5b4d73256 100644 --- a/include/mbgl/gfx/texture2d.hpp +++ b/include/mbgl/gfx/texture2d.hpp @@ -15,6 +15,8 @@ class Context; class UploadPass; class TextureResource; +constexpr int32_t MaxActiveTextureUnits = 8; + class Texture2D { public: struct SamplerState { diff --git a/include/mbgl/gl/drawable_gl.hpp b/include/mbgl/gl/drawable_gl.hpp index 2aad6c4d8..3c14a1255 100644 --- a/include/mbgl/gl/drawable_gl.hpp +++ b/include/mbgl/gl/drawable_gl.hpp @@ -4,14 +4,12 @@ #include #include #include -#include #include namespace mbgl { -template -class Segment; +class SegmentBase; class PaintParameters; namespace gfx { diff --git a/include/mbgl/gl/texture2d.hpp b/include/mbgl/gl/texture2d.hpp index 37071a8d7..6cce3b3a1 100644 --- a/include/mbgl/gl/texture2d.hpp +++ b/include/mbgl/gl/texture2d.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include #include #include @@ -66,7 +67,7 @@ private: private: gl::Context& context; - std::unique_ptr textureResource{nullptr}; + std::unique_ptr texture; SamplerState samplerState{}; gfx::TexturePixelType pixelFormat{gfx::TexturePixelType::RGBA}; diff --git a/include/mbgl/mtl/context.hpp b/include/mbgl/mtl/context.hpp index 46c6e2c08..7a5573de8 100644 --- a/include/mbgl/mtl/context.hpp +++ b/include/mbgl/mtl/context.hpp @@ -1,6 +1,5 @@ #pragma once -#include #include #include #include @@ -109,10 +108,6 @@ public: std::unique_ptr createOffscreenTexture(Size, gfx::TextureChannelDataType) override; - std::unique_ptr createTextureResource(Size, - gfx::TexturePixelType, - gfx::TextureChannelDataType) override; - std::unique_ptr createRenderbufferResource(gfx::RenderbufferPixelType, Size size) override; diff --git a/include/mbgl/mtl/drawable.hpp b/include/mbgl/mtl/drawable.hpp index b40c87b76..d98e62d11 100644 --- a/include/mbgl/mtl/drawable.hpp +++ b/include/mbgl/mtl/drawable.hpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include diff --git a/include/mbgl/mtl/upload_pass.hpp b/include/mbgl/mtl/upload_pass.hpp index 99598529a..8a994a659 100644 --- a/include/mbgl/mtl/upload_pass.hpp +++ b/include/mbgl/mtl/upload_pass.hpp @@ -2,7 +2,6 @@ #include #include -#include #include #include #include @@ -71,21 +70,6 @@ public: const std::optional> lastUpdate, /*out*/ std::vector>& outBuffers) override; - std::unique_ptr createTextureResource(Size, - const void* data, - gfx::TexturePixelType, - gfx::TextureChannelDataType) override; - void updateTextureResource( - gfx::TextureResource&, Size, const void* data, gfx::TexturePixelType, gfx::TextureChannelDataType) override; - - void updateTextureResourceSub(gfx::TextureResource&, - uint16_t xOffset, - uint16_t yOffset, - Size, - const void* data, - gfx::TexturePixelType, - gfx::TextureChannelDataType) override; - private: void pushDebugGroup(const char* name) override; void popDebugGroup() override; diff --git a/include/mbgl/shaders/gl/shader_group_gl.hpp b/include/mbgl/shaders/gl/shader_group_gl.hpp index 6eada1fc9..acaf6358f 100644 --- a/include/mbgl/shaders/gl/shader_group_gl.hpp +++ b/include/mbgl/shaders/gl/shader_group_gl.hpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include namespace mbgl { diff --git a/include/mbgl/shaders/mtl/shader_group.hpp b/include/mbgl/shaders/mtl/shader_group.hpp index a63953715..a1dee00ae 100644 --- a/include/mbgl/shaders/mtl/shader_group.hpp +++ b/include/mbgl/shaders/mtl/shader_group.hpp @@ -1,9 +1,9 @@ #pragma once #include -#include #include #include +#include #include #include #include diff --git a/src/mbgl/programs/program_parameters.hpp b/include/mbgl/shaders/program_parameters.hpp similarity index 100% rename from src/mbgl/programs/program_parameters.hpp rename to include/mbgl/shaders/program_parameters.hpp diff --git a/include/mbgl/shaders/vulkan/shader_group.hpp b/include/mbgl/shaders/vulkan/shader_group.hpp index 475336502..818b272ae 100644 --- a/include/mbgl/shaders/vulkan/shader_group.hpp +++ b/include/mbgl/shaders/vulkan/shader_group.hpp @@ -1,8 +1,8 @@ #pragma once #include -#include #include +#include #include #include #include diff --git a/include/mbgl/vulkan/context.hpp b/include/mbgl/vulkan/context.hpp index 6a4880c9d..9a75e5e96 100644 --- a/include/mbgl/vulkan/context.hpp +++ b/include/mbgl/vulkan/context.hpp @@ -1,6 +1,5 @@ #pragma once -#include #include #include #include @@ -105,10 +104,6 @@ public: std::unique_ptr createOffscreenTexture(Size, gfx::TextureChannelDataType) override; - std::unique_ptr createTextureResource(Size, - gfx::TexturePixelType, - gfx::TextureChannelDataType) override; - std::unique_ptr createRenderbufferResource(gfx::RenderbufferPixelType, Size size) override; diff --git a/include/mbgl/vulkan/pipeline.hpp b/include/mbgl/vulkan/pipeline.hpp index 2c7af7fdf..69c909e09 100644 --- a/include/mbgl/vulkan/pipeline.hpp +++ b/include/mbgl/vulkan/pipeline.hpp @@ -3,6 +3,7 @@ #include #include #include +#include #include #include diff --git a/include/mbgl/vulkan/upload_pass.hpp b/include/mbgl/vulkan/upload_pass.hpp index 5a9a0232c..45713e706 100644 --- a/include/mbgl/vulkan/upload_pass.hpp +++ b/include/mbgl/vulkan/upload_pass.hpp @@ -2,7 +2,6 @@ #include #include -#include #include #include @@ -66,21 +65,6 @@ public: const std::optional> lastUpdate, /*out*/ std::vector>& outBuffers) override; - std::unique_ptr createTextureResource(Size, - const void* data, - gfx::TexturePixelType, - gfx::TextureChannelDataType) override; - void updateTextureResource( - gfx::TextureResource&, Size, const void* data, gfx::TexturePixelType, gfx::TextureChannelDataType) override; - - void updateTextureResourceSub(gfx::TextureResource&, - uint16_t xOffset, - uint16_t yOffset, - Size, - const void* data, - gfx::TexturePixelType, - gfx::TextureChannelDataType) override; - private: void pushDebugGroup(const char* name) override; void popDebugGroup() override; diff --git a/src/mbgl/geometry/line_atlas.hpp b/src/mbgl/geometry/line_atlas.hpp index 3ab22442d..ca3a73524 100644 --- a/src/mbgl/geometry/line_atlas.hpp +++ b/src/mbgl/geometry/line_atlas.hpp @@ -1,6 +1,5 @@ #pragma once -#include #include #include #include diff --git a/src/mbgl/gfx/drawable_builder_impl.hpp b/src/mbgl/gfx/drawable_builder_impl.hpp index d3fec0b1a..4992360a8 100644 --- a/src/mbgl/gfx/drawable_builder_impl.hpp +++ b/src/mbgl/gfx/drawable_builder_impl.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/mbgl/gfx/program.hpp b/src/mbgl/gfx/program.hpp deleted file mode 100644 index 04c15603d..000000000 --- a/src/mbgl/gfx/program.hpp +++ /dev/null @@ -1,58 +0,0 @@ -#pragma once - -#include - -namespace mbgl { -namespace gfx { - -class Context; -class DrawMode; -class DepthMode; -class StencilMode; -class ColorMode; -class CullFaceMode; -class DrawScope; -class IndexBuffer; -class RenderPass; -template -class UniformValues; -template -class AttributeBindings; -template -class TextureBindings; - -template -class Program { -protected: - Program() = default; - -public: - virtual ~Program() = default; - - Program(Program&&) = delete; - Program(const Program&) = delete; - Program& operator=(Program&&) = delete; - Program& operator=(const Program&) = delete; - - using AttributeList = typename Name::AttributeList; - using UniformList = typename Name::UniformList; - using TextureList = typename Name::TextureList; - - virtual void draw(Context&, - RenderPass&, - const DrawMode&, - const DepthMode&, - const StencilMode&, - const ColorMode&, - const CullFaceMode&, - const UniformValues&, - DrawScope&, - const AttributeBindings&, - const TextureBindings&, - const IndexBuffer&, - std::size_t indexOffset, - std::size_t indexLength) = 0; -}; - -} // namespace gfx -} // namespace mbgl diff --git a/src/mbgl/gfx/texture.hpp b/src/mbgl/gfx/texture.hpp deleted file mode 100644 index 00b9ff7a6..000000000 --- a/src/mbgl/gfx/texture.hpp +++ /dev/null @@ -1,86 +0,0 @@ -#pragma once - -#include -#include -#include -#include - -#include -#include - -#define MBGL_DEFINE_TEXTURE(name_) \ - struct name_ { \ - using Value = ::mbgl::gfx::TextureBinding; \ - static constexpr auto name() { \ - return #name_; \ - } \ - } - -namespace mbgl { -namespace gfx { - -constexpr int32_t MaxActiveTextureUnits = 8; -class TextureResource { -protected: - TextureResource() = default; - -public: - virtual ~TextureResource() = default; -}; - -class Texture { -public: - Texture(const Size size_, std::unique_ptr&& resource_) - : size(size_), - resource(std::move(resource_)) {} - - template - T& getResource() const { - assert(resource); - return static_cast(*resource); - } - - const Size& getSize() const noexcept { return size; } - - Size size; - -protected: - std::unique_ptr resource; -}; - -class TextureBinding { -public: - TextureBinding(TextureResource& resource_, - TextureFilterType filter_ = TextureFilterType::Nearest, - TextureMipMapType mipmap_ = TextureMipMapType::No, - TextureWrapType wrapX_ = TextureWrapType::Clamp, - TextureWrapType wrapY_ = TextureWrapType::Clamp) - : resource(&resource_), - filter(filter_), - mipmap(mipmap_), - wrapX(wrapX_), - wrapY(wrapY_) {} - - TextureResource* resource; - TextureFilterType filter; - TextureMipMapType mipmap; - TextureWrapType wrapX; - TextureWrapType wrapY; -}; - -template -class TextureBindings; - -template -class TextureBindings> final - : public IndexedTuple, TypeList...>> { - using Base = IndexedTuple, TypeList...>>; - -public: - template - TextureBindings(Args&&... args) - : Base(std::forward(args)...) {} -}; - -} // namespace gfx -} // namespace mbgl diff --git a/src/mbgl/gfx/upload_pass.hpp b/src/mbgl/gfx/upload_pass.hpp index 71a76909d..8804dde54 100644 --- a/src/mbgl/gfx/upload_pass.hpp +++ b/src/mbgl/gfx/upload_pass.hpp @@ -6,7 +6,6 @@ #include #include #include -#include #include #include @@ -97,51 +96,6 @@ public: BufferUsageType, bool persistent = false) = 0; virtual void updateIndexBufferResource(IndexBufferResource&, const void* data, std::size_t size) = 0; - -public: - // Create a texture from an image with data. - template - Texture createTexture(const Image& image, TextureChannelDataType type = TextureChannelDataType::UnsignedByte) { - auto format = image.channels == 4 ? TexturePixelType::RGBA : TexturePixelType::Alpha; - return {image.size, createTextureResource(image.size, image.data.get(), format, type)}; - } - - template - void updateTexture(Texture& texture, - const Image& image, - TextureChannelDataType type = TextureChannelDataType::UnsignedByte) { - const auto format = image.channels == 4 ? TexturePixelType::RGBA : TexturePixelType::Alpha; - updateTextureResource(texture.getResource(), image.size, image.data.get(), format, type); - texture.size = image.size; - } - - template - void updateTextureSub(Texture& texture, - const Image& image, - const uint16_t offsetX, - const uint16_t offsetY, - TextureChannelDataType type = TextureChannelDataType::UnsignedByte) { - assert(image.size.width + offsetX <= texture.size.width); - assert(image.size.height + offsetY <= texture.size.height); - const auto format = image.channels == 4 ? TexturePixelType::RGBA : TexturePixelType::Alpha; - updateTextureResourceSub(texture.getResource(), offsetX, offsetY, image.size, image.data.get(), format, type); - } - -public: - virtual std::unique_ptr createTextureResource(Size, - const void* data, - TexturePixelType, - TextureChannelDataType) = 0; - virtual void updateTextureResource( - TextureResource&, Size, const void* data, TexturePixelType, TextureChannelDataType) = 0; - - virtual void updateTextureResourceSub(TextureResource&, - uint16_t xOffset, - uint16_t yOffset, - Size, - const void* data, - TexturePixelType, - TextureChannelDataType) = 0; }; } // namespace gfx diff --git a/src/mbgl/gl/attribute.hpp b/src/mbgl/gl/attribute.hpp index 52a44d29e..d39e8789f 100644 --- a/src/mbgl/gl/attribute.hpp +++ b/src/mbgl/gl/attribute.hpp @@ -2,7 +2,7 @@ #include #include -#include +#include #include #include diff --git a/src/mbgl/gl/context.cpp b/src/mbgl/gl/context.cpp index 5d81f21ed..916797937 100644 --- a/src/mbgl/gl/context.cpp +++ b/src/mbgl/gl/context.cpp @@ -7,8 +7,6 @@ #include #include #include -#include -#include #include #include #include @@ -295,29 +293,6 @@ UniqueFramebuffer Context::createFramebuffer() { return UniqueFramebuffer{std::move(id), {this}}; } -std::unique_ptr Context::createTextureResource(const Size size, - const gfx::TexturePixelType format, - const gfx::TextureChannelDataType type) { - MLN_TRACE_FUNC(); - - auto obj = createUniqueTexture(size, format, type); - std::unique_ptr resource = std::make_unique(std::move(obj)); - - // Always use texture unit 0 for manipulating it. - activeTextureUnit = 0; - texture[0] = static_cast(*resource).texture; - - // We are using clamp to edge here since OpenGL ES doesn't allow GL_REPEAT - // on NPOT textures. We use those when the pixelRatio isn't a power of two, - // e.g. on iPhone 6 Plus. - MBGL_CHECK_ERROR(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE)); - MBGL_CHECK_ERROR(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE)); - MBGL_CHECK_ERROR(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST)); - MBGL_CHECK_ERROR(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST)); - - return resource; -} - std::unique_ptr Context::createRenderbufferResource(const gfx::RenderbufferPixelType type, const Size size) { MLN_TRACE_FUNC(); @@ -449,51 +424,6 @@ Framebuffer Context::createFramebuffer(const gfx::Renderbuffer& depthStencil) { - MLN_TRACE_FUNC(); - - if (color.size != depthStencil.getSize()) { - throw std::runtime_error("Renderbuffer size mismatch"); - } - auto fbo = createFramebuffer(); - bindFramebuffer = fbo; - MBGL_CHECK_ERROR(glFramebufferTexture2D( - GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, color.getResource().texture, 0)); - bindDepthStencilRenderbuffer(depthStencil); - checkFramebuffer(); - return {color.size, std::move(fbo)}; -} - -Framebuffer Context::createFramebuffer(const gfx::Texture& color) { - MLN_TRACE_FUNC(); - - auto fbo = createFramebuffer(); - bindFramebuffer = fbo; - MBGL_CHECK_ERROR(glFramebufferTexture2D( - GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, color.getResource().texture, 0)); - checkFramebuffer(); - return {color.size, std::move(fbo)}; -} - -Framebuffer Context::createFramebuffer(const gfx::Texture& color, - const gfx::Renderbuffer& depth) { - MLN_TRACE_FUNC(); - if (color.size != depth.getSize()) { - throw std::runtime_error("Renderbuffer size mismatch"); - } - auto fbo = createFramebuffer(); - bindFramebuffer = fbo; - MBGL_CHECK_ERROR(glFramebufferTexture2D( - GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, color.getResource().texture, 0)); - - auto& depthResource = depth.getResource(); - MBGL_CHECK_ERROR( - glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depthResource.renderbuffer)); - checkFramebuffer(); - return {depth.getSize(), std::move(fbo)}; -} - std::unique_ptr Context::createOffscreenTexture(const Size size, const gfx::TextureChannelDataType type) { MLN_TRACE_FUNC(); diff --git a/src/mbgl/gl/context.hpp b/src/mbgl/gl/context.hpp index 82ec8d3af..6ce4bb0ee 100644 --- a/src/mbgl/gl/context.hpp +++ b/src/mbgl/gl/context.hpp @@ -1,6 +1,5 @@ #pragma once -#include #include #include #include @@ -63,10 +62,6 @@ public: Framebuffer createFramebuffer(const gfx::Renderbuffer&, const gfx::Renderbuffer&); Framebuffer createFramebuffer(const gfx::Renderbuffer&); - Framebuffer createFramebuffer(const gfx::Texture&, - const gfx::Renderbuffer&); - Framebuffer createFramebuffer(const gfx::Texture&); - Framebuffer createFramebuffer(const gfx::Texture&, const gfx::Renderbuffer&); template createOffscreenTexture(Size, gfx::TextureChannelDataType) override; - std::unique_ptr createTextureResource(Size, - gfx::TexturePixelType, - gfx::TextureChannelDataType) override; private: std::unique_ptr createRenderbufferResource(gfx::RenderbufferPixelType, diff --git a/src/mbgl/gl/drawable_gl.cpp b/src/mbgl/gl/drawable_gl.cpp index 3a65cf4fb..c335cebd1 100644 --- a/src/mbgl/gl/drawable_gl.cpp +++ b/src/mbgl/gl/drawable_gl.cpp @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/mbgl/gl/drawable_gl_impl.hpp b/src/mbgl/gl/drawable_gl_impl.hpp index 787c52896..a972ac6cd 100644 --- a/src/mbgl/gl/drawable_gl_impl.hpp +++ b/src/mbgl/gl/drawable_gl_impl.hpp @@ -2,15 +2,13 @@ #include #include -#include #include #include #include -#include #include #include #include -#include +#include #include #include diff --git a/src/mbgl/gl/renderer_backend.cpp b/src/mbgl/gl/renderer_backend.cpp index a11c799a6..3a8a31b9d 100644 --- a/src/mbgl/gl/renderer_backend.cpp +++ b/src/mbgl/gl/renderer_backend.cpp @@ -8,6 +8,7 @@ #include #include +#include #include @@ -146,6 +147,10 @@ void RendererBackend::initShaders(gfx::ShaderRegistry& shaders, const ProgramPar shaders::BuiltIn::SymbolIconShader, shaders::BuiltIn::SymbolSDFShader, shaders::BuiltIn::SymbolTextAndIconShader>(shaders, programParameters); + + // Initialize legacy shader programs + Programs programs(programParameters); + programs.registerWith(shaders); } } // namespace gl diff --git a/src/mbgl/gl/resource_pool.cpp b/src/mbgl/gl/resource_pool.cpp index 9c0f4ea15..2de7b8056 100644 --- a/src/mbgl/gl/resource_pool.cpp +++ b/src/mbgl/gl/resource_pool.cpp @@ -6,7 +6,6 @@ #include #include #include -#include #include #include #include @@ -18,10 +17,6 @@ using namespace platform; namespace { -size_t storageSize(const Texture2DDesc& desc) { - return static_cast(TextureResource::getStorageSize(desc.size, desc.pixelFormat, desc.channelType)); -} - #if !defined(NDEBUG) void logDebugMessage(const std::string& message) { Log::Debug(Event::General, "Texture2DPool: " + message); @@ -32,6 +27,37 @@ void logDebugMessage(const std::string&) {} } // namespace +size_t Texture2DDesc::channelCount() const { + switch (pixelFormat) { + case gfx::TexturePixelType::Alpha: + case gfx::TexturePixelType::Depth: + case gfx::TexturePixelType::Luminance: + case gfx::TexturePixelType::Stencil: + return 1; + case gfx::TexturePixelType::RGBA: + return 4; + default: + assert(!"Unknown texture pixel type"); + return 0; + } +} + +size_t Texture2DDesc::channelStorageSize() const { + switch (channelType) { + case gfx::TextureChannelDataType::HalfFloat: + return 2; + case gfx::TextureChannelDataType::UnsignedByte: + return 1; + default: + assert(!"Unknown texture channel data type"); + return 0; + } +} + +size_t Texture2DDesc::getStorageSize() const { + return size.width * size.height * channelCount() * channelStorageSize(); +} + std::size_t Texture2DDescHash::operator()(const Texture2DDesc& desc) const { std::size_t seed = 0; util::hash_combine(seed, desc.size.width); @@ -133,7 +159,7 @@ TextureID Texture2DPool::allocateGLMemory(const Texture2DDesc& desc) { pool[desc].used.insert(id); // Update poolStorage - auto storage = storageSize(desc); + auto storage = desc.getStorageSize(); poolStorage += storage; context->renderingStats().memTextures += storage; MLN_TRACE_ALLOC_TEXTURE(id, storage); @@ -167,7 +193,7 @@ void Texture2DPool::freeAllocatedGLMemory(TextureID id) { } // Update poolStorage - auto storage = storageSize(desc); + auto storage = desc.getStorageSize(); poolStorage -= storage; context->renderingStats().memTextures -= storage; assert(context->renderingStats().memTextures >= 0); @@ -224,7 +250,7 @@ bool Texture2DPool::isUnused(TextureID id) const { size_t Texture2DPool::usedStorage() const { size_t total = 0; for (const auto& set : pool) { - total += storageSize(set.first) * set.second.used.size(); + total += set.first.getStorageSize() * set.second.used.size(); } return total; } @@ -232,7 +258,7 @@ size_t Texture2DPool::usedStorage() const { size_t Texture2DPool::unusedStorage() const { size_t total = 0; for (const auto& set : pool) { - total += storageSize(set.first) * set.second.free.size(); + total += set.first.getStorageSize() * set.second.free.size(); } return total; } @@ -244,7 +270,7 @@ const Texture2DDesc& Texture2DPool::desc(TextureID id) const { size_t Texture2DPool::storage(TextureID id) const { assert(descriptions.find(id) != descriptions.end()); - return storageSize(descriptions.at(id)); + return descriptions.at(id).getStorageSize(); } } // namespace gl diff --git a/src/mbgl/gl/resource_pool.hpp b/src/mbgl/gl/resource_pool.hpp index 7abd62304..2532c3cd4 100644 --- a/src/mbgl/gl/resource_pool.hpp +++ b/src/mbgl/gl/resource_pool.hpp @@ -19,6 +19,10 @@ struct Texture2DDesc { Size size; gfx::TexturePixelType pixelFormat; gfx::TextureChannelDataType channelType; + + size_t channelCount() const; + size_t channelStorageSize() const; + size_t getStorageSize() const; }; struct Texture2DDescHash { diff --git a/src/mbgl/gl/texture.cpp b/src/mbgl/gl/texture.cpp deleted file mode 100644 index 41557ce08..000000000 --- a/src/mbgl/gl/texture.cpp +++ /dev/null @@ -1,55 +0,0 @@ -#include -#include -#include -#include - -namespace mbgl { -namespace gl { - -using namespace platform; - -void bindTexture(gl::Context& context, const uint8_t unit, const gfx::TextureBinding& binding) { - auto& resource = static_cast(*binding.resource); - if (binding.filter != resource.filter || binding.mipmap != resource.mipmap || binding.wrapX != resource.wrapX || - binding.wrapY != resource.wrapY) { - context.activeTextureUnit = unit; - context.texture[unit] = resource.texture; - - if (binding.filter != resource.filter || binding.mipmap != resource.mipmap) { - MBGL_CHECK_ERROR(glTexParameteri( - GL_TEXTURE_2D, - GL_TEXTURE_MIN_FILTER, - binding.filter == gfx::TextureFilterType::Linear - ? (binding.mipmap == gfx::TextureMipMapType::Yes ? GL_LINEAR_MIPMAP_NEAREST : GL_LINEAR) - : (binding.mipmap == gfx::TextureMipMapType::Yes ? GL_NEAREST_MIPMAP_NEAREST : GL_NEAREST))); - MBGL_CHECK_ERROR( - glTexParameteri(GL_TEXTURE_2D, - GL_TEXTURE_MAG_FILTER, - binding.filter == gfx::TextureFilterType::Linear ? GL_LINEAR : GL_NEAREST)); - resource.filter = binding.filter; - resource.mipmap = binding.mipmap; - } - if (binding.wrapX != resource.wrapX) { - MBGL_CHECK_ERROR( - glTexParameteri(GL_TEXTURE_2D, - GL_TEXTURE_WRAP_S, - binding.wrapX == gfx::TextureWrapType::Clamp ? GL_CLAMP_TO_EDGE : GL_REPEAT)); - resource.wrapX = binding.wrapX; - } - if (binding.wrapY != resource.wrapY) { - MBGL_CHECK_ERROR( - glTexParameteri(GL_TEXTURE_2D, - GL_TEXTURE_WRAP_T, - binding.wrapY == gfx::TextureWrapType::Clamp ? GL_CLAMP_TO_EDGE : GL_REPEAT)); - resource.wrapY = binding.wrapY; - } - } else if (context.texture[unit] != resource.texture) { - // We are checking first to avoid setting the active texture without a - // subsequent texture bind. - context.activeTextureUnit = unit; - context.texture[unit] = resource.texture; - } -} - -} // namespace gl -} // namespace mbgl diff --git a/src/mbgl/gl/texture.hpp b/src/mbgl/gl/texture.hpp deleted file mode 100644 index f6cecc397..000000000 --- a/src/mbgl/gl/texture.hpp +++ /dev/null @@ -1,47 +0,0 @@ -#pragma once - -#include -#include -#include -#include - -#include -#include - -namespace mbgl { -namespace gl { - -class Context; - -void bindTexture(gl::Context&, uint8_t unit, const gfx::TextureBinding&); - -template -class TextureStates; - -template -class TextureStates> { -private: - using State = IndexedTuple, TypeList>...>>; - - State state; - -public: - void queryLocations(const ProgramID& id) { - state = State{ - gl::uniformLocation(id, concat_literals<&string_literal<'u', '_'>::value, &Ts::name>::value())...}; - } - - NamedUniformLocations getNamedLocations() const { - return NamedUniformLocations{{concat_literals<&string_literal<'u', '_'>::value, &Ts::name>::value(), - state.template get().location}...}; - } - - void bind(gl::Context& context, const gfx::TextureBindings>& bindings) { - util::ignore({(state.template get() = TypeIndex::value, - gl::bindTexture(context, TypeIndex::value, bindings.template get()), - 0)...}); - } -}; - -} // namespace gl -} // namespace mbgl diff --git a/src/mbgl/gl/texture2d.cpp b/src/mbgl/gl/texture2d.cpp index a1c9dd957..332e515a7 100644 --- a/src/mbgl/gl/texture2d.cpp +++ b/src/mbgl/gl/texture2d.cpp @@ -5,9 +5,6 @@ #include #include -#include -#include - namespace mbgl { namespace gl { @@ -18,7 +15,7 @@ Texture2D::~Texture2D() {} Texture2D& Texture2D::setSamplerConfiguration(const SamplerState& samplerState_) noexcept { samplerState = samplerState_; - samplerStateDirty = textureResource != nullptr; + samplerStateDirty = texture != nullptr; return *this; } @@ -27,7 +24,7 @@ Texture2D& Texture2D::setFormat(gfx::TexturePixelType pixelFormat_, gfx::Texture return *this; } - assert(!textureResource); + assert(!texture); pixelFormat = pixelFormat_; channelType = channelType_; storageDirty = true; @@ -76,9 +73,7 @@ void Texture2D::allocateTexture() noexcept { // Create a new texture object auto obj = context.createUniqueTexture(size, pixelFormat, channelType); - - // @TODO: TextureResource is still needed while we have legacy rendering pathways - textureResource = std::make_unique(std::move(obj)); + texture = std::make_unique(std::move(obj)); } void Texture2D::updateTextureData(const void* data) noexcept { @@ -99,7 +94,7 @@ void Texture2D::create() noexcept { } platform::GLuint Texture2D::getTextureID() const noexcept { - return textureResource ? static_cast(*textureResource).texture : 0; + return texture ? *texture : 0; } void Texture2D::updateSamplerConfiguration() noexcept { @@ -118,12 +113,6 @@ void Texture2D::updateSamplerConfiguration() noexcept { MBGL_CHECK_ERROR(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, samplerState.wrapV == gfx::TextureWrapType::Clamp ? GL_CLAMP_TO_EDGE : GL_REPEAT)); - - // Keep the resource sampler configuration in sync - auto& glResource = static_cast(*textureResource); - glResource.filter = samplerState.filter; - glResource.wrapX = samplerState.wrapU; - glResource.wrapY = samplerState.wrapV; } void Texture2D::bind(int32_t location, int32_t textureUnit) noexcept { @@ -166,7 +155,7 @@ void Texture2D::unbind() noexcept { } void Texture2D::upload(const void* pixelData, const Size& size_) noexcept { - if (!textureResource || storageDirty || size_ == Size{0, 0} || size_ != size) { + if (!texture || storageDirty || size_ == Size{0, 0} || size_ != size) { size = size_; // Create the texture object if we don't already have one or if storage is dirty @@ -178,7 +167,7 @@ void Texture2D::upload(const void* pixelData, const Size& size_) noexcept { void Texture2D::uploadSubRegion(const void* pixelData, const Size& size_, uint16_t xOffset, uint16_t yOffset) noexcept { using namespace platform; - assert(textureResource); + assert(texture); // update sampler configuration if needed if (samplerStateDirty) { diff --git a/src/mbgl/gl/texture_resource.cpp b/src/mbgl/gl/texture_resource.cpp deleted file mode 100644 index e04ec47e4..000000000 --- a/src/mbgl/gl/texture_resource.cpp +++ /dev/null @@ -1,45 +0,0 @@ -#include -#include -#include - -namespace mbgl { -namespace gl { - -static int channelCount(gfx::TexturePixelType format) { - switch (format) { - case gfx::TexturePixelType::Alpha: - case gfx::TexturePixelType::Depth: - case gfx::TexturePixelType::Luminance: - case gfx::TexturePixelType::Stencil: - return 1; - case gfx::TexturePixelType::RGBA: - return 4; - default: - assert(!"Unknown texture pixel type"); - return 0; - } -} - -static int channelStorageSize(gfx::TextureChannelDataType type) { - switch (type) { - case gfx::TextureChannelDataType::HalfFloat: - return 2; - case gfx::TextureChannelDataType::UnsignedByte: - return 1; - default: - assert(!"Unknown texture channel data type"); - return 0; - } -} - -TextureResource::TextureResource(UniqueTexture&& texture_) - : texture(std::move(texture_)) {} - -TextureResource::~TextureResource() noexcept {} - -int TextureResource::getStorageSize(const Size& size, gfx::TexturePixelType format, gfx::TextureChannelDataType type) { - return size.width * size.height * channelCount(format) * channelStorageSize(type); -} - -} // namespace gl -} // namespace mbgl diff --git a/src/mbgl/gl/texture_resource.hpp b/src/mbgl/gl/texture_resource.hpp deleted file mode 100644 index d6b284b32..000000000 --- a/src/mbgl/gl/texture_resource.hpp +++ /dev/null @@ -1,24 +0,0 @@ -#pragma once - -#include -#include - -namespace mbgl { -namespace gl { - -class TextureResource : public gfx::TextureResource { -public: - TextureResource(UniqueTexture&& texture_); - ~TextureResource() noexcept override; - - static int getStorageSize(const Size& size, gfx::TexturePixelType format, gfx::TextureChannelDataType type); - - UniqueTexture texture; - gfx::TextureFilterType filter = gfx::TextureFilterType::Nearest; - gfx::TextureMipMapType mipmap = gfx::TextureMipMapType::No; - gfx::TextureWrapType wrapX = gfx::TextureWrapType::Clamp; - gfx::TextureWrapType wrapY = gfx::TextureWrapType::Clamp; -}; - -} // namespace gl -} // namespace mbgl diff --git a/src/mbgl/gl/upload_pass.cpp b/src/mbgl/gl/upload_pass.cpp index fae1b550c..b58358b3c 100644 --- a/src/mbgl/gl/upload_pass.cpp +++ b/src/mbgl/gl/upload_pass.cpp @@ -8,7 +8,6 @@ #include #include #include -#include #include #include @@ -70,68 +69,6 @@ void UploadPass::updateIndexBufferResource(gfx::IndexBufferResource& resource, c MBGL_CHECK_ERROR(glBufferSubData(GL_ELEMENT_ARRAY_BUFFER, 0, size, data)); } -std::unique_ptr UploadPass::createTextureResource(const Size size, - const void* data, - gfx::TexturePixelType format, - gfx::TextureChannelDataType type) { - MLN_TRACE_FUNC(); - - auto obj = commandEncoder.context.createUniqueTexture(size, format, type); - auto resource = std::make_unique(std::move(obj)); - commandEncoder.context.pixelStoreUnpack = {1}; - updateTextureResourceSub(*resource, 0, 0, size, data, format, type); - // We are using clamp to edge here since OpenGL ES doesn't allow GL_REPEAT - // on NPOT textures. We use those when the pixelRatio isn't a power of two, - // e.g. on iPhone 6 Plus. - MBGL_CHECK_ERROR(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE)); - MBGL_CHECK_ERROR(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE)); - MBGL_CHECK_ERROR(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST)); - MBGL_CHECK_ERROR(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST)); - return resource; -} - -void UploadPass::updateTextureResource(gfx::TextureResource& resource, - const Size size, - const void* data, - gfx::TexturePixelType format, - gfx::TextureChannelDataType type) { - MLN_TRACE_FUNC(); - - updateTextureResourceSub(resource, 0, 0, size, data, format, type); -} - -void UploadPass::updateTextureResourceSub(gfx::TextureResource& resource, - const uint16_t xOffset, - const uint16_t yOffset, - const Size size, - const void* data, - gfx::TexturePixelType format, - gfx::TextureChannelDataType type) { - MLN_TRACE_FUNC(); - - auto& ctx = commandEncoder.context; - assert(ctx.getTexturePool().isUsed(static_cast(resource).texture)); - assert(ctx.getTexturePool().desc(static_cast(resource).texture).channelType == type); - assert(ctx.getTexturePool().desc(static_cast(resource).texture).pixelFormat == format); - assert(ctx.getTexturePool().desc(static_cast(resource).texture).size.width >= - xOffset + size.width); - assert(ctx.getTexturePool().desc(static_cast(resource).texture).size.height >= - yOffset + size.height); - - // Always use texture unit 0 for manipulating it. - ctx.activeTextureUnit = 0; - ctx.texture[0] = static_cast(resource).texture; - MBGL_CHECK_ERROR(glTexSubImage2D(GL_TEXTURE_2D, - 0, - xOffset, - yOffset, - size.width, - size.height, - Enum::to(format), - Enum::to(type), - data)); -} - struct VertexBufferGL : public gfx::VertexBufferBase { ~VertexBufferGL() override = default; diff --git a/src/mbgl/gl/upload_pass.hpp b/src/mbgl/gl/upload_pass.hpp index 60d39f098..99aceb44e 100644 --- a/src/mbgl/gl/upload_pass.hpp +++ b/src/mbgl/gl/upload_pass.hpp @@ -56,22 +56,6 @@ public: const std::optional> lastUpdate, /*out*/ std::vector>& outBuffers) override; -public: - std::unique_ptr createTextureResource(Size, - const void* data, - gfx::TexturePixelType, - gfx::TextureChannelDataType) override; - void updateTextureResource( - gfx::TextureResource&, Size, const void* data, gfx::TexturePixelType, gfx::TextureChannelDataType) override; - - void updateTextureResourceSub(gfx::TextureResource&, - uint16_t xOffset, - uint16_t yOffset, - Size, - const void* data, - gfx::TexturePixelType, - gfx::TextureChannelDataType) override; - private: gl::CommandEncoder& commandEncoder; const gfx::DebugGroup debugGroup; diff --git a/src/mbgl/mtl/context.cpp b/src/mbgl/mtl/context.cpp index b0ccfb116..c2cb732bf 100644 --- a/src/mbgl/mtl/context.cpp +++ b/src/mbgl/mtl/context.cpp @@ -13,12 +13,12 @@ #include #include #include -#include #include #include #include #include #include +#include #include #include #include @@ -456,13 +456,6 @@ std::unique_ptr Context::createOffscreenTexture(Size size return createOffscreenTexture(size, type, false, false); } -std::unique_ptr Context::createTextureResource(Size, - gfx::TexturePixelType, - gfx::TextureChannelDataType) { - assert(false); - return nullptr; -} - std::unique_ptr Context::createRenderbufferResource(gfx::RenderbufferPixelType, Size) { return std::make_unique(); } diff --git a/src/mbgl/mtl/drawable.cpp b/src/mbgl/mtl/drawable.cpp index 84c760373..a4d2f8fc4 100644 --- a/src/mbgl/mtl/drawable.cpp +++ b/src/mbgl/mtl/drawable.cpp @@ -14,7 +14,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/mbgl/mtl/drawable_impl.hpp b/src/mbgl/mtl/drawable_impl.hpp index 1938050e7..e1dace21b 100644 --- a/src/mbgl/mtl/drawable_impl.hpp +++ b/src/mbgl/mtl/drawable_impl.hpp @@ -3,7 +3,6 @@ #include #include #include -#include #include #include #include @@ -12,7 +11,7 @@ #include #include #include -#include +#include #include #include diff --git a/src/mbgl/mtl/upload_pass.cpp b/src/mbgl/mtl/upload_pass.cpp index fefbc4163..5a39ae33f 100644 --- a/src/mbgl/mtl/upload_pass.cpp +++ b/src/mbgl/mtl/upload_pass.cpp @@ -81,31 +81,6 @@ void UploadPass::updateIndexBufferResource(gfx::IndexBufferResource& resource, c static_cast(resource).get().update(data, size, /*offset=*/0); } -std::unique_ptr UploadPass::createTextureResource(const Size, - const void*, - gfx::TexturePixelType, - gfx::TextureChannelDataType) { - assert(false); - throw std::runtime_error("UploadPass::createTextureResource not implemented on Metal!"); -} - -void UploadPass::updateTextureResource( - gfx::TextureResource&, const Size, const void*, gfx::TexturePixelType, gfx::TextureChannelDataType) { - assert(false); - throw std::runtime_error("UploadPass::updateTextureResource not implemented on Metal!"); -} - -void UploadPass::updateTextureResourceSub(gfx::TextureResource&, - const uint16_t, - const uint16_t, - const Size, - const void*, - gfx::TexturePixelType, - gfx::TextureChannelDataType) { - assert(false); - throw std::runtime_error("UploadPass::updateTextureResourceSub not implemented on Metal!"); -} - struct VertexBuffer : public gfx::VertexBufferBase { ~VertexBuffer() override = default; diff --git a/src/mbgl/programs/clipping_mask_program.cpp b/src/mbgl/programs/clipping_mask_program.cpp deleted file mode 100644 index 0e4338063..000000000 --- a/src/mbgl/programs/clipping_mask_program.cpp +++ /dev/null @@ -1,3 +0,0 @@ -#include - -namespace mbgl {} // namespace mbgl diff --git a/src/mbgl/programs/textures.hpp b/src/mbgl/programs/textures.hpp deleted file mode 100644 index b525b0d44..000000000 --- a/src/mbgl/programs/textures.hpp +++ /dev/null @@ -1,17 +0,0 @@ -#pragma once - -#include - -namespace mbgl { -namespace textures { - -MBGL_DEFINE_TEXTURE(image); -MBGL_DEFINE_TEXTURE(image0); -MBGL_DEFINE_TEXTURE(image1); -MBGL_DEFINE_TEXTURE(color_ramp); -MBGL_DEFINE_TEXTURE(texture); -MBGL_DEFINE_TEXTURE(texture_icon); -MBGL_DEFINE_TEXTURE(overlay); - -} // namespace textures -} // namespace mbgl diff --git a/src/mbgl/renderer/buckets/circle_bucket.hpp b/src/mbgl/renderer/buckets/circle_bucket.hpp index 4c351a102..ca83cf699 100644 --- a/src/mbgl/renderer/buckets/circle_bucket.hpp +++ b/src/mbgl/renderer/buckets/circle_bucket.hpp @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include namespace mbgl { diff --git a/src/mbgl/renderer/buckets/debug_bucket.hpp b/src/mbgl/renderer/buckets/debug_bucket.hpp index c9a4e0305..908b69bb5 100644 --- a/src/mbgl/renderer/buckets/debug_bucket.hpp +++ b/src/mbgl/renderer/buckets/debug_bucket.hpp @@ -6,8 +6,7 @@ #include #include #include -#include -#include +#include #include namespace mbgl { @@ -40,7 +39,6 @@ public: SegmentVector tileBorderSegments; std::optional> vertexBuffer; std::optional indexBuffer; - std::optional texture; }; } // namespace mbgl diff --git a/src/mbgl/renderer/buckets/fill_bucket.hpp b/src/mbgl/renderer/buckets/fill_bucket.hpp index f2ea405a5..2477eb046 100644 --- a/src/mbgl/renderer/buckets/fill_bucket.hpp +++ b/src/mbgl/renderer/buckets/fill_bucket.hpp @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include /** diff --git a/src/mbgl/renderer/buckets/fill_extrusion_bucket.hpp b/src/mbgl/renderer/buckets/fill_extrusion_bucket.hpp index 0c7ee70ea..f6c3c7b19 100644 --- a/src/mbgl/renderer/buckets/fill_extrusion_bucket.hpp +++ b/src/mbgl/renderer/buckets/fill_extrusion_bucket.hpp @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include namespace mbgl { diff --git a/src/mbgl/renderer/buckets/heatmap_bucket.hpp b/src/mbgl/renderer/buckets/heatmap_bucket.hpp index a3ad9fe86..2dbf03869 100644 --- a/src/mbgl/renderer/buckets/heatmap_bucket.hpp +++ b/src/mbgl/renderer/buckets/heatmap_bucket.hpp @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include namespace mbgl { diff --git a/src/mbgl/renderer/buckets/hillshade_bucket.hpp b/src/mbgl/renderer/buckets/hillshade_bucket.hpp index a6413becc..9f3296ca9 100644 --- a/src/mbgl/renderer/buckets/hillshade_bucket.hpp +++ b/src/mbgl/renderer/buckets/hillshade_bucket.hpp @@ -2,10 +2,9 @@ #include #include -#include #include #include -#include +#include #include #include #include @@ -31,9 +30,6 @@ public: void clear(); void setMask(TileMask&&); - std::optional dem; - std::optional texture; - RenderTargetPtr renderTarget; bool renderTargetPrepared = false; diff --git a/src/mbgl/renderer/buckets/line_bucket.hpp b/src/mbgl/renderer/buckets/line_bucket.hpp index b72dbfa93..4c9ed848a 100644 --- a/src/mbgl/renderer/buckets/line_bucket.hpp +++ b/src/mbgl/renderer/buckets/line_bucket.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include #include diff --git a/src/mbgl/renderer/buckets/raster_bucket.cpp b/src/mbgl/renderer/buckets/raster_bucket.cpp index d139c98cc..05ea0b145 100644 --- a/src/mbgl/renderer/buckets/raster_bucket.cpp +++ b/src/mbgl/renderer/buckets/raster_bucket.cpp @@ -36,7 +36,6 @@ void RasterBucket::clear() { void RasterBucket::setImage(std::shared_ptr image_) { image = std::move(image_); - texture = {}; texture2d.reset(); uploaded = false; } diff --git a/src/mbgl/renderer/buckets/raster_bucket.hpp b/src/mbgl/renderer/buckets/raster_bucket.hpp index 8e14507e3..bc02bf844 100644 --- a/src/mbgl/renderer/buckets/raster_bucket.hpp +++ b/src/mbgl/renderer/buckets/raster_bucket.hpp @@ -1,9 +1,8 @@ #pragma once #include -#include #include -#include +#include #include #include #include @@ -42,7 +41,6 @@ public: } std::shared_ptr image; - std::optional texture; gfx::Texture2DPtr texture2d; TileMask mask{{0, 0, 0}}; diff --git a/src/mbgl/renderer/buckets/symbol_bucket.hpp b/src/mbgl/renderer/buckets/symbol_bucket.hpp index 88a0a73ea..530a9a467 100644 --- a/src/mbgl/renderer/buckets/symbol_bucket.hpp +++ b/src/mbgl/renderer/buckets/symbol_bucket.hpp @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #include #include @@ -49,23 +49,12 @@ class SymbolSizeBinder { public: virtual ~SymbolSizeBinder() = default; - // using UniformList = TypeList; using UniformValues = gfx::UniformValues; - static std::unique_ptr create(float tileZoom, const style::PropertyValue& sizeProperty, float defaultValue); virtual Range getVertexSizeData(const GeometryTileFeature& feature) = 0; virtual ZoomEvaluatedSize evaluateForZoom(float currentZoom) const = 0; - - /*UniformValues uniformValues(float currentZoom) const { - const ZoomEvaluatedSize u = evaluateForZoom(currentZoom); - return UniformValues{uniforms::is_size_zoom_constant::Value(u.isZoomConstant), - uniforms::is_size_feature_constant::Value(u.isFeatureConstant), - uniforms::size_t::Value(u.sizeT), - uniforms::size::Value(u.size)}; - }*/ }; class ConstantSymbolSizeBinder final : public SymbolSizeBinder { diff --git a/src/mbgl/renderer/layers/render_background_layer.cpp b/src/mbgl/renderer/layers/render_background_layer.cpp index 3a0b64000..bc61344b4 100644 --- a/src/mbgl/renderer/layers/render_background_layer.cpp +++ b/src/mbgl/renderer/layers/render_background_layer.cpp @@ -2,7 +2,6 @@ #include #include #include -#include #include #include #include diff --git a/src/mbgl/renderer/layers/render_background_layer.hpp b/src/mbgl/renderer/layers/render_background_layer.hpp index f3e7bd2bc..89cf6a88c 100644 --- a/src/mbgl/renderer/layers/render_background_layer.hpp +++ b/src/mbgl/renderer/layers/render_background_layer.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include #include #include diff --git a/src/mbgl/renderer/layers/render_circle_layer.cpp b/src/mbgl/renderer/layers/render_circle_layer.cpp index 4dfd429b7..90b21c12f 100644 --- a/src/mbgl/renderer/layers/render_circle_layer.cpp +++ b/src/mbgl/renderer/layers/render_circle_layer.cpp @@ -4,7 +4,6 @@ #include #include #include -#include #include #include #include diff --git a/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp b/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp index 1c2709301..c09779a96 100644 --- a/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp +++ b/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp @@ -5,7 +5,6 @@ #include #include #include -#include #include #include #include diff --git a/src/mbgl/renderer/layers/render_fill_layer.cpp b/src/mbgl/renderer/layers/render_fill_layer.cpp index 26028b31e..c70190698 100644 --- a/src/mbgl/renderer/layers/render_fill_layer.cpp +++ b/src/mbgl/renderer/layers/render_fill_layer.cpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/mbgl/renderer/layers/render_heatmap_layer.cpp b/src/mbgl/renderer/layers/render_heatmap_layer.cpp index f05c3e985..5f4416415 100644 --- a/src/mbgl/renderer/layers/render_heatmap_layer.cpp +++ b/src/mbgl/renderer/layers/render_heatmap_layer.cpp @@ -3,7 +3,6 @@ #include #include #include -#include #include #include #include @@ -93,9 +92,7 @@ void RenderHeatmapLayer::updateColorRamp() { colorValue = HeatmapLayer::getDefaultHeatmapColor(); } - if (applyColorRamp(colorValue, *colorRamp)) { - colorRampTexture = std::nullopt; - } + applyColorRamp(colorValue, *colorRamp); } } diff --git a/src/mbgl/renderer/layers/render_heatmap_layer.hpp b/src/mbgl/renderer/layers/render_heatmap_layer.hpp index 640ab02bb..c5fd6eac7 100644 --- a/src/mbgl/renderer/layers/render_heatmap_layer.hpp +++ b/src/mbgl/renderer/layers/render_heatmap_layer.hpp @@ -1,7 +1,6 @@ #pragma once #include -#include #include #include #include @@ -61,7 +60,6 @@ private: style::HeatmapPaintProperties::Unevaluated unevaluated; std::shared_ptr colorRamp; std::unique_ptr renderTexture; - std::optional colorRampTexture; SegmentVector segments; gfx::ShaderGroupPtr heatmapShaderGroup; diff --git a/src/mbgl/renderer/layers/render_hillshade_layer.cpp b/src/mbgl/renderer/layers/render_hillshade_layer.cpp index 6bc7abe97..872f78563 100644 --- a/src/mbgl/renderer/layers/render_hillshade_layer.cpp +++ b/src/mbgl/renderer/layers/render_hillshade_layer.cpp @@ -4,7 +4,6 @@ #include #include #include -#include #include #include #include diff --git a/src/mbgl/renderer/layers/render_line_layer.cpp b/src/mbgl/renderer/layers/render_line_layer.cpp index 454026466..12fbbca99 100644 --- a/src/mbgl/renderer/layers/render_line_layer.cpp +++ b/src/mbgl/renderer/layers/render_line_layer.cpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include #include #include @@ -188,8 +188,6 @@ void RenderLineLayer::updateColorRamp() { return; } - colorRampTexture = std::nullopt; - if (colorRampTexture2D) { colorRampTexture2D.reset(); diff --git a/src/mbgl/renderer/layers/render_line_layer.hpp b/src/mbgl/renderer/layers/render_line_layer.hpp index 1e6dc8dae..a994c28dd 100644 --- a/src/mbgl/renderer/layers/render_line_layer.hpp +++ b/src/mbgl/renderer/layers/render_line_layer.hpp @@ -3,10 +3,9 @@ #include #include #include -#include +#include #include #include -#include #include #include @@ -58,8 +57,6 @@ private: void updateColorRamp(); std::shared_ptr colorRamp; - std::optional colorRampTexture; - gfx::Texture2DPtr colorRampTexture2D; gfx::ShaderGroupPtr lineShaderGroup; diff --git a/src/mbgl/renderer/layers/render_location_indicator_layer.cpp b/src/mbgl/renderer/layers/render_location_indicator_layer.cpp index 6462e328e..2bd1a3ba4 100644 --- a/src/mbgl/renderer/layers/render_location_indicator_layer.cpp +++ b/src/mbgl/renderer/layers/render_location_indicator_layer.cpp @@ -36,8 +36,7 @@ #include #include #include -#include -#include +#include #include #endif diff --git a/src/mbgl/renderer/layers/render_raster_layer.cpp b/src/mbgl/renderer/layers/render_raster_layer.cpp index 6846f31c4..35f9c9b8b 100644 --- a/src/mbgl/renderer/layers/render_raster_layer.cpp +++ b/src/mbgl/renderer/layers/render_raster_layer.cpp @@ -4,7 +4,6 @@ #include #include #include -#include #include #include #include diff --git a/src/mbgl/renderer/layers/render_symbol_layer.cpp b/src/mbgl/renderer/layers/render_symbol_layer.cpp index a6abe183b..965b852b5 100644 --- a/src/mbgl/renderer/layers/render_symbol_layer.cpp +++ b/src/mbgl/renderer/layers/render_symbol_layer.cpp @@ -1,8 +1,8 @@ #include #include +#include #include -#include #include #include #include diff --git a/src/mbgl/renderer/paint_parameters.cpp b/src/mbgl/renderer/paint_parameters.cpp index 460e5d227..5e72b914f 100644 --- a/src/mbgl/renderer/paint_parameters.cpp +++ b/src/mbgl/renderer/paint_parameters.cpp @@ -11,6 +11,10 @@ #include #include +#if MLN_RENDER_BACKEND_OPENGL +#include +#endif + #if MLN_RENDER_BACKEND_METAL #include #include @@ -65,11 +69,6 @@ PaintParameters::PaintParameters(gfx::Context& context_, debugOptions(debugOptions_), timePoint(timePoint_), pixelRatio(pixelRatio_), -#ifndef NDEBUG - programs((debugOptions & MapDebugOptions::Overdraw) ? staticData_.overdrawPrograms : staticData_.programs), -#else - programs(staticData_.programs), -#endif shaders(*staticData_.shaders), frameCount(frameCount_) { pixelsToGLUnits = {{2.0f / state.getSize().width, -2.0f / state.getSize().height}}; @@ -242,7 +241,7 @@ void PaintParameters::renderTileClippingMasks(const RenderTiles& renderTiles) { vulkanContext.renderingStats().stencilUpdates++; } -#else // !MLN_RENDER_BACKEND_METAL +#else // MLN_RENDER_BACKEND_OPENGL auto program = staticData.shaders->getLegacyGroup().get(); if (!program) { @@ -290,10 +289,9 @@ void PaintParameters::renderTileClippingMasks(const RenderTiles& renderTiles) { static_cast(state.getZoom())), ClippingMaskProgram::computeAllAttributeBindings( *staticData.tileVertexBuffer, paintAttributeData, properties), - ClippingMaskProgram::TextureBindings{}, "clipping/" + util::toString(stencilID)); } -#endif // MLN_RENDER_BACKEND_METAL +#endif // MLN_RENDER_BACKEND_OPENGL } gfx::StencilMode PaintParameters::stencilModeForClipping(const UnwrappedTileID& tileID) const { diff --git a/src/mbgl/renderer/paint_parameters.hpp b/src/mbgl/renderer/paint_parameters.hpp index 6bb5a13fc..545bdaf0b 100644 --- a/src/mbgl/renderer/paint_parameters.hpp +++ b/src/mbgl/renderer/paint_parameters.hpp @@ -21,7 +21,6 @@ namespace mbgl { class UpdateParameters; class RenderStaticData; -class Programs; class TransformState; class ImageManager; class LineAtlas; @@ -82,9 +81,6 @@ public: float pixelRatio; std::array pixelsToGLUnits; - // Programs is, in effect, an immutable shader registry - Programs& programs; - // We're migrating to a dynamic one gfx::ShaderRegistry& shaders; gfx::DepthMode depthModeForSublayer(uint8_t n, gfx::DepthMaskType) const; diff --git a/src/mbgl/renderer/paint_property_binder.hpp b/src/mbgl/renderer/paint_property_binder.hpp index 55b1f5ed1..8fcb4c018 100644 --- a/src/mbgl/renderer/paint_property_binder.hpp +++ b/src/mbgl/renderer/paint_property_binder.hpp @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/mbgl/renderer/pattern_atlas.hpp b/src/mbgl/renderer/pattern_atlas.hpp index 240c07f32..486b2cd73 100644 --- a/src/mbgl/renderer/pattern_atlas.hpp +++ b/src/mbgl/renderer/pattern_atlas.hpp @@ -1,7 +1,6 @@ #pragma once #include -#include #include #include diff --git a/src/mbgl/renderer/render_static_data.cpp b/src/mbgl/renderer/render_static_data.cpp index 56f5fdb65..f94328c35 100644 --- a/src/mbgl/renderer/render_static_data.cpp +++ b/src/mbgl/renderer/render_static_data.cpp @@ -1,7 +1,7 @@ #include #include #include -#include +#include namespace mbgl { @@ -49,16 +49,9 @@ gfx::VertexVector RenderStaticData::heatmapTextureVe return result; } -RenderStaticData::RenderStaticData(float pixelRatio, std::unique_ptr&& shaders_) - : programs(ProgramParameters{pixelRatio, false}), - shaders(std::move(shaders_)), - clippingMaskSegments(tileTriangleSegments()) -#ifndef NDEBUG - , - overdrawPrograms(ProgramParameters{pixelRatio, true}) -#endif -{ -} +RenderStaticData::RenderStaticData(std::unique_ptr&& shaders_) + : shaders(std::move(shaders_)), + clippingMaskSegments(tileTriangleSegments()) {} SegmentVector RenderStaticData::tileTriangleSegments() { SegmentVector segments; diff --git a/src/mbgl/renderer/render_static_data.hpp b/src/mbgl/renderer/render_static_data.hpp index bbbf6c88b..a35bd6f98 100644 --- a/src/mbgl/renderer/render_static_data.hpp +++ b/src/mbgl/renderer/render_static_data.hpp @@ -4,7 +4,6 @@ #include #include #include -#include #include #include @@ -19,7 +18,7 @@ class UploadPass; class RenderStaticData { public: - RenderStaticData(float pixelRatio, std::unique_ptr&& shaders_); + RenderStaticData(std::unique_ptr&& shaders_); void upload(gfx::UploadPass&); @@ -46,16 +45,9 @@ public: bool uploaded = false; Size backendSize; - // @TODO: Migrate away from and remove `Programs` - Programs programs; - std::unique_ptr shaders; const SegmentVector clippingMaskSegments; - -#ifndef NDEBUG - Programs overdrawPrograms; -#endif }; } // namespace mbgl diff --git a/src/mbgl/renderer/render_tile.cpp b/src/mbgl/renderer/render_tile.cpp index fc842ef87..6f0dfd817 100644 --- a/src/mbgl/renderer/render_tile.cpp +++ b/src/mbgl/renderer/render_tile.cpp @@ -2,7 +2,6 @@ #include #include -#include #include #include #include diff --git a/src/mbgl/renderer/render_tile.hpp b/src/mbgl/renderer/render_tile.hpp index 5fd313576..bfd106f4d 100644 --- a/src/mbgl/renderer/render_tile.hpp +++ b/src/mbgl/renderer/render_tile.hpp @@ -1,7 +1,6 @@ #pragma once #include -#include #include #include #include diff --git a/src/mbgl/renderer/renderer_impl.cpp b/src/mbgl/renderer/renderer_impl.cpp index 3186e5017..b44d69b1a 100644 --- a/src/mbgl/renderer/renderer_impl.cpp +++ b/src/mbgl/renderer/renderer_impl.cpp @@ -8,12 +8,12 @@ #include #include #include -#include #include #include #include #include #include +#include #include #include #include @@ -158,10 +158,7 @@ void Renderer::Impl::render(const RenderTree& renderTree, context.beginFrame(); if (!staticData) { - staticData = std::make_unique(pixelRatio, std::make_unique()); - - // Initialize legacy shader programs - staticData->programs.registerWith(*staticData->shaders); + staticData = std::make_unique(std::make_unique()); // Initialize shaders for drawables const auto programParameters = ProgramParameters{pixelRatio, false}; diff --git a/src/mbgl/renderer/sources/render_image_source.cpp b/src/mbgl/renderer/sources/render_image_source.cpp index b8d46892d..d0bdb3d87 100644 --- a/src/mbgl/renderer/sources/render_image_source.cpp +++ b/src/mbgl/renderer/sources/render_image_source.cpp @@ -6,7 +6,6 @@ #include #include #include -#include #include #include #include diff --git a/src/mbgl/renderer/sources/render_image_source.hpp b/src/mbgl/renderer/sources/render_image_source.hpp index f54271103..9f9f6898b 100644 --- a/src/mbgl/renderer/sources/render_image_source.hpp +++ b/src/mbgl/renderer/sources/render_image_source.hpp @@ -26,7 +26,6 @@ private: const std::string& getName() const override { return name; } std::string name; void updateDebugDrawables(DebugLayerGroupMap&, PaintParameters&) const override {}; - mutable std::optional debugTexture; }; class RenderImageSource final : public RenderSource { diff --git a/src/mbgl/renderer/tile_render_data.hpp b/src/mbgl/renderer/tile_render_data.hpp index cd5cae4ec..4f65567e5 100644 --- a/src/mbgl/renderer/tile_render_data.hpp +++ b/src/mbgl/renderer/tile_render_data.hpp @@ -1,6 +1,5 @@ #pragma once -#include #include #include diff --git a/src/mbgl/programs/attributes.hpp b/src/mbgl/shaders/attributes.hpp similarity index 100% rename from src/mbgl/programs/attributes.hpp rename to src/mbgl/shaders/attributes.hpp diff --git a/src/mbgl/programs/clipping_mask_program.hpp b/src/mbgl/shaders/gl/legacy/clipping_mask_program.hpp similarity index 83% rename from src/mbgl/programs/clipping_mask_program.hpp rename to src/mbgl/shaders/gl/legacy/clipping_mask_program.hpp index 210fb94ef..ac4efc6b6 100644 --- a/src/mbgl/programs/clipping_mask_program.hpp +++ b/src/mbgl/shaders/gl/legacy/clipping_mask_program.hpp @@ -1,8 +1,8 @@ #pragma once -#include -#include -#include +#include +#include +#include #include namespace mbgl { @@ -12,7 +12,6 @@ class ClippingMaskProgram final : public Program, - TypeList<>, style::Properties<>> { public: static constexpr std::string_view Name{"ClippingMaskProgram"}; diff --git a/src/mbgl/programs/program.hpp b/src/mbgl/shaders/gl/legacy/program.hpp similarity index 82% rename from src/mbgl/programs/program.hpp rename to src/mbgl/shaders/gl/legacy/program.hpp index 59772f3fe..eba7a62c4 100644 --- a/src/mbgl/programs/program.hpp +++ b/src/mbgl/shaders/gl/legacy/program.hpp @@ -1,23 +1,20 @@ #pragma once +#include #include #include #include #include -#include -#include -#include +#include +#include +#include +#include #include #include #include #include -#include -#if MLN_RENDER_BACKEND_OPENGL -#include -#endif - namespace mbgl { namespace gfx { @@ -29,7 +26,6 @@ template class Program : public gfx::Shader { public: @@ -47,10 +43,7 @@ public: using LayoutUniformValues = gfx::UniformValues; using UniformValues = gfx::UniformValues; - using TextureList = Textures; - using TextureBindings = gfx::TextureBindings; - - std::unique_ptr> program; + std::unique_ptr> programBase; Program([[maybe_unused]] const ProgramParameters& programParameters) { switch (gfx::Backend::GetType()) { @@ -64,7 +57,7 @@ public: } #else // MLN_RENDER_BACKEND_OPENGL case gfx::Backend::Type::OpenGL: { - program = std::make_unique>(programParameters.withDefaultSource( + programBase = std::make_unique>(programParameters.withDefaultSource( {gfx::Backend::Type::OpenGL, shaders::ShaderSource::vertex, shaders::ShaderSource::fragment})); @@ -108,11 +101,10 @@ public: const SegmentBase& segment, const UniformValues& uniformValues, const AttributeBindings& allAttributeBindings, - const TextureBindings& textureBindings, const std::string& layerID) { static_assert(Primitive == gfx::PrimitiveTypeOf::value, "incompatible draw mode"); - if (!program) { + if (!programBase) { return; } @@ -121,20 +113,19 @@ public: drawScopeIt = segment.drawScopes.emplace(layerID, context.createDrawScope()).first; } - program->draw(context, - renderPass, - drawMode, - depthMode, - stencilMode, - colorMode, - cullFaceMode, - uniformValues, - drawScopeIt->second, - allAttributeBindings.offset(segment.vertexOffset), - textureBindings, - indexBuffer, - segment.indexOffset, - segment.indexLength); + programBase->draw(context, + renderPass, + drawMode, + depthMode, + stencilMode, + colorMode, + cullFaceMode, + uniformValues, + drawScopeIt->second, + allAttributeBindings.offset(segment.vertexOffset), + indexBuffer, + segment.indexOffset, + segment.indexLength); } template @@ -149,11 +140,10 @@ public: const SegmentVector& segments, const UniformValues& uniformValues, const AttributeBindings& allAttributeBindings, - const TextureBindings& textureBindings, const std::string& layerID) { static_assert(Primitive == gfx::PrimitiveTypeOf::value, "incompatible draw mode"); - if (!program) { + if (!programBase) { return; } @@ -164,20 +154,19 @@ public: drawScopeIt = segment.drawScopes.emplace(layerID, context.createDrawScope()).first; } - program->draw(context, - renderPass, - drawMode, - depthMode, - stencilMode, - colorMode, - cullFaceMode, - uniformValues, - drawScopeIt->second, - allAttributeBindings.offset(segment.vertexOffset), - textureBindings, - indexBuffer, - segment.indexOffset, - segment.indexLength); + programBase->draw(context, + renderPass, + drawMode, + depthMode, + stencilMode, + colorMode, + cullFaceMode, + uniformValues, + drawScopeIt->second, + allAttributeBindings.offset(segment.vertexOffset), + indexBuffer, + segment.indexOffset, + segment.indexLength); } } }; diff --git a/src/mbgl/gl/program.hpp b/src/mbgl/shaders/gl/legacy/program_base.hpp similarity index 88% rename from src/mbgl/gl/program.hpp rename to src/mbgl/shaders/gl/legacy/program_base.hpp index 22d97a062..bda40764f 100644 --- a/src/mbgl/gl/program.hpp +++ b/src/mbgl/shaders/gl/legacy/program_base.hpp @@ -1,22 +1,19 @@ #pragma once -#include +#include +#include +#include #include #include #include #include -#include -#include -#include #include #include #include -#include -#include - -#include -#include +#include #include +#include +#include #include @@ -24,15 +21,19 @@ namespace mbgl { namespace gl { template -class Program final : public gfx::Program { +class ProgramBase { public: using AttributeList = typename Name::AttributeList; using UniformList = typename Name::UniformList; - using TextureList = typename Name::TextureList; - Program(ProgramParameters programParameters_) + ProgramBase(ProgramParameters programParameters_) : programParameters(std::move(programParameters_)) {} + ProgramBase(ProgramBase&&) = delete; + ProgramBase(const ProgramBase&) = delete; + ProgramBase& operator=(ProgramBase&&) = delete; + ProgramBase& operator=(const ProgramBase&) = delete; + const ProgramParameters programParameters; class Instance { @@ -45,8 +46,6 @@ public: attributeLocations.getFirstAttribName())) { attributeLocations.queryLocations(program); uniformStates.queryLocations(program); - // Texture units are specified via uniforms as well, so we need query their locations - textureStates.queryLocations(program); } static std::unique_ptr createInstance(gl::Context& context, @@ -79,7 +78,6 @@ public: UniqueProgram program; gl::AttributeLocations attributeLocations; gl::UniformStates uniformStates; - gl::TextureStates textureStates; }; void draw(gfx::Context& genericContext, @@ -92,10 +90,9 @@ public: const gfx::UniformValues& uniformValues, gfx::DrawScope& drawScope, const gfx::AttributeBindings& attributeBindings, - const gfx::TextureBindings& textureBindings, const gfx::IndexBuffer& indexBuffer, std::size_t indexOffset, - std::size_t indexLength) override { + std::size_t indexLength) { auto& context = static_cast(genericContext); context.setDepthMode(depthMode); @@ -124,8 +121,6 @@ public: instance.uniformStates.bind(uniformValues); - instance.textureStates.bind(context, textureBindings); - auto& vertexArray = drawScope.getResource().vertexArray; vertexArray.bind(context, indexBuffer, instance.attributeLocations.toBindingArray(attributeBindings)); diff --git a/src/mbgl/programs/programs.cpp b/src/mbgl/shaders/gl/legacy/programs.cpp similarity index 93% rename from src/mbgl/programs/programs.cpp rename to src/mbgl/shaders/gl/legacy/programs.cpp index 2f7591b8a..118b829e9 100644 --- a/src/mbgl/programs/programs.cpp +++ b/src/mbgl/shaders/gl/legacy/programs.cpp @@ -1,4 +1,5 @@ -#include +#include +#include #include #include diff --git a/src/mbgl/programs/programs.hpp b/src/mbgl/shaders/gl/legacy/programs.hpp similarity index 82% rename from src/mbgl/programs/programs.hpp rename to src/mbgl/shaders/gl/legacy/programs.hpp index 136209e25..ddb7cd8ce 100644 --- a/src/mbgl/programs/programs.hpp +++ b/src/mbgl/shaders/gl/legacy/programs.hpp @@ -1,7 +1,6 @@ #pragma once -#include -#include +#include #include #include diff --git a/src/mbgl/shaders/gl/shader_program_gl.cpp b/src/mbgl/shaders/gl/shader_program_gl.cpp index a5b3a668c..b8ac76cbc 100644 --- a/src/mbgl/shaders/gl/shader_program_gl.cpp +++ b/src/mbgl/shaders/gl/shader_program_gl.cpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include #include diff --git a/src/mbgl/shaders/mtl/shader_program.cpp b/src/mbgl/shaders/mtl/shader_program.cpp index 1f525d892..c75fe60ed 100644 --- a/src/mbgl/shaders/mtl/shader_program.cpp +++ b/src/mbgl/shaders/mtl/shader_program.cpp @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include #include diff --git a/src/mbgl/programs/program_parameters.cpp b/src/mbgl/shaders/program_parameters.cpp similarity index 98% rename from src/mbgl/programs/program_parameters.cpp rename to src/mbgl/shaders/program_parameters.cpp index d5ce6182e..2a40a51b1 100644 --- a/src/mbgl/programs/program_parameters.cpp +++ b/src/mbgl/shaders/program_parameters.cpp @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/src/mbgl/programs/segment.hpp b/src/mbgl/shaders/segment.hpp similarity index 100% rename from src/mbgl/programs/segment.hpp rename to src/mbgl/shaders/segment.hpp diff --git a/src/mbgl/programs/uniforms.hpp b/src/mbgl/shaders/uniforms.hpp similarity index 100% rename from src/mbgl/programs/uniforms.hpp rename to src/mbgl/shaders/uniforms.hpp diff --git a/src/mbgl/shaders/vulkan/shader_program.cpp b/src/mbgl/shaders/vulkan/shader_program.cpp index a0b29b5eb..b4d000bba 100644 --- a/src/mbgl/shaders/vulkan/shader_program.cpp +++ b/src/mbgl/shaders/vulkan/shader_program.cpp @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/mbgl/style/layers/background_layer_properties.hpp b/src/mbgl/style/layers/background_layer_properties.hpp index 63ce00bfa..7f4c150ce 100644 --- a/src/mbgl/style/layers/background_layer_properties.hpp +++ b/src/mbgl/style/layers/background_layer_properties.hpp @@ -10,8 +10,8 @@ #include #include #include -#include -#include +#include +#include namespace mbgl { namespace style { diff --git a/src/mbgl/style/layers/circle_layer_properties.hpp b/src/mbgl/style/layers/circle_layer_properties.hpp index 37e6007b0..b64c091e8 100644 --- a/src/mbgl/style/layers/circle_layer_properties.hpp +++ b/src/mbgl/style/layers/circle_layer_properties.hpp @@ -10,8 +10,8 @@ #include #include #include -#include -#include +#include +#include namespace mbgl { namespace style { diff --git a/src/mbgl/style/layers/fill_extrusion_layer_properties.hpp b/src/mbgl/style/layers/fill_extrusion_layer_properties.hpp index c7c466661..2808b95fd 100644 --- a/src/mbgl/style/layers/fill_extrusion_layer_properties.hpp +++ b/src/mbgl/style/layers/fill_extrusion_layer_properties.hpp @@ -10,8 +10,8 @@ #include #include #include -#include -#include +#include +#include namespace mbgl { namespace style { diff --git a/src/mbgl/style/layers/fill_layer_properties.hpp b/src/mbgl/style/layers/fill_layer_properties.hpp index 7073d909a..ee72d09fb 100644 --- a/src/mbgl/style/layers/fill_layer_properties.hpp +++ b/src/mbgl/style/layers/fill_layer_properties.hpp @@ -10,8 +10,8 @@ #include #include #include -#include -#include +#include +#include namespace mbgl { namespace style { diff --git a/src/mbgl/style/layers/heatmap_layer_properties.hpp b/src/mbgl/style/layers/heatmap_layer_properties.hpp index 5997f5b7c..ae0b352af 100644 --- a/src/mbgl/style/layers/heatmap_layer_properties.hpp +++ b/src/mbgl/style/layers/heatmap_layer_properties.hpp @@ -10,8 +10,8 @@ #include #include #include -#include -#include +#include +#include namespace mbgl { namespace style { diff --git a/src/mbgl/style/layers/hillshade_layer_properties.hpp b/src/mbgl/style/layers/hillshade_layer_properties.hpp index cf073f1ce..a87526548 100644 --- a/src/mbgl/style/layers/hillshade_layer_properties.hpp +++ b/src/mbgl/style/layers/hillshade_layer_properties.hpp @@ -10,8 +10,8 @@ #include #include #include -#include -#include +#include +#include namespace mbgl { namespace style { diff --git a/src/mbgl/style/layers/layer_properties.hpp.ejs b/src/mbgl/style/layers/layer_properties.hpp.ejs index c81bf6133..713a9ec3b 100644 --- a/src/mbgl/style/layers/layer_properties.hpp.ejs +++ b/src/mbgl/style/layers/layer_properties.hpp.ejs @@ -15,8 +15,8 @@ #include #include #include -#include -#include +#include +#include namespace mbgl { namespace style { diff --git a/src/mbgl/style/layers/line_layer_properties.hpp b/src/mbgl/style/layers/line_layer_properties.hpp index 09615261a..6bc0dad7f 100644 --- a/src/mbgl/style/layers/line_layer_properties.hpp +++ b/src/mbgl/style/layers/line_layer_properties.hpp @@ -10,8 +10,8 @@ #include #include #include -#include -#include +#include +#include namespace mbgl { namespace style { diff --git a/src/mbgl/style/layers/location_indicator_layer_properties.hpp b/src/mbgl/style/layers/location_indicator_layer_properties.hpp index 95ad7b6bd..e41979fef 100644 --- a/src/mbgl/style/layers/location_indicator_layer_properties.hpp +++ b/src/mbgl/style/layers/location_indicator_layer_properties.hpp @@ -10,8 +10,8 @@ #include #include #include -#include -#include +#include +#include namespace mbgl { namespace style { diff --git a/src/mbgl/style/layers/raster_layer_properties.hpp b/src/mbgl/style/layers/raster_layer_properties.hpp index 5da2ce39d..444cc12a8 100644 --- a/src/mbgl/style/layers/raster_layer_properties.hpp +++ b/src/mbgl/style/layers/raster_layer_properties.hpp @@ -10,8 +10,8 @@ #include #include #include -#include -#include +#include +#include namespace mbgl { namespace style { diff --git a/src/mbgl/style/layers/symbol_layer_properties.hpp b/src/mbgl/style/layers/symbol_layer_properties.hpp index b4bd6d254..bb418eea1 100644 --- a/src/mbgl/style/layers/symbol_layer_properties.hpp +++ b/src/mbgl/style/layers/symbol_layer_properties.hpp @@ -10,8 +10,8 @@ #include #include #include -#include -#include +#include +#include namespace mbgl { namespace style { diff --git a/src/mbgl/tile/geometry_tile.hpp b/src/mbgl/tile/geometry_tile.hpp index 138ecc27b..de49123b4 100644 --- a/src/mbgl/tile/geometry_tile.hpp +++ b/src/mbgl/tile/geometry_tile.hpp @@ -3,7 +3,6 @@ #include #include #include -#include #include #include #include diff --git a/src/mbgl/vulkan/context.cpp b/src/mbgl/vulkan/context.cpp index 22ca8ca71..f5a8ba331 100644 --- a/src/mbgl/vulkan/context.cpp +++ b/src/mbgl/vulkan/context.cpp @@ -1,7 +1,6 @@ #include #include -#include #include #include #include @@ -16,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -415,13 +415,6 @@ std::unique_ptr Context::createOffscreenTexture(Size size return createOffscreenTexture(size, type, false, false); } -std::unique_ptr Context::createTextureResource(Size, - gfx::TexturePixelType, - gfx::TextureChannelDataType) { - throw std::runtime_error("Vulkan TextureResource not implemented"); - return nullptr; -} - std::unique_ptr Context::createRenderbufferResource(gfx::RenderbufferPixelType, Size) { return std::make_unique(); } diff --git a/src/mbgl/vulkan/drawable.cpp b/src/mbgl/vulkan/drawable.cpp index 257cea6b6..2fedddc32 100644 --- a/src/mbgl/vulkan/drawable.cpp +++ b/src/mbgl/vulkan/drawable.cpp @@ -14,7 +14,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/mbgl/vulkan/drawable_impl.hpp b/src/mbgl/vulkan/drawable_impl.hpp index b74b5d5f6..1f345dc0c 100644 --- a/src/mbgl/vulkan/drawable_impl.hpp +++ b/src/mbgl/vulkan/drawable_impl.hpp @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include diff --git a/src/mbgl/vulkan/upload_pass.cpp b/src/mbgl/vulkan/upload_pass.cpp index d2f6a3564..448737301 100644 --- a/src/mbgl/vulkan/upload_pass.cpp +++ b/src/mbgl/vulkan/upload_pass.cpp @@ -50,31 +50,6 @@ void UploadPass::updateIndexBufferResource(gfx::IndexBufferResource& resource, c static_cast(resource).get().update(data, size, /*offset=*/0); } -std::unique_ptr UploadPass::createTextureResource(const Size, - const void*, - gfx::TexturePixelType, - gfx::TextureChannelDataType) { - assert(false); - throw std::runtime_error("UploadPass::createTextureResource not implemented on Vulkan!"); -} - -void UploadPass::updateTextureResource( - gfx::TextureResource&, const Size, const void*, gfx::TexturePixelType, gfx::TextureChannelDataType) { - assert(false); - throw std::runtime_error("UploadPass::updateTextureResource not implemented on Vulkan!"); -} - -void UploadPass::updateTextureResourceSub(gfx::TextureResource&, - const uint16_t, - const uint16_t, - const Size, - const void*, - gfx::TexturePixelType, - gfx::TextureChannelDataType) { - assert(false); - throw std::runtime_error("UploadPass::updateTextureResourceSub not implemented on Vulkan!"); -} - struct VertexBuffer : public gfx::VertexBufferBase { ~VertexBuffer() override = default; diff --git a/test/renderer/shader_registry.test.cpp b/test/renderer/shader_registry.test.cpp index e8a308f69..e4dee245a 100644 --- a/test/renderer/shader_registry.test.cpp +++ b/test/renderer/shader_registry.test.cpp @@ -21,7 +21,10 @@ #include #include #include -#include + +#ifdef MLN_RENDER_BACKEND_OPENGL +#include +#endif using namespace mbgl; @@ -206,6 +209,7 @@ TEST(ShaderRegistry, NamedReplace) { ASSERT_NE(progA, progB); } +#ifdef MLN_RENDER_BACKEND_OPENGL // Test replacing an actual program instance with a similar instance TEST(ShaderRegistry, DISABLED_GLSLReplacement_NoOp) { MapInstance::ShaderAndStyleObserver observer; @@ -323,3 +327,4 @@ void main() { auto img = map.frontend.render(map.adapter).image; test::checkImage("test/fixtures/shader_registry/glsl_replace_2", img, 0.005, 0.1); } +#endif // MLN_RENDER_BACKEND_OPENGL