summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2014-01-28 17:37:36 +0100
committerKonstantin Käfer <mail@kkaefer.com>2014-01-28 17:37:36 +0100
commit43ab6732d98c0020f28546cbf0377f4b6980f22a (patch)
treeb118da8e4170e118c68476b9df7d758e575c489f /src
parent4c08a9081bfd14e97c9e3d48b4441a07c2632888 (diff)
downloadqtlocation-mapboxgl-43ab6732d98c0020f28546cbf0377f4b6980f22a.tar.gz
rename shader line -> plain
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt4
-rw-r--r--src/renderer/painter.cpp52
-rw-r--r--src/renderer/shader-plain.cpp (renamed from src/renderer/shader-line.cpp)10
-rw-r--r--src/shader/plain.fragment.glsl (renamed from src/shader/line.fragment.glsl)0
-rw-r--r--src/shader/plain.vertex.glsl (renamed from src/shader/line.vertex.glsl)0
-rw-r--r--src/shader/shaders.cpp8
6 files changed, 30 insertions, 44 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index cc1a52b77e..4ae8d7a22a 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -8,7 +8,7 @@ SET(llmr_SOURCES
map/vector_tile.cpp
renderer/painter.cpp
renderer/shader-fill.cpp
- renderer/shader-line.cpp
+ renderer/shader-plain.cpp
renderer/shader-outline.cpp
renderer/shader.cpp
renderer/fill_bucket.cpp
@@ -37,7 +37,7 @@ SET(llmr_HEADERS
../include/llmr/platform/platform.hpp
../include/llmr/renderer/painter.hpp
../include/llmr/renderer/shader-fill.hpp
- ../include/llmr/renderer/shader-line.hpp
+ ../include/llmr/renderer/shader-plain.hpp
../include/llmr/renderer/shader-outline.hpp
../include/llmr/renderer/shader.hpp
../include/llmr/shader/shaders.hpp
diff --git a/src/renderer/painter.cpp b/src/renderer/painter.cpp
index 0605839ba8..282cf3e39b 100644
--- a/src/renderer/painter.cpp
+++ b/src/renderer/painter.cpp
@@ -44,10 +44,7 @@ Painter::Painter(Transform& transform, Settings& settings, Style& style)
: transform(transform),
settings(settings),
style(style),
- currentShader(NULL),
- fillShader(NULL),
- lineShader(NULL),
- outlineShader(NULL) {
+ currentShader(NULL) {
}
@@ -55,7 +52,7 @@ void Painter::setup() {
setupShaders();
assert(fillShader);
- assert(lineShader);
+ assert(plainShader);
assert(outlineShader);
// Set up the stencil quad we're using to generate the stencil mask.
@@ -78,24 +75,13 @@ void Painter::setup() {
}
void Painter::setupShaders() {
- fillShader = new FillShader();
- lineShader = new LineShader();
- outlineShader = new OutlineShader();
+ fillShader = std::make_shared<FillShader>();
+ plainShader = std::make_shared<PlainShader>();
+ outlineShader = std::make_shared<OutlineShader>();
}
void Painter::teardown() {
glDeleteBuffers(1, &tile_stencil_buffer);
-
- if (fillShader) {
- delete fillShader;
- fillShader = NULL;
- }
-
- if (lineShader) {
- delete lineShader;
- lineShader = NULL;
- }
-
}
void Painter::changeMatrix(const Tile::Ptr& tile) {
@@ -110,8 +96,8 @@ void Painter::changeMatrix(const Tile::Ptr& tile) {
}
void Painter::drawClippingMask() {
- switchShader(lineShader);
- glUniformMatrix4fv(lineShader->u_matrix, 1, GL_FALSE, matrix);
+ switchShader(plainShader);
+ glUniformMatrix4fv(plainShader->u_matrix, 1, GL_FALSE, matrix);
glColorMask(false, false, false, false);
@@ -132,8 +118,8 @@ void Painter::drawClippingMask() {
// Draw the clipping mask
glBindBuffer(GL_ARRAY_BUFFER, tile_stencil_buffer);
- glVertexAttribPointer(lineShader->a_pos, 2, GL_SHORT, false, 0, BUFFER_OFFSET(0));
- glUniform4f(lineShader->u_color, 1.0f, 0.0f, 1.0f, 1.0f);
+ glVertexAttribPointer(plainShader->a_pos, 2, GL_SHORT, false, 0, BUFFER_OFFSET(0));
+ glUniform4f(plainShader->u_color, 1.0f, 0.0f, 1.0f, 1.0f);
glDrawArrays(GL_TRIANGLES, 0, sizeof(tile_stencil_vertices));
// glEnable(GL_STENCIL_TEST);
@@ -340,23 +326,23 @@ void Painter::renderDebug(const Tile::Ptr& tile) {
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
// draw tile outline
- switchShader(lineShader);
- glUniformMatrix4fv(lineShader->u_matrix, 1, GL_FALSE, matrix);
+ switchShader(plainShader);
+ glUniformMatrix4fv(plainShader->u_matrix, 1, GL_FALSE, matrix);
glBindBuffer(GL_ARRAY_BUFFER, tile_border_buffer);
- glVertexAttribPointer(lineShader->a_pos, 2, GL_SHORT, false, 0, BUFFER_OFFSET(0));
- glUniform4f(lineShader->u_color, 1.0f, 1.0f, 1.0f, 1.0f);
+ glVertexAttribPointer(plainShader->a_pos, 2, GL_SHORT, false, 0, BUFFER_OFFSET(0));
+ glUniform4f(plainShader->u_color, 1.0f, 1.0f, 1.0f, 1.0f);
glLineWidth(4.0f);
glDrawArrays(GL_LINE_STRIP, 0, sizeof(tile_border_vertices));
// draw debug info
- switchShader(lineShader);
- glUniformMatrix4fv(lineShader->u_matrix, 1, GL_FALSE, matrix);
+ switchShader(plainShader);
+ glUniformMatrix4fv(plainShader->u_matrix, 1, GL_FALSE, matrix);
tile->debugFontBuffer->bind();
- glVertexAttribPointer(lineShader->a_pos, 2, GL_SHORT, GL_FALSE, 0, BUFFER_OFFSET(0));
- glUniform4f(lineShader->u_color, 1.0f, 1.0f, 1.0f, 1.0f);
+ glVertexAttribPointer(plainShader->a_pos, 2, GL_SHORT, GL_FALSE, 0, BUFFER_OFFSET(0));
+ glUniform4f(plainShader->u_color, 1.0f, 1.0f, 1.0f, 1.0f);
glLineWidth(4.0f);
glDrawArrays(GL_LINES, 0, tile->debugFontBuffer->length());
- glUniform4f(lineShader->u_color, 0.0f, 0.0f, 0.0f, 1.0f);
+ glUniform4f(plainShader->u_color, 0.0f, 0.0f, 0.0f, 1.0f);
glLineWidth(2.0f);
glDrawArrays(GL_LINES, 0, tile->debugFontBuffer->length());
@@ -382,7 +368,7 @@ void Painter::renderBackground() {
/**
* @return boolean whether the shader was actually switched
*/
-bool Painter::switchShader(Shader *shader) {
+bool Painter::switchShader(std::shared_ptr<Shader> shader) {
if (currentShader != shader) {
glUseProgram(shader->program);
diff --git a/src/renderer/shader-line.cpp b/src/renderer/shader-plain.cpp
index f6ea501596..8e767b6dcd 100644
--- a/src/renderer/shader-line.cpp
+++ b/src/renderer/shader-plain.cpp
@@ -1,16 +1,16 @@
-#include <llmr/renderer/shader-line.hpp>
+#include <llmr/renderer/shader-plain.hpp>
#include <llmr/shader/shaders.hpp>
#include <llmr/platform/gl.hpp>
using namespace llmr;
-LineShader::LineShader()
+PlainShader::PlainShader()
: Shader(
- shaders[LINE_SHADER].vertex,
- shaders[LINE_SHADER].fragment
+ shaders[PLAIN_SHADER].vertex,
+ shaders[PLAIN_SHADER].fragment
) {
if (!valid) {
- fprintf(stderr, "invalid line shader\n");
+ fprintf(stderr, "invalid plain shader\n");
return;
}
diff --git a/src/shader/line.fragment.glsl b/src/shader/plain.fragment.glsl
index 8df552c171..8df552c171 100644
--- a/src/shader/line.fragment.glsl
+++ b/src/shader/plain.fragment.glsl
diff --git a/src/shader/line.vertex.glsl b/src/shader/plain.vertex.glsl
index 547576757e..547576757e 100644
--- a/src/shader/line.vertex.glsl
+++ b/src/shader/plain.vertex.glsl
diff --git a/src/shader/shaders.cpp b/src/shader/shaders.cpp
index 38e37ead0b..c5e33a0b93 100644
--- a/src/shader/shaders.cpp
+++ b/src/shader/shaders.cpp
@@ -8,12 +8,12 @@ const shader_source llmr::shaders[SHADER_COUNT] = {
.vertex = "attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n}\n",
.fragment = "uniform vec4 u_color;\n\nvoid main() {\n gl_FragColor = u_color;\n}\n",
},
- [LINE_SHADER] = {
- .vertex = "attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\n\nvoid main() {\n float z = step(32767.0, a_pos.x) * 2.0;\n gl_Position = u_matrix * vec4(a_pos, z, 1);\n }\n",
- .fragment = "uniform vec4 u_color;\n\nvoid main() {\n gl_FragColor = u_color;\n}\n",
- },
[OUTLINE_SHADER] = {
.vertex = "attribute vec2 a_pos;\nuniform mat4 u_matrix;\nuniform vec2 u_world;\n\nvarying vec2 v_pos;\n\nvoid main() {\n // If the x coordinate is the maximum integer, we move the z coordinates out\n // of the view plane so that the triangle gets clipped. This makes it easier\n // for us to create degenerate triangle strips.\n float z = step(32767.0, a_pos.x) * 2.0;\n gl_Position = u_matrix * vec4(a_pos, z, 1);\n\n v_pos = (gl_Position.xy + 1.0) / 2.0 * u_world;\n}\n",
.fragment = "uniform vec4 u_color;\n\nvarying vec2 v_pos;\n\nvoid main() {\n float dist = length(v_pos - gl_FragCoord.xy);\n float alpha = smoothstep(1.0, 0.0, dist);\n gl_FragColor = u_color * alpha;\n}\n",
+ },
+ [PLAIN_SHADER] = {
+ .vertex = "attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\n\nvoid main() {\n float z = step(32767.0, a_pos.x) * 2.0;\n gl_Position = u_matrix * vec4(a_pos, z, 1);\n }\n",
+ .fragment = "uniform vec4 u_color;\n\nvoid main() {\n gl_FragColor = u_color;\n}\n",
}
};