summaryrefslogtreecommitdiff
path: root/src/mbgl/programs/line_program.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/programs/line_program.cpp')
-rw-r--r--src/mbgl/programs/line_program.cpp72
1 files changed, 39 insertions, 33 deletions
diff --git a/src/mbgl/programs/line_program.cpp b/src/mbgl/programs/line_program.cpp
index e5b4cc2ad5..74a1ba3162 100644
--- a/src/mbgl/programs/line_program.cpp
+++ b/src/mbgl/programs/line_program.cpp
@@ -1,4 +1,5 @@
#include <mbgl/programs/line_program.hpp>
+#include <mbgl/gfx/context_impl.hpp>
#include <mbgl/style/layers/line_layer_properties.hpp>
#include <mbgl/renderer/render_tile.hpp>
#include <mbgl/renderer/image_atlas.hpp>
@@ -8,6 +9,11 @@
namespace mbgl {
+template std::unique_ptr<gfx::Program<LineProgram>> gfx::Context::createProgram(const ProgramParameters&);
+template std::unique_ptr<gfx::Program<LinePatternProgram>> gfx::Context::createProgram(const ProgramParameters&);
+template std::unique_ptr<gfx::Program<LineGradientProgram>> gfx::Context::createProgram(const ProgramParameters&);
+template std::unique_ptr<gfx::Program<LineSDFProgram>> gfx::Context::createProgram(const ProgramParameters&);
+
using namespace style;
static_assert(sizeof(LineLayoutVertex) == 12, "expected LineLayoutVertex size");
@@ -31,12 +37,12 @@ Values makeValues(const RenderLinePaintProperties::PossiblyEvaluated& properties
};
}
-LineProgram::UniformValues
-LineProgram::uniformValues(const RenderLinePaintProperties::PossiblyEvaluated& properties,
- const RenderTile& tile,
- const TransformState& state,
- const std::array<float, 2>& pixelsToGLUnits) {
- return makeValues<LineProgram::UniformValues>(
+LineProgram::LayoutUniformValues
+LineProgram::layoutUniformValues(const RenderLinePaintProperties::PossiblyEvaluated& properties,
+ const RenderTile& tile,
+ const TransformState& state,
+ const std::array<float, 2>& pixelsToGLUnits) {
+ return makeValues<LineProgram::LayoutUniformValues>(
properties,
tile,
state,
@@ -44,16 +50,16 @@ LineProgram::uniformValues(const RenderLinePaintProperties::PossiblyEvaluated& p
);
}
-LineSDFProgram::UniformValues
-LineSDFProgram::uniformValues(const RenderLinePaintProperties::PossiblyEvaluated& properties,
- float pixelRatio,
- const RenderTile& tile,
- const TransformState& state,
- const std::array<float, 2>& pixelsToGLUnits,
- const LinePatternPos& posA,
- const LinePatternPos& posB,
- const CrossfadeParameters& crossfade,
- float atlasWidth) {
+LineSDFProgram::LayoutUniformValues
+LineSDFProgram::layoutUniformValues(const RenderLinePaintProperties::PossiblyEvaluated& properties,
+ float pixelRatio,
+ const RenderTile& tile,
+ const TransformState& state,
+ const std::array<float, 2>& pixelsToGLUnits,
+ const LinePatternPos& posA,
+ const LinePatternPos& posB,
+ const CrossfadeParameters& crossfade,
+ float atlasWidth) {
const float widthA = posA.width * crossfade.fromScale;
const float widthB = posB.width * crossfade.toScale;
@@ -67,7 +73,7 @@ LineSDFProgram::uniformValues(const RenderLinePaintProperties::PossiblyEvaluated
-posB.height / 2.0f
}};
- return makeValues<LineSDFProgram::UniformValues>(
+ return makeValues<LineSDFProgram::LayoutUniformValues>(
properties,
tile,
state,
@@ -81,18 +87,18 @@ LineSDFProgram::uniformValues(const RenderLinePaintProperties::PossiblyEvaluated
);
}
-LinePatternProgram::UniformValues
-LinePatternProgram::uniformValues(const RenderLinePaintProperties::PossiblyEvaluated& properties,
- const RenderTile& tile,
- const TransformState& state,
- const std::array<float, 2>& pixelsToGLUnits,
- const Size atlasSize,
- const CrossfadeParameters& crossfade,
- const float pixelRatio) {
-
+LinePatternProgram::LayoutUniformValues LinePatternProgram::layoutUniformValues(
+ const RenderLinePaintProperties::PossiblyEvaluated& properties,
+ const RenderTile& tile,
+ const TransformState& state,
+ const std::array<float, 2>& pixelsToGLUnits,
+ const Size atlasSize,
+ const CrossfadeParameters& crossfade,
+ const float pixelRatio) {
+
const auto tileRatio = 1 / tile.id.pixelsToTileUnits(1, state.getIntegerZoom());
- return makeValues<LinePatternProgram::UniformValues>(
+ return makeValues<LinePatternProgram::LayoutUniformValues>(
properties,
tile,
state,
@@ -103,12 +109,12 @@ LinePatternProgram::uniformValues(const RenderLinePaintProperties::PossiblyEvalu
);
}
-LineGradientProgram::UniformValues
-LineGradientProgram::uniformValues(const RenderLinePaintProperties::PossiblyEvaluated& properties,
- const RenderTile& tile,
- const TransformState& state,
- const std::array<float, 2>& pixelsToGLUnits) {
- return makeValues<LineGradientProgram::UniformValues>(
+LineGradientProgram::LayoutUniformValues LineGradientProgram::layoutUniformValues(
+ const RenderLinePaintProperties::PossiblyEvaluated& properties,
+ const RenderTile& tile,
+ const TransformState& state,
+ const std::array<float, 2>& pixelsToGLUnits) {
+ return makeValues<LineGradientProgram::LayoutUniformValues>(
properties,
tile,
state,