diff options
Diffstat (limited to 'src/mbgl/programs')
-rw-r--r-- | src/mbgl/programs/fill_extrusion_program.cpp | 18 | ||||
-rw-r--r-- | src/mbgl/programs/fill_extrusion_program.hpp | 19 | ||||
-rw-r--r-- | src/mbgl/programs/fill_program.cpp | 22 | ||||
-rw-r--r-- | src/mbgl/programs/fill_program.hpp | 21 | ||||
-rw-r--r-- | src/mbgl/programs/line_program.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/programs/line_program.hpp | 3 | ||||
-rw-r--r-- | src/mbgl/programs/uniforms.hpp | 1 |
7 files changed, 26 insertions, 60 deletions
diff --git a/src/mbgl/programs/fill_extrusion_program.cpp b/src/mbgl/programs/fill_extrusion_program.cpp index 1e11a254eb..2bdd0604d7 100644 --- a/src/mbgl/programs/fill_extrusion_program.cpp +++ b/src/mbgl/programs/fill_extrusion_program.cpp @@ -46,33 +46,25 @@ FillExtrusionUniforms::values(mat4 matrix, FillExtrusionPatternUniforms::Values FillExtrusionPatternUniforms::values(mat4 matrix, Size atlasSize, - const ImagePosition& a, - const ImagePosition& b, - const Faded<std::string>& fading, + const CrossfadeParameters& crossfade, const UnwrappedTileID& tileID, const TransformState& state, const float heightFactor, + const float pixelRatio, const EvaluatedLight& light) { + 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)); int32_t pixelY = tileSizeAtNearestZoom * tileID.canonical.y; return FillExtrusionPatternUniforms::Values{ uniforms::u_matrix::Value( matrix ), - uniforms::u_pattern_tl_a::Value( a.tl() ), - uniforms::u_pattern_br_a::Value( a.br() ), - uniforms::u_pattern_tl_b::Value( b.tl() ), - uniforms::u_pattern_br_b::Value( b.br() ), - uniforms::u_pattern_size_a::Value( a.displaySize() ), - uniforms::u_pattern_size_b::Value( b.displaySize() ), - uniforms::u_scale_a::Value( fading.fromScale ), - uniforms::u_scale_b::Value( fading.toScale ), + uniforms::u_scale::Value( {{pixelRatio, tileRatio, crossfade.fromScale, crossfade.toScale}} ), uniforms::u_texsize::Value( atlasSize ), - uniforms::u_mix::Value( fading.t ), + uniforms::u_fade::Value( crossfade.t ), uniforms::u_image::Value( 0 ), uniforms::u_pixel_coord_upper::Value( std::array<float, 2>{{ float(pixelX >> 16), float(pixelY >> 16) }} ), uniforms::u_pixel_coord_lower::Value( std::array<float, 2>{{ float(pixelX & 0xFFFF), float(pixelY & 0xFFFF) }} ), - uniforms::u_tile_units_to_pixels::Value( 1.0f / tileID.pixelsToTileUnits(1.0f, state.getIntegerZoom()) ), uniforms::u_height_factor::Value( heightFactor ), uniforms::u_lightcolor::Value( lightColor(light) ), uniforms::u_lightpos::Value( lightPosition(light, state) ), diff --git a/src/mbgl/programs/fill_extrusion_program.hpp b/src/mbgl/programs/fill_extrusion_program.hpp index c499e9ef2d..657238d4c0 100644 --- a/src/mbgl/programs/fill_extrusion_program.hpp +++ b/src/mbgl/programs/fill_extrusion_program.hpp @@ -46,20 +46,12 @@ struct FillExtrusionUniforms : gl::Uniforms< struct FillExtrusionPatternUniforms : gl::Uniforms< uniforms::u_matrix, - uniforms::u_pattern_tl_a, - uniforms::u_pattern_br_a, - uniforms::u_pattern_tl_b, - uniforms::u_pattern_br_b, - uniforms::u_pattern_size_a, - uniforms::u_pattern_size_b, - uniforms::u_scale_a, - uniforms::u_scale_b, + uniforms::u_scale, uniforms::u_texsize, - uniforms::u_mix, + uniforms::u_fade, uniforms::u_image, uniforms::u_pixel_coord_upper, uniforms::u_pixel_coord_lower, - uniforms::u_tile_units_to_pixels, uniforms::u_height_factor, uniforms::u_lightcolor, uniforms::u_lightpos, @@ -67,12 +59,11 @@ struct FillExtrusionPatternUniforms : gl::Uniforms< { static Values values(mat4, Size atlasSize, - const ImagePosition&, - const ImagePosition&, - const Faded<std::string>&, + const CrossfadeParameters&, const UnwrappedTileID&, const TransformState&, - const float, + const float heightFactor, + const float pixelRatio, const EvaluatedLight&); }; diff --git a/src/mbgl/programs/fill_program.cpp b/src/mbgl/programs/fill_program.cpp index e88ee26824..b072343e7a 100644 --- a/src/mbgl/programs/fill_program.cpp +++ b/src/mbgl/programs/fill_program.cpp @@ -14,12 +14,12 @@ FillPatternUniforms::Values FillPatternUniforms::values(mat4 matrix, Size framebufferSize, Size atlasSize, - const ImagePosition& a, - const ImagePosition& b, - const Faded<std::string>& fading, + const CrossfadeParameters& crossfade, const UnwrappedTileID& tileID, - const TransformState& state) + const TransformState& state, + const float pixelRatio) { + 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)); int32_t pixelY = tileSizeAtNearestZoom * tileID.canonical.y; @@ -28,19 +28,11 @@ FillPatternUniforms::values(mat4 matrix, uniforms::u_matrix::Value( matrix ), uniforms::u_world::Value( framebufferSize ), uniforms::u_texsize::Value( atlasSize ), - uniforms::u_pattern_tl_a::Value( a.tl() ), - uniforms::u_pattern_br_a::Value( a.br() ), - uniforms::u_pattern_tl_b::Value( b.tl() ), - uniforms::u_pattern_br_b::Value( b.br() ), - uniforms::u_pattern_size_a::Value( a.displaySize() ), - uniforms::u_pattern_size_b::Value( b.displaySize() ), - uniforms::u_scale_a::Value( fading.fromScale ), - uniforms::u_scale_b::Value( fading.toScale ), - uniforms::u_mix::Value( fading.t ), + uniforms::u_scale::Value({ {pixelRatio, tileRatio, crossfade.fromScale, crossfade.toScale} } ), + uniforms::u_fade::Value( crossfade.t ), uniforms::u_image::Value( 0 ), uniforms::u_pixel_coord_upper::Value( std::array<float, 2> {{ float(pixelX >> 16), float(pixelY >> 16) }}), - uniforms::u_pixel_coord_lower::Value( std::array<float, 2> {{ float(pixelX & 0xFFFF), float(pixelY & 0xFFFF) }} ), - uniforms::u_tile_units_to_pixels::Value( 1.0f / tileID.pixelsToTileUnits(1.0f, state.getIntegerZoom()) ), + uniforms::u_pixel_coord_lower::Value( std::array<float, 2> {{ float(pixelX & 0xFFFF), float(pixelY & 0xFFFF) }} ) }; } diff --git a/src/mbgl/programs/fill_program.hpp b/src/mbgl/programs/fill_program.hpp index ac478250fc..9c623fee22 100644 --- a/src/mbgl/programs/fill_program.hpp +++ b/src/mbgl/programs/fill_program.hpp @@ -32,28 +32,19 @@ struct FillPatternUniforms : gl::Uniforms< uniforms::u_matrix, uniforms::u_world, uniforms::u_texsize, - uniforms::u_pattern_tl_a, - uniforms::u_pattern_br_a, - uniforms::u_pattern_tl_b, - uniforms::u_pattern_br_b, - uniforms::u_pattern_size_a, - uniforms::u_pattern_size_b, - uniforms::u_scale_a, - uniforms::u_scale_b, - uniforms::u_mix, + uniforms::u_scale, + uniforms::u_fade, uniforms::u_image, uniforms::u_pixel_coord_upper, - uniforms::u_pixel_coord_lower, - uniforms::u_tile_units_to_pixels> + uniforms::u_pixel_coord_lower> { static Values values(mat4 matrix, Size framebufferSize, Size atlasSize, - const ImagePosition&, - const ImagePosition&, - const Faded<std::string>&, + const CrossfadeParameters& crossfade, const UnwrappedTileID&, - const TransformState&); + const TransformState&, + const float pixelRatio); }; class FillProgram : public Program< diff --git a/src/mbgl/programs/line_program.cpp b/src/mbgl/programs/line_program.cpp index a5ba3a5c91..3541a3bfae 100644 --- a/src/mbgl/programs/line_program.cpp +++ b/src/mbgl/programs/line_program.cpp @@ -87,7 +87,7 @@ LinePatternProgram::uniformValues(const RenderLinePaintProperties::PossiblyEvalu const TransformState& state, const std::array<float, 2>& pixelsToGLUnits, const Size atlasSize, - const CrossfadeParameters crossfade, + const CrossfadeParameters& crossfade, const float pixelRatio) { const auto tileRatio = 1 / tile.id.pixelsToTileUnits(1, state.getIntegerZoom()); diff --git a/src/mbgl/programs/line_program.hpp b/src/mbgl/programs/line_program.hpp index 9707778f26..cc4ec8c764 100644 --- a/src/mbgl/programs/line_program.hpp +++ b/src/mbgl/programs/line_program.hpp @@ -24,7 +24,6 @@ MBGL_DEFINE_UNIFORM_SCALAR(float, u_ratio); MBGL_DEFINE_UNIFORM_SCALAR(float, u_tex_y_a); MBGL_DEFINE_UNIFORM_SCALAR(float, u_tex_y_b); MBGL_DEFINE_UNIFORM_SCALAR(float, u_sdfgamma); -MBGL_DEFINE_UNIFORM_SCALAR(float, u_fade); MBGL_DEFINE_UNIFORM_VECTOR(float, 2, u_patternscale_a); MBGL_DEFINE_UNIFORM_VECTOR(float, 2, u_patternscale_b); MBGL_DEFINE_UNIFORM_VECTOR(float, 2, u_gl_units_to_pixels); @@ -121,7 +120,7 @@ public: const TransformState&, const std::array<float, 2>& pixelsToGLUnits, Size atlasSize, - const CrossfadeParameters crossfade, + const CrossfadeParameters& crossfade, const float pixelRatio); }; diff --git a/src/mbgl/programs/uniforms.hpp b/src/mbgl/programs/uniforms.hpp index 43d94df162..ab68e43c87 100644 --- a/src/mbgl/programs/uniforms.hpp +++ b/src/mbgl/programs/uniforms.hpp @@ -36,6 +36,7 @@ MBGL_DEFINE_UNIFORM_SCALAR(Size, u_world); MBGL_DEFINE_UNIFORM_SCALAR(Size, u_texsize); MBGL_DEFINE_UNIFORM_SCALAR(bool, u_pitch_with_map); MBGL_DEFINE_UNIFORM_SCALAR(float, u_camera_to_center_distance); +MBGL_DEFINE_UNIFORM_SCALAR(float, u_fade); MBGL_DEFINE_UNIFORM_SCALAR(float, u_fade_change); MBGL_DEFINE_UNIFORM_SCALAR(float, u_weight); |