summaryrefslogtreecommitdiff
path: root/src/mbgl/programs/symbol_program.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/programs/symbol_program.cpp')
-rw-r--r--src/mbgl/programs/symbol_program.cpp55
1 files changed, 29 insertions, 26 deletions
diff --git a/src/mbgl/programs/symbol_program.cpp b/src/mbgl/programs/symbol_program.cpp
index 03643d6422..2300dedff3 100644
--- a/src/mbgl/programs/symbol_program.cpp
+++ b/src/mbgl/programs/symbol_program.cpp
@@ -1,4 +1,5 @@
#include <mbgl/programs/symbol_program.hpp>
+#include <mbgl/gfx/context_impl.hpp>
#include <mbgl/renderer/render_tile.hpp>
#include <mbgl/map/transform_state.hpp>
#include <mbgl/style/layers/symbol_layer_impl.hpp>
@@ -9,6 +10,10 @@
namespace mbgl {
+template std::unique_ptr<gfx::Program<SymbolIconProgram>> gfx::Context::createProgram(const ProgramParameters&);
+template std::unique_ptr<gfx::Program<SymbolSDFTextProgram>> gfx::Context::createProgram(const ProgramParameters&);
+template std::unique_ptr<gfx::Program<SymbolSDFIconProgram>> gfx::Context::createProgram(const ProgramParameters&);
+
using namespace style;
static_assert(sizeof(SymbolLayoutVertex) == 16, "expected SymbolLayoutVertex size");
@@ -99,17 +104,16 @@ Values makeValues(const bool isText,
};
}
-SymbolIconProgram::UniformValues
-SymbolIconProgram::uniformValues(const bool isText,
- const style::SymbolPropertyValues& values,
- const Size& texsize,
- const std::array<float, 2>& pixelsToGLUnits,
- const bool alongLine,
- const RenderTile& tile,
- const TransformState& state,
- const float symbolFadeChange)
-{
- return makeValues<SymbolIconProgram::UniformValues>(
+SymbolIconProgram::LayoutUniformValues
+SymbolIconProgram::layoutUniformValues(const bool isText,
+ const style::SymbolPropertyValues& values,
+ const Size& texsize,
+ const std::array<float, 2>& pixelsToGLUnits,
+ const bool alongLine,
+ const RenderTile& tile,
+ const TransformState& state,
+ const float symbolFadeChange) {
+ return makeValues<SymbolIconProgram::LayoutUniformValues>(
isText,
values,
texsize,
@@ -121,23 +125,22 @@ SymbolIconProgram::uniformValues(const bool isText,
);
}
-template <class PaintProperties>
-typename SymbolSDFProgram<PaintProperties>::UniformValues SymbolSDFProgram<PaintProperties>::uniformValues(
- const bool isText,
- const style::SymbolPropertyValues& values,
- const Size& texsize,
- const std::array<float, 2>& pixelsToGLUnits,
- const bool alongLine,
- const RenderTile& tile,
- const TransformState& state,
- const float symbolFadeChange,
- const SymbolSDFPart part)
-{
+template <class Name, class PaintProperties>
+typename SymbolSDFProgram<Name, PaintProperties>::LayoutUniformValues
+SymbolSDFProgram<Name, PaintProperties>::layoutUniformValues(const bool isText,
+ const style::SymbolPropertyValues& values,
+ const Size& texsize,
+ const std::array<float, 2>& pixelsToGLUnits,
+ const bool alongLine,
+ const RenderTile& tile,
+ const TransformState& state,
+ const float symbolFadeChange,
+ const SymbolSDFPart part) {
const float gammaScale = (values.pitchAlignment == AlignmentType::Map
? std::cos(state.getPitch()) * state.getCameraToCenterDistance()
: 1.0);
- return makeValues<SymbolSDFProgram<PaintProperties>::UniformValues>(
+ return makeValues<SymbolSDFProgram<Name, PaintProperties>::LayoutUniformValues>(
isText,
values,
texsize,
@@ -151,7 +154,7 @@ typename SymbolSDFProgram<PaintProperties>::UniformValues SymbolSDFProgram<Paint
);
}
-template class SymbolSDFProgram<style::IconPaintProperties>;
-template class SymbolSDFProgram<style::TextPaintProperties>;
+template class SymbolSDFProgram<SymbolSDFIconProgram, style::IconPaintProperties>;
+template class SymbolSDFProgram<SymbolSDFTextProgram, style::TextPaintProperties>;
} // namespace mbgl