summaryrefslogtreecommitdiff
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
parent4c08a9081bfd14e97c9e3d48b4441a07c2632888 (diff)
downloadqtlocation-mapboxgl-43ab6732d98c0020f28546cbf0377f4b6980f22a.tar.gz
rename shader line -> plain
-rw-r--r--include/llmr/renderer/painter.hpp12
-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.hpp2
-rw-r--r--include/llmr/shader/shaders.hpp2
-rw-r--r--macosx/main.mm3
-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
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",
}
};