summaryrefslogtreecommitdiff
path: root/src/mbgl/programs
diff options
context:
space:
mode:
authorAlexander Shalamov <alexander.shalamov@mapbox.com>2019-03-13 23:17:14 +0200
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-03-29 16:18:41 +0200
commitcb64dbe0d63bafd3fda7488be9d8253b480b2ce5 (patch)
tree6589ed57960ad68f393fde1250c414ef7a873c5f /src/mbgl/programs
parentdbbfc4a494c78124ce218a6624ede795456e9ff5 (diff)
downloadqtlocation-mapboxgl-cb64dbe0d63bafd3fda7488be9d8253b480b2ce5.tar.gz
[core] Introduce variable text placement for point labels - Render part
Diffstat (limited to 'src/mbgl/programs')
-rw-r--r--src/mbgl/programs/symbol_program.cpp7
-rw-r--r--src/mbgl/programs/symbol_program.hpp2
2 files changed, 8 insertions, 1 deletions
diff --git a/src/mbgl/programs/symbol_program.cpp b/src/mbgl/programs/symbol_program.cpp
index 0195506129..d6a7a10368 100644
--- a/src/mbgl/programs/symbol_program.cpp
+++ b/src/mbgl/programs/symbol_program.cpp
@@ -42,6 +42,7 @@ std::unique_ptr<SymbolSizeBinder> SymbolSizeBinder::create(const float tileZoom,
template <class Values, class...Args>
Values makeValues(const bool isText,
+ const bool hasVariablePacement,
const style::SymbolPropertyValues& values,
const Size& texsize,
const std::array<float, 2>& pixelsToGLUnits,
@@ -71,7 +72,7 @@ Values makeValues(const bool isText,
const bool rotateInShader = rotateWithMap && !pitchWithMap && !alongLine;
mat4 labelPlaneMatrix;
- if (alongLine) {
+ if (alongLine || (isText && hasVariablePacement)) {
// For labels that follow lines the first part of the projection is handled on the cpu.
// Pass an identity matrix because no transformation needs to be done in the vertex shader.
matrix::identity(labelPlaneMatrix);
@@ -106,6 +107,7 @@ Values makeValues(const bool isText,
SymbolIconProgram::LayoutUniformValues
SymbolIconProgram::layoutUniformValues(const bool isText,
+ const bool hasVariablePacement,
const style::SymbolPropertyValues& values,
const Size& texsize,
const std::array<float, 2>& pixelsToGLUnits,
@@ -115,6 +117,7 @@ SymbolIconProgram::layoutUniformValues(const bool isText,
const float symbolFadeChange) {
return makeValues<SymbolIconProgram::LayoutUniformValues>(
isText,
+ hasVariablePacement,
values,
texsize,
pixelsToGLUnits,
@@ -128,6 +131,7 @@ SymbolIconProgram::layoutUniformValues(const bool isText,
template <class Name, class PaintProperties>
typename SymbolSDFProgram<Name, PaintProperties>::LayoutUniformValues
SymbolSDFProgram<Name, PaintProperties>::layoutUniformValues(const bool isText,
+ const bool hasVariablePacement,
const style::SymbolPropertyValues& values,
const Size& texsize,
const std::array<float, 2>& pixelsToGLUnits,
@@ -142,6 +146,7 @@ SymbolSDFProgram<Name, PaintProperties>::layoutUniformValues(const bool isText,
return makeValues<SymbolSDFProgram<Name, PaintProperties>::LayoutUniformValues>(
isText,
+ hasVariablePacement,
values,
texsize,
pixelsToGLUnits,
diff --git a/src/mbgl/programs/symbol_program.hpp b/src/mbgl/programs/symbol_program.hpp
index 9c00caef84..d640eb74da 100644
--- a/src/mbgl/programs/symbol_program.hpp
+++ b/src/mbgl/programs/symbol_program.hpp
@@ -367,6 +367,7 @@ public:
using SymbolProgram::SymbolProgram;
static LayoutUniformValues layoutUniformValues(const bool isText,
+ const bool hasVariablePacement,
const style::SymbolPropertyValues&,
const Size& texsize,
const std::array<float, 2>& pixelsToGLUnits,
@@ -436,6 +437,7 @@ public:
using BaseProgram::BaseProgram;
static LayoutUniformValues layoutUniformValues(const bool isText,
+ const bool hasVariablePacement,
const style::SymbolPropertyValues&,
const Size& texsize,
const std::array<float, 2>& pixelsToGLUnits,