diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2014-01-28 17:37:36 +0100 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2014-01-28 17:37:36 +0100 |
commit | 43ab6732d98c0020f28546cbf0377f4b6980f22a (patch) | |
tree | b118da8e4170e118c68476b9df7d758e575c489f | |
parent | 4c08a9081bfd14e97c9e3d48b4441a07c2632888 (diff) | |
download | qtlocation-mapboxgl-43ab6732d98c0020f28546cbf0377f4b6980f22a.tar.gz |
rename shader line -> plain
-rw-r--r-- | include/llmr/renderer/painter.hpp | 12 | ||||
-rw-r--r-- | include/llmr/renderer/shader-plain.hpp (renamed from include/llmr/renderer/shader-line.hpp) | 8 | ||||
-rw-r--r-- | include/llmr/renderer/shader.hpp | 2 | ||||
-rw-r--r-- | include/llmr/shader/shaders.hpp | 2 | ||||
-rw-r--r-- | macosx/main.mm | 3 | ||||
-rw-r--r-- | src/CMakeLists.txt | 4 | ||||
-rw-r--r-- | src/renderer/painter.cpp | 52 | ||||
-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.cpp | 8 |
11 files changed, 44 insertions, 57 deletions
diff --git a/include/llmr/renderer/painter.hpp b/include/llmr/renderer/painter.hpp index a20f4f1db6..f5bd6e1b6c 100644 --- a/include/llmr/renderer/painter.hpp +++ b/include/llmr/renderer/painter.hpp @@ -2,7 +2,7 @@ #define LLMR_RENDERER_PAINTER #include "shader-fill.hpp" -#include "shader-line.hpp" +#include "shader-plain.hpp" #include "shader-outline.hpp" #include "../map/tile.hpp" @@ -42,7 +42,7 @@ public: void drawClippingMask(); - bool switchShader(Shader *shader); + bool switchShader(std::shared_ptr<Shader> shader); private: void setupShaders(); @@ -56,10 +56,10 @@ private: Style& style; float matrix[16]; - Shader *currentShader; - FillShader *fillShader; - LineShader *lineShader; - OutlineShader *outlineShader; + std::shared_ptr<Shader> currentShader; + std::shared_ptr<FillShader> fillShader; + std::shared_ptr<PlainShader> plainShader; + std::shared_ptr<OutlineShader> outlineShader; uint32_t tile_stencil_buffer; uint32_t tile_border_buffer; diff --git a/include/llmr/renderer/shader-line.hpp b/include/llmr/renderer/shader-plain.hpp index b40ca0e0a7..d1ccdeff0e 100644 --- a/include/llmr/renderer/shader-line.hpp +++ b/include/llmr/renderer/shader-plain.hpp @@ -1,13 +1,13 @@ -#ifndef LLMR_RENDERER_SHADER_LINE -#define LLMR_RENDERER_SHADER_LINE +#ifndef LLMR_RENDERER_SHADER_PLAIN +#define LLMR_RENDERER_SHADER_PLAIN #include "shader.hpp" namespace llmr { -class LineShader : public Shader { +class PlainShader : public Shader { public: - LineShader(); + PlainShader(); int32_t a_pos; int32_t u_matrix; diff --git a/include/llmr/renderer/shader.hpp b/include/llmr/renderer/shader.hpp index 2f2e06c337..a32d0b647c 100644 --- a/include/llmr/renderer/shader.hpp +++ b/include/llmr/renderer/shader.hpp @@ -8,7 +8,7 @@ namespace llmr { class Shader { public: Shader(const char *vertex, const char *fragment); - ~Shader(); + virtual ~Shader(); // Make noncopyable Shader(const Shader&) = delete; diff --git a/include/llmr/shader/shaders.hpp b/include/llmr/shader/shaders.hpp index ea0f8b2343..6ce6e81ef1 100644 --- a/include/llmr/shader/shaders.hpp +++ b/include/llmr/shader/shaders.hpp @@ -12,8 +12,8 @@ struct shader_source { enum { FILL_SHADER, - LINE_SHADER, OUTLINE_SHADER, + PLAIN_SHADER, SHADER_COUNT }; diff --git a/macosx/main.mm b/macosx/main.mm index 35dc13cdff..cbbbd96ef0 100644 --- a/macosx/main.mm +++ b/macosx/main.mm @@ -215,7 +215,8 @@ void restart(void *) { void request(void *, Tile::Ptr tile) { assert((bool)tile); - NSString *urlTemplate = @"http://api.tiles.mapbox.com/v3/mapbox.mapbox-streets-v4/%d/%d/%d.vector.pbf"; + // NSString *urlTemplate = @"http://api.tiles.mapbox.com/v3/mapbox.mapbox-streets-v4/%d/%d/%d.vector.pbf"; + NSString *urlTemplate = @"http://localhost:3333/gl/tiles/plain/%d-%d-%d.vector.pbf"; NSString *urlString = [NSString stringWithFormat:urlTemplate, tile->id.z, 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", } }; |