diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2019-03-15 20:31:12 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-15 20:31:12 +0100 |
commit | c8cfdb1ced822711e772dfcc8f708b1a7a68b5fc (patch) | |
tree | bf511253e25459cafc91a5f3bea2f5c773677162 /src/mbgl/programs/symbol_program.cpp | |
parent | 62695c56956add5560933137a479f29f2d3a091b (diff) | |
download | qtlocation-mapboxgl-c8cfdb1ced822711e772dfcc8f708b1a7a68b5fc.tar.gz |
Merge pull request #14126 from mapbox/gfx-refactor-4
Graphics refactor #4
Diffstat (limited to 'src/mbgl/programs/symbol_program.cpp')
-rw-r--r-- | src/mbgl/programs/symbol_program.cpp | 55 |
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 |