summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2014-03-21 14:26:25 +0100
committerKonstantin Käfer <mail@kkaefer.com>2014-03-21 14:26:25 +0100
commita7b9b96d4de44d8f8bf87f5fc5104190c3233945 (patch)
treedc8970bd0a08face0fc03f4960dd8644ba9610ef /include
parent3413ee536d1e3fdd30aeb8a0105f713115302279 (diff)
downloadqtlocation-mapboxgl-a7b9b96d4de44d8f8bf87f5fc5104190c3233945.tar.gz
add textshader
Diffstat (limited to 'include')
-rw-r--r--include/llmr/renderer/painter.hpp2
-rw-r--r--include/llmr/shader/text_shader.hpp55
2 files changed, 55 insertions, 2 deletions
diff --git a/include/llmr/renderer/painter.hpp b/include/llmr/renderer/painter.hpp
index 0f8118ca5f..71973aba08 100644
--- a/include/llmr/renderer/painter.hpp
+++ b/include/llmr/renderer/painter.hpp
@@ -14,6 +14,7 @@
#include <llmr/shader/linejoin_shader.hpp>
#include <llmr/shader/point_shader.hpp>
#include <llmr/shader/raster_shader.hpp>
+#include <llmr/shader/text_shader.hpp>
namespace llmr {
@@ -84,6 +85,7 @@ private:
std::unique_ptr<PatternShader> patternShader;
std::unique_ptr<PointShader> pointShader;
std::unique_ptr<RasterShader> rasterShader;
+ std::unique_ptr<TextShader> textShader;
// Set up the stencil quad we're using to generate the stencil mask.
VertexBuffer tileStencilBuffer = {
diff --git a/include/llmr/shader/text_shader.hpp b/include/llmr/shader/text_shader.hpp
index ec0d49460e..7edf10d235 100644
--- a/include/llmr/shader/text_shader.hpp
+++ b/include/llmr/shader/text_shader.hpp
@@ -12,15 +12,66 @@ public:
void bind(char *offset);
void setColor(float r, float g, float b, float a);
- void setColor(const std::array<float, 4>& color);
+ void setColor(const std::array<float, 4> &color);
+ void setBuffer(float buffer);
+ void setGamma(float gamma);
+ void setExmatrix(const std::array<float, 16> &exmatrix);
+ void setAngle(float angle);
+ void setZoom(float zoom);
+ void setFlip(float flip);
+ void setFadedist(float fadedist);
+ void setMinfadezoom(float minfadezoom);
+ void setMaxfadezoom(float maxfadezoom);
+ void setFadezoom(float fadezoom);
+ void setTexsize(const std::array<float, 2> &texsize);
private:
int32_t a_pos = -1;
+ int32_t a_offset = -1;
+ int32_t a_tex = -1;
+ int32_t a_angle = -1;
+ int32_t a_minzoom = -1;
+ int32_t a_maxzoom = -1;
+ int32_t a_rangeend = -1;
+ int32_t a_rangestart = -1;
+ int32_t a_labelminzoom = -1;
std::array<float, 4> color = {{}};
int32_t u_color = -1;
-};
+ float buffer = 0.0f;
+ int32_t u_buffer = -1;
+
+ float gamma = 0.0f;
+ int32_t u_gamma = -1;
+
+ std::array<float, 16> exmatrix = {{}};
+ int32_t u_exmatrix = -1;
+
+ float angle = 0.0f;
+ int32_t u_angle = -1;
+
+ float zoom = 0.0f;
+ int32_t u_zoom = -1;
+
+ float flip = 0.0f;
+ int32_t u_flip = -1;
+
+ float fadedist = 0.0f;
+ int32_t u_fadedist = -1;
+
+ float minfadezoom = 0.0f;
+ int32_t u_minfadezoom = -1;
+
+ float maxfadezoom = 0.0f;
+ int32_t u_maxfadezoom = -1;
+
+ float fadezoom = 0.0f;
+ int32_t u_fadezoom = -1;
+
+ std::array<float, 2> texsize = {{}};
+ int32_t u_texsize = -1;
+};
}
#endif