summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBruno de Oliveira Abinader <bruno@mapbox.com>2016-06-18 15:32:49 +0300
committerBruno de Oliveira Abinader <bruno@mapbox.com>2016-06-20 13:24:20 +0300
commit76fc07c606fa62fefc1e2aa435a51a8b5fd384cd (patch)
treef95d3a09f6f58df952340809b104e25a6fb033a7 /src
parent760a692378a8ae7c9cc87246c10f2fe9a64117bd (diff)
downloadqtlocation-mapboxgl-76fc07c606fa62fefc1e2aa435a51a8b5fd384cd.tar.gz
[core] Autogenerate Shader name
Diffstat (limited to 'src')
-rw-r--r--src/mbgl/geometry/vao.cpp2
-rw-r--r--src/mbgl/geometry/vao.hpp12
-rw-r--r--src/mbgl/shader/circle_shader.cpp5
-rw-r--r--src/mbgl/shader/collision_box_shader.cpp5
-rw-r--r--src/mbgl/shader/icon_shader.cpp5
-rw-r--r--src/mbgl/shader/line_shader.cpp5
-rw-r--r--src/mbgl/shader/linepattern_shader.cpp5
-rw-r--r--src/mbgl/shader/linesdf_shader.cpp5
-rw-r--r--src/mbgl/shader/outline_shader.cpp5
-rw-r--r--src/mbgl/shader/outlinepattern_shader.cpp9
-rw-r--r--src/mbgl/shader/pattern_shader.cpp9
-rw-r--r--src/mbgl/shader/plain_shader.cpp5
-rw-r--r--src/mbgl/shader/raster_shader.cpp5
-rw-r--r--src/mbgl/shader/sdf_shader.cpp5
-rw-r--r--src/mbgl/shader/shader.cpp10
-rw-r--r--src/mbgl/shader/shader.hpp5
16 files changed, 37 insertions, 60 deletions
diff --git a/src/mbgl/geometry/vao.cpp b/src/mbgl/geometry/vao.cpp
index d797a11b41..30f5484896 100644
--- a/src/mbgl/geometry/vao.cpp
+++ b/src/mbgl/geometry/vao.cpp
@@ -31,7 +31,7 @@ void VertexArrayObject::bindVertexArrayObject(gl::ObjectStore& store) {
MBGL_CHECK_ERROR(gl::BindVertexArray(*vao));
}
-void VertexArrayObject::verifyBinding(Shader &shader, GLuint vertexBuffer, GLuint elementsBuffer,
+void VertexArrayObject::verifyBinding(Shader& shader, GLuint vertexBuffer, GLuint elementsBuffer,
GLbyte *offset) {
if (bound_shader != shader.getID()) {
throw std::runtime_error(std::string("trying to rebind VAO to another shader from " +
diff --git a/src/mbgl/geometry/vao.hpp b/src/mbgl/geometry/vao.hpp
index 6821be182a..aa0a72ec59 100644
--- a/src/mbgl/geometry/vao.hpp
+++ b/src/mbgl/geometry/vao.hpp
@@ -10,8 +10,6 @@
namespace mbgl {
-class Shader;
-
class VertexArrayObject : public util::noncopyable {
public:
static void Unbind();
@@ -19,8 +17,8 @@ public:
VertexArrayObject();
~VertexArrayObject();
- template <typename Shader, typename VertexBuffer>
- void bind(Shader& shader, VertexBuffer &vertexBuffer, GLbyte *offset, gl::ObjectStore& store) {
+ template <typename VertexBuffer>
+ void bind(Shader& shader, VertexBuffer& vertexBuffer, GLbyte* offset, gl::ObjectStore& store) {
bindVertexArrayObject(store);
if (bound_shader == 0) {
vertexBuffer.bind(store);
@@ -33,8 +31,8 @@ public:
}
}
- template <typename Shader, typename VertexBuffer, typename ElementsBuffer>
- void bind(Shader& shader, VertexBuffer &vertexBuffer, ElementsBuffer &elementsBuffer, GLbyte *offset, gl::ObjectStore& store) {
+ template <typename VertexBuffer, typename ElementsBuffer>
+ void bind(Shader& shader, VertexBuffer& vertexBuffer, ElementsBuffer& elementsBuffer, GLbyte* offset, gl::ObjectStore& store) {
bindVertexArrayObject(store);
if (bound_shader == 0) {
vertexBuffer.bind(store);
@@ -62,7 +60,7 @@ private:
// For debug reasons, we're storing the bind information so that we can
// detect errors and report
GLuint bound_shader = 0;
- const char *bound_shader_name = "";
+ const char* bound_shader_name = "";
GLuint bound_vertex_buffer = 0;
GLuint bound_elements_buffer = 0;
GLbyte *bound_offset = nullptr;
diff --git a/src/mbgl/shader/circle_shader.cpp b/src/mbgl/shader/circle_shader.cpp
index 2865769ee2..e1328bcbf1 100644
--- a/src/mbgl/shader/circle_shader.cpp
+++ b/src/mbgl/shader/circle_shader.cpp
@@ -3,12 +3,11 @@
#include <mbgl/shader/circle.fragment.hpp>
#include <mbgl/gl/gl.hpp>
-#include <cstdio>
-
using namespace mbgl;
+using namespace shaders::circle;
CircleShader::CircleShader(gl::ObjectStore& store)
- : Shader("circle", shaders::circle::vertex, shaders::circle::fragment, store) {
+ : Shader(::name, ::vertex, ::fragment, store) {
}
void CircleShader::bind(GLbyte* offset) {
diff --git a/src/mbgl/shader/collision_box_shader.cpp b/src/mbgl/shader/collision_box_shader.cpp
index cf4ff81e96..7d6473ee29 100644
--- a/src/mbgl/shader/collision_box_shader.cpp
+++ b/src/mbgl/shader/collision_box_shader.cpp
@@ -3,12 +3,11 @@
#include <mbgl/shader/collisionbox.fragment.hpp>
#include <mbgl/gl/gl.hpp>
-#include <cstdio>
-
using namespace mbgl;
+using namespace shaders::collisionbox;
CollisionBoxShader::CollisionBoxShader(gl::ObjectStore& store)
- : Shader("collisionbox", shaders::collisionbox::vertex, shaders::collisionbox::fragment, store)
+ : Shader(::name, ::vertex, ::fragment, store)
, a_extrude(MBGL_CHECK_ERROR(glGetAttribLocation(getID(), "a_extrude")))
, a_data(MBGL_CHECK_ERROR(glGetAttribLocation(getID(), "a_data"))) {
}
diff --git a/src/mbgl/shader/icon_shader.cpp b/src/mbgl/shader/icon_shader.cpp
index 7fb0335dc8..f4568e6c3d 100644
--- a/src/mbgl/shader/icon_shader.cpp
+++ b/src/mbgl/shader/icon_shader.cpp
@@ -3,12 +3,11 @@
#include <mbgl/shader/icon.fragment.hpp>
#include <mbgl/gl/gl.hpp>
-#include <cstdio>
-
using namespace mbgl;
+using namespace shaders::icon;
IconShader::IconShader(gl::ObjectStore& store)
- : Shader("icon", shaders::icon::vertex, shaders::icon::fragment, store)
+ : Shader(::name, ::vertex, ::fragment, store)
, a_offset(MBGL_CHECK_ERROR(glGetAttribLocation(getID(), "a_offset")))
, a_data1(MBGL_CHECK_ERROR(glGetAttribLocation(getID(), "a_data1")))
, a_data2(MBGL_CHECK_ERROR(glGetAttribLocation(getID(), "a_data2"))) {
diff --git a/src/mbgl/shader/line_shader.cpp b/src/mbgl/shader/line_shader.cpp
index f21384082f..729b34d557 100644
--- a/src/mbgl/shader/line_shader.cpp
+++ b/src/mbgl/shader/line_shader.cpp
@@ -3,12 +3,11 @@
#include <mbgl/shader/line.fragment.hpp>
#include <mbgl/gl/gl.hpp>
-#include <cstdio>
-
using namespace mbgl;
+using namespace shaders::line;
LineShader::LineShader(gl::ObjectStore& store)
- : Shader("line", shaders::line::vertex, shaders::line::fragment, store)
+ : Shader(::name, ::vertex, ::fragment, store)
, a_data(MBGL_CHECK_ERROR(glGetAttribLocation(getID(), "a_data"))) {
}
diff --git a/src/mbgl/shader/linepattern_shader.cpp b/src/mbgl/shader/linepattern_shader.cpp
index a9923233af..dc970a5661 100644
--- a/src/mbgl/shader/linepattern_shader.cpp
+++ b/src/mbgl/shader/linepattern_shader.cpp
@@ -3,12 +3,11 @@
#include <mbgl/shader/linepattern.fragment.hpp>
#include <mbgl/gl/gl.hpp>
-#include <cstdio>
-
using namespace mbgl;
+using namespace shaders::linepattern;
LinepatternShader::LinepatternShader(gl::ObjectStore& store)
- : Shader("linepattern", shaders::linepattern::vertex, shaders::linepattern::fragment, store)
+ : Shader(::name, ::vertex, ::fragment, store)
, a_data(MBGL_CHECK_ERROR(glGetAttribLocation(getID(), "a_data"))) {
}
diff --git a/src/mbgl/shader/linesdf_shader.cpp b/src/mbgl/shader/linesdf_shader.cpp
index b316d2562d..29b67f4de5 100644
--- a/src/mbgl/shader/linesdf_shader.cpp
+++ b/src/mbgl/shader/linesdf_shader.cpp
@@ -3,12 +3,11 @@
#include <mbgl/shader/linesdfpattern.fragment.hpp>
#include <mbgl/gl/gl.hpp>
-#include <cstdio>
-
using namespace mbgl;
+using namespace shaders::linesdfpattern;
LineSDFShader::LineSDFShader(gl::ObjectStore& store)
- : Shader("linesdfpattern", shaders::linesdfpattern::vertex, shaders::linesdfpattern::fragment, store)
+ : Shader(::name, ::vertex, ::fragment, store)
, a_data(MBGL_CHECK_ERROR(glGetAttribLocation(getID(), "a_data"))) {
}
diff --git a/src/mbgl/shader/outline_shader.cpp b/src/mbgl/shader/outline_shader.cpp
index 58a647f375..09aff361c3 100644
--- a/src/mbgl/shader/outline_shader.cpp
+++ b/src/mbgl/shader/outline_shader.cpp
@@ -3,12 +3,11 @@
#include <mbgl/shader/outline.fragment.hpp>
#include <mbgl/gl/gl.hpp>
-#include <cstdio>
-
using namespace mbgl;
+using namespace shaders::outline;
OutlineShader::OutlineShader(gl::ObjectStore& store)
- : Shader("outline", shaders::outline::vertex, shaders::outline::fragment, store) {
+ : Shader(::name, ::vertex, ::fragment, store) {
}
void OutlineShader::bind(GLbyte* offset) {
diff --git a/src/mbgl/shader/outlinepattern_shader.cpp b/src/mbgl/shader/outlinepattern_shader.cpp
index 5ffa458a4f..0af8558587 100644
--- a/src/mbgl/shader/outlinepattern_shader.cpp
+++ b/src/mbgl/shader/outlinepattern_shader.cpp
@@ -3,16 +3,11 @@
#include <mbgl/shader/outlinepattern.fragment.hpp>
#include <mbgl/gl/gl.hpp>
-#include <cstdio>
-
using namespace mbgl;
+using namespace shaders::outlinepattern;
OutlinePatternShader::OutlinePatternShader(gl::ObjectStore& store)
- : Shader(
- "outlinepattern",
- shaders::outlinepattern::vertex, shaders::outlinepattern::fragment,
- store
- ) {
+ : Shader(::name, ::vertex, ::fragment, store) {
}
void OutlinePatternShader::bind(GLbyte *offset) {
diff --git a/src/mbgl/shader/pattern_shader.cpp b/src/mbgl/shader/pattern_shader.cpp
index 64a72d1451..a7ddc681d4 100644
--- a/src/mbgl/shader/pattern_shader.cpp
+++ b/src/mbgl/shader/pattern_shader.cpp
@@ -3,16 +3,11 @@
#include <mbgl/shader/pattern.fragment.hpp>
#include <mbgl/gl/gl.hpp>
-#include <cstdio>
-
using namespace mbgl;
+using namespace shaders::pattern;
PatternShader::PatternShader(gl::ObjectStore& store)
- : Shader(
- "pattern",
- shaders::pattern::vertex, shaders::pattern::fragment,
- store
- ) {
+ : Shader(::name, ::vertex, ::fragment, store) {
}
void PatternShader::bind(GLbyte *offset) {
diff --git a/src/mbgl/shader/plain_shader.cpp b/src/mbgl/shader/plain_shader.cpp
index c030a2d7b3..257f49e1e2 100644
--- a/src/mbgl/shader/plain_shader.cpp
+++ b/src/mbgl/shader/plain_shader.cpp
@@ -3,12 +3,11 @@
#include <mbgl/shader/fill.fragment.hpp>
#include <mbgl/gl/gl.hpp>
-#include <cstdio>
-
using namespace mbgl;
+using namespace shaders::fill;
PlainShader::PlainShader(gl::ObjectStore& store)
- : Shader("fill", shaders::fill::vertex, shaders::fill::fragment, store) {
+ : Shader(::name, ::vertex, ::fragment, store) {
}
void PlainShader::bind(GLbyte* offset) {
diff --git a/src/mbgl/shader/raster_shader.cpp b/src/mbgl/shader/raster_shader.cpp
index e5e290bedd..b310212731 100644
--- a/src/mbgl/shader/raster_shader.cpp
+++ b/src/mbgl/shader/raster_shader.cpp
@@ -3,12 +3,11 @@
#include <mbgl/shader/raster.fragment.hpp>
#include <mbgl/gl/gl.hpp>
-#include <cstdio>
-
using namespace mbgl;
+using namespace shaders::raster;
RasterShader::RasterShader(gl::ObjectStore& store)
- : Shader("raster", shaders::raster::vertex, shaders::raster::fragment, store) {
+ : Shader(::name, ::vertex, ::fragment, store) {
}
void RasterShader::bind(GLbyte* offset) {
diff --git a/src/mbgl/shader/sdf_shader.cpp b/src/mbgl/shader/sdf_shader.cpp
index 76ea1e3b4d..1a08bef16e 100644
--- a/src/mbgl/shader/sdf_shader.cpp
+++ b/src/mbgl/shader/sdf_shader.cpp
@@ -3,12 +3,11 @@
#include <mbgl/shader/sdf.fragment.hpp>
#include <mbgl/gl/gl.hpp>
-#include <cstdio>
-
using namespace mbgl;
+using namespace shaders::sdf;
SDFShader::SDFShader(gl::ObjectStore& store)
- : Shader("sdf", shaders::sdf::vertex, shaders::sdf::fragment, store)
+ : Shader(::name, ::vertex, ::fragment, store)
, a_offset(MBGL_CHECK_ERROR(glGetAttribLocation(getID(), "a_offset")))
, a_data1(MBGL_CHECK_ERROR(glGetAttribLocation(getID(), "a_data1")))
, a_data2(MBGL_CHECK_ERROR(glGetAttribLocation(getID(), "a_data2"))) {
diff --git a/src/mbgl/shader/shader.cpp b/src/mbgl/shader/shader.cpp
index 23ea043720..e2c7776e4d 100644
--- a/src/mbgl/shader/shader.cpp
+++ b/src/mbgl/shader/shader.cpp
@@ -13,7 +13,7 @@
namespace mbgl {
-Shader::Shader(const char *name_, const GLchar *vertSource, const GLchar *fragSource, gl::ObjectStore& store)
+Shader::Shader(const char* name_, const char* vertexSource, const char* fragmentSource, gl::ObjectStore& store)
: name(name_)
, program(store.createProgram())
, vertexShader(store.createShader(GL_VERTEX_SHADER))
@@ -21,13 +21,13 @@ Shader::Shader(const char *name_, const GLchar *vertSource, const GLchar *fragSo
{
util::stopwatch stopwatch("shader compilation", Event::Shader);
- if (!compileShader(vertexShader, &vertSource)) {
- Log::Error(Event::Shader, "Vertex shader %s failed to compile: %s", name, vertSource);
+ if (!compileShader(vertexShader, &vertexSource)) {
+ Log::Error(Event::Shader, "Vertex shader %s failed to compile: %s", name, vertexSource);
throw util::ShaderException(std::string { "Vertex shader " } + name + " failed to compile");
}
- if (!compileShader(fragmentShader, &fragSource)) {
- Log::Error(Event::Shader, "Fragment shader %s failed to compile: %s", name, fragSource);
+ if (!compileShader(fragmentShader, &fragmentSource)) {
+ Log::Error(Event::Shader, "Fragment shader %s failed to compile: %s", name, fragmentSource);
throw util::ShaderException(std::string { "Fragment shader " } + name + " failed to compile");
}
diff --git a/src/mbgl/shader/shader.hpp b/src/mbgl/shader/shader.hpp
index 1cb2a5601f..3ba1e044c7 100644
--- a/src/mbgl/shader/shader.hpp
+++ b/src/mbgl/shader/shader.hpp
@@ -8,10 +8,8 @@ namespace mbgl {
class Shader : private util::noncopyable {
public:
- Shader(const GLchar *name, const GLchar *vertex, const GLchar *fragment, gl::ObjectStore&);
-
~Shader();
- const GLchar *name;
+ const char* name;
GLuint getID() const {
return program.get();
@@ -20,6 +18,7 @@ public:
virtual void bind(GLbyte *offset) = 0;
protected:
+ Shader(const char* name_, const char* vertex, const char* fragment, gl::ObjectStore&);
GLint a_pos = -1;
private: