From 2dfd8ba452ce1528965ea6bef3355e0f970142ec Mon Sep 17 00:00:00 2001 From: Karim Naaji Date: Mon, 1 Jun 2020 15:34:22 -0700 Subject: Start adding new attributes and uniforms --- src/mbgl/programs/attributes.hpp | 2 ++ src/mbgl/programs/fill_extrusion_program.cpp | 3 +-- src/mbgl/programs/fill_extrusion_program.hpp | 1 - src/mbgl/programs/fill_program.cpp | 5 ++--- src/mbgl/programs/fill_program.hpp | 3 +-- src/mbgl/programs/line_program.cpp | 2 +- src/mbgl/programs/uniforms.hpp | 4 +++- src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp | 1 - src/mbgl/renderer/layers/render_fill_layer.cpp | 3 +-- 9 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/mbgl/programs/attributes.hpp b/src/mbgl/programs/attributes.hpp index 09d5eca809..adf30255fa 100644 --- a/src/mbgl/programs/attributes.hpp +++ b/src/mbgl/programs/attributes.hpp @@ -53,6 +53,8 @@ MBGL_DEFINE_ATTRIBUTE(float, 1, halo_blur); MBGL_DEFINE_ATTRIBUTE(float, 1, weight); MBGL_DEFINE_ATTRIBUTE(uint16_t, 4, pattern_to); MBGL_DEFINE_ATTRIBUTE(uint16_t, 4, pattern_from); +MBGL_DEFINE_ATTRIBUTE(float, 1, pixel_ratio_to); +MBGL_DEFINE_ATTRIBUTE(float, 1, pixel_ratio_from); } // namespace attributes diff --git a/src/mbgl/programs/fill_extrusion_program.cpp b/src/mbgl/programs/fill_extrusion_program.cpp index 7209072b02..bfb859da84 100644 --- a/src/mbgl/programs/fill_extrusion_program.cpp +++ b/src/mbgl/programs/fill_extrusion_program.cpp @@ -51,7 +51,6 @@ FillExtrusionPatternProgram::layoutUniformValues(mat4 matrix, const TransformState& state, const float opacity, const float heightFactor, - const float pixelRatio, const EvaluatedLight& light, const float verticalGradient) { const auto tileRatio = 1 / tileID.pixelsToTileUnits(1, state.getIntegerZoom()); @@ -62,7 +61,7 @@ FillExtrusionPatternProgram::layoutUniformValues(mat4 matrix, return { uniforms::matrix::Value( matrix ), uniforms::opacity::Value( opacity ), - uniforms::scale::Value( {{pixelRatio, tileRatio, crossfade.fromScale, crossfade.toScale}} ), + uniforms::scale::Value( {{tileRatio, crossfade.fromScale, crossfade.toScale}} ), uniforms::texsize::Value( atlasSize ), uniforms::fade::Value( crossfade.t ), uniforms::pixel_coord_upper::Value( std::array{{ float(pixelX >> 16), float(pixelY >> 16) }} ), diff --git a/src/mbgl/programs/fill_extrusion_program.hpp b/src/mbgl/programs/fill_extrusion_program.hpp index f92bd7c968..4020e5d111 100644 --- a/src/mbgl/programs/fill_extrusion_program.hpp +++ b/src/mbgl/programs/fill_extrusion_program.hpp @@ -108,7 +108,6 @@ public: const TransformState&, float opacity, float heightFactor, - float pixelRatio, const EvaluatedLight&, float verticalGradient); }; diff --git a/src/mbgl/programs/fill_program.cpp b/src/mbgl/programs/fill_program.cpp index f314fcc597..744a1dd80b 100644 --- a/src/mbgl/programs/fill_program.cpp +++ b/src/mbgl/programs/fill_program.cpp @@ -16,8 +16,7 @@ FillPatternProgram::layoutUniformValues(mat4 matrix, Size atlasSize, const CrossfadeParameters& crossfade, const UnwrappedTileID& tileID, - const TransformState& state, - const float pixelRatio) { + const TransformState& state) { const auto tileRatio = 1 / tileID.pixelsToTileUnits(1, state.getIntegerZoom()); int32_t tileSizeAtNearestZoom = util::tileSize * state.zoomScale(state.getIntegerZoom() - tileID.canonical.z); int32_t pixelX = tileSizeAtNearestZoom * (tileID.canonical.x + tileID.wrap * state.zoomScale(tileID.canonical.z)); @@ -27,7 +26,7 @@ FillPatternProgram::layoutUniformValues(mat4 matrix, uniforms::matrix::Value( matrix ), uniforms::world::Value( framebufferSize ), uniforms::texsize::Value( atlasSize ), - uniforms::scale::Value({ {pixelRatio, tileRatio, crossfade.fromScale, crossfade.toScale} } ), + uniforms::scale::Value({ {tileRatio, crossfade.fromScale, crossfade.toScale} } ), uniforms::fade::Value( crossfade.t ), uniforms::pixel_coord_upper::Value( std::array {{ float(pixelX >> 16), float(pixelY >> 16) }}), uniforms::pixel_coord_lower::Value( std::array {{ float(pixelX & 0xFFFF), float(pixelY & 0xFFFF) }} ) diff --git a/src/mbgl/programs/fill_program.hpp b/src/mbgl/programs/fill_program.hpp index da39fe40b7..09ec6c778a 100644 --- a/src/mbgl/programs/fill_program.hpp +++ b/src/mbgl/programs/fill_program.hpp @@ -71,8 +71,7 @@ public: Size atlasSize, const CrossfadeParameters& crossfade, const UnwrappedTileID&, - const TransformState&, - float pixelRatio); + const TransformState&); }; class FillOutlineProgram : public Program< diff --git a/src/mbgl/programs/line_program.cpp b/src/mbgl/programs/line_program.cpp index c808a95c0d..0a4315ccb1 100644 --- a/src/mbgl/programs/line_program.cpp +++ b/src/mbgl/programs/line_program.cpp @@ -103,7 +103,7 @@ LinePatternProgram::LayoutUniformValues LinePatternProgram::layoutUniformValues( state, pixelsToGLUnits, pixelRatio, - uniforms::scale::Value ({ {pixelRatio, tileRatio, crossfade.fromScale, crossfade.toScale} }), + uniforms::scale::Value ({ {tileRatio, crossfade.fromScale, crossfade.toScale} }), uniforms::texsize::Value( atlasSize ), uniforms::fade::Value( crossfade.t ) ); diff --git a/src/mbgl/programs/uniforms.hpp b/src/mbgl/programs/uniforms.hpp index bf928cde5e..bb9b6f45be 100644 --- a/src/mbgl/programs/uniforms.hpp +++ b/src/mbgl/programs/uniforms.hpp @@ -51,7 +51,7 @@ MBGL_DEFINE_UNIFORM_SCALAR(float, extrude_scale); MBGL_DEFINE_UNIFORM_VECTOR(uint16_t, 4, pattern_from); MBGL_DEFINE_UNIFORM_VECTOR(uint16_t, 4, pattern_to); -MBGL_DEFINE_UNIFORM_VECTOR(float, 4, scale); +MBGL_DEFINE_UNIFORM_VECTOR(float, 3, scale); MBGL_DEFINE_UNIFORM_VECTOR(uint16_t, 2, pattern_tl_a); MBGL_DEFINE_UNIFORM_VECTOR(uint16_t, 2, pattern_br_a); MBGL_DEFINE_UNIFORM_VECTOR(uint16_t, 2, pattern_tl_b); @@ -66,6 +66,8 @@ MBGL_DEFINE_UNIFORM_SCALAR(float, scale_a); MBGL_DEFINE_UNIFORM_SCALAR(float, scale_b); MBGL_DEFINE_UNIFORM_SCALAR(float, tile_units_to_pixels); MBGL_DEFINE_UNIFORM_SCALAR(float, overscale_factor); +MBGL_DEFINE_UNIFORM_SCALAR(float, pixel_ratio_from); +MBGL_DEFINE_UNIFORM_SCALAR(float, pixel_ratio_to); } // namespace uniforms } // namespace mbgl diff --git a/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp b/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp index 4eaec6e55f..1344ecee24 100644 --- a/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp +++ b/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp @@ -200,7 +200,6 @@ void RenderFillExtrusionLayer::render(PaintParameters& parameters) { parameters.state, evaluated.get(), -std::pow(2, tile.id.canonical.z) / util::tileSize / 8.0f, - parameters.pixelRatio, parameters.evaluatedLight, evaluated.get() ), diff --git a/src/mbgl/renderer/layers/render_fill_layer.cpp b/src/mbgl/renderer/layers/render_fill_layer.cpp index 2fb982143e..004ebb5093 100644 --- a/src/mbgl/renderer/layers/render_fill_layer.cpp +++ b/src/mbgl/renderer/layers/render_fill_layer.cpp @@ -191,8 +191,7 @@ void RenderFillLayer::render(PaintParameters& parameters) { tile.getIconAtlasTexture().size, crossfade, tile.id, - parameters.state, - parameters.pixelRatio + parameters.state ), paintPropertyBinders, evaluated, -- cgit v1.2.1