summaryrefslogtreecommitdiff
path: root/src/mbgl/programs
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/programs')
-rw-r--r--src/mbgl/programs/fill_extrusion_program.cpp18
-rw-r--r--src/mbgl/programs/fill_extrusion_program.hpp19
-rw-r--r--src/mbgl/programs/fill_program.cpp22
-rw-r--r--src/mbgl/programs/fill_program.hpp21
-rw-r--r--src/mbgl/programs/line_program.cpp2
-rw-r--r--src/mbgl/programs/line_program.hpp3
-rw-r--r--src/mbgl/programs/uniforms.hpp1
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);