diff options
Diffstat (limited to 'include/llmr')
-rw-r--r-- | include/llmr/renderer/painter.hpp | 2 | ||||
-rw-r--r-- | include/llmr/shader/text_shader.hpp | 55 |
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 |