summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer
diff options
context:
space:
mode:
authorBruno de Oliveira Abinader <bruno@mapbox.com>2015-09-10 14:46:38 +0300
committerBruno de Oliveira Abinader <bruno@mapbox.com>2015-09-14 11:29:49 +0300
commit2156aa35ca96f9dd05166fd6b012f09eaaa5b934 (patch)
treebad8f28c5cc29c81761c11eceed4bd2258af2375 /src/mbgl/renderer
parent8d6b9696bf3cea0cf8c3beaf9dfb48c7d376d925 (diff)
downloadqtlocation-mapboxgl-2156aa35ca96f9dd05166fd6b012f09eaaa5b934.tar.gz
[shader] bind() is now a pure virtual
- Shader::bind() now receives a GLbyte* - BUFFER_OFFSET now uses GLbyte
Diffstat (limited to 'src/mbgl/renderer')
-rw-r--r--src/mbgl/renderer/bucket.hpp4
-rw-r--r--src/mbgl/renderer/circle_bucket.cpp4
-rw-r--r--src/mbgl/renderer/debug_bucket.cpp4
-rw-r--r--src/mbgl/renderer/fill_bucket.cpp12
-rw-r--r--src/mbgl/renderer/line_bucket.cpp12
-rw-r--r--src/mbgl/renderer/painter_clipping.cpp2
-rw-r--r--src/mbgl/renderer/painter_debug.cpp2
-rw-r--r--src/mbgl/renderer/raster_bucket.cpp2
-rw-r--r--src/mbgl/renderer/symbol_bucket.cpp14
9 files changed, 29 insertions, 27 deletions
diff --git a/src/mbgl/renderer/bucket.hpp b/src/mbgl/renderer/bucket.hpp
index eb02f32ebc..a1dbdeeed7 100644
--- a/src/mbgl/renderer/bucket.hpp
+++ b/src/mbgl/renderer/bucket.hpp
@@ -1,13 +1,15 @@
#ifndef MBGL_RENDERER_BUCKET
#define MBGL_RENDERER_BUCKET
+#include <mbgl/platform/gl.hpp>
#include <mbgl/renderer/render_pass.hpp>
#include <mbgl/util/noncopyable.hpp>
#include <mbgl/util/mat4.hpp>
#include <atomic>
-#define BUFFER_OFFSET(i) ((char*)nullptr + (i))
+#define BUFFER_OFFSET_0 ((GLbyte*)nullptr)
+#define BUFFER_OFFSET(i) ((BUFFER_OFFSET_0) + (i))
namespace mbgl {
diff --git a/src/mbgl/renderer/circle_bucket.cpp b/src/mbgl/renderer/circle_bucket.cpp
index fde04df29a..a6a439d862 100644
--- a/src/mbgl/renderer/circle_bucket.cpp
+++ b/src/mbgl/renderer/circle_bucket.cpp
@@ -74,8 +74,8 @@ void CircleBucket::addGeometry(const GeometryCollection& geometryCollection) {
}
void CircleBucket::drawCircles(CircleShader& shader) {
- char* vertexIndex = BUFFER_OFFSET(vertexStart_ * vertexBuffer_.itemSize);
- char* elementsIndex = BUFFER_OFFSET(elementsStart_ * elementsBuffer_.itemSize);
+ GLbyte *vertexIndex = BUFFER_OFFSET(vertexStart_ * vertexBuffer_.itemSize);
+ GLbyte *elementsIndex = BUFFER_OFFSET(elementsStart_ * elementsBuffer_.itemSize);
for (auto& group : triangleGroups_) {
assert(group);
diff --git a/src/mbgl/renderer/debug_bucket.cpp b/src/mbgl/renderer/debug_bucket.cpp
index 1d9b9fb6d6..161412f0dc 100644
--- a/src/mbgl/renderer/debug_bucket.cpp
+++ b/src/mbgl/renderer/debug_bucket.cpp
@@ -23,11 +23,11 @@ void DebugBucket::render(Painter& painter, const StyleLayer&, const TileID&, con
}
void DebugBucket::drawLines(PlainShader& shader) {
- array.bind(shader, fontBuffer, BUFFER_OFFSET(0));
+ array.bind(shader, fontBuffer, BUFFER_OFFSET_0);
MBGL_CHECK_ERROR(glDrawArrays(GL_LINES, 0, (GLsizei)(fontBuffer.index())));
}
void DebugBucket::drawPoints(PlainShader& shader) {
- array.bind(shader, fontBuffer, BUFFER_OFFSET(0));
+ array.bind(shader, fontBuffer, BUFFER_OFFSET_0);
MBGL_CHECK_ERROR(glDrawArrays(GL_POINTS, 0, (GLsizei)(fontBuffer.index())));
}
diff --git a/src/mbgl/renderer/fill_bucket.cpp b/src/mbgl/renderer/fill_bucket.cpp
index 151e4c4a4f..1828ae0a2d 100644
--- a/src/mbgl/renderer/fill_bucket.cpp
+++ b/src/mbgl/renderer/fill_bucket.cpp
@@ -216,8 +216,8 @@ bool FillBucket::hasData() const {
}
void FillBucket::drawElements(PlainShader& shader) {
- char *vertex_index = BUFFER_OFFSET(vertex_start * vertexBuffer.itemSize);
- char *elements_index = BUFFER_OFFSET(triangle_elements_start * triangleElementsBuffer.itemSize);
+ GLbyte *vertex_index = BUFFER_OFFSET(vertex_start * vertexBuffer.itemSize);
+ GLbyte *elements_index = BUFFER_OFFSET(triangle_elements_start * triangleElementsBuffer.itemSize);
for (auto& group : triangleGroups) {
assert(group);
group->array[0].bind(shader, vertexBuffer, triangleElementsBuffer, vertex_index);
@@ -228,8 +228,8 @@ void FillBucket::drawElements(PlainShader& shader) {
}
void FillBucket::drawElements(PatternShader& shader) {
- char *vertex_index = BUFFER_OFFSET(vertex_start * vertexBuffer.itemSize);
- char *elements_index = BUFFER_OFFSET(triangle_elements_start * triangleElementsBuffer.itemSize);
+ GLbyte *vertex_index = BUFFER_OFFSET(vertex_start * vertexBuffer.itemSize);
+ GLbyte *elements_index = BUFFER_OFFSET(triangle_elements_start * triangleElementsBuffer.itemSize);
for (auto& group : triangleGroups) {
assert(group);
group->array[1].bind(shader, vertexBuffer, triangleElementsBuffer, vertex_index);
@@ -240,8 +240,8 @@ void FillBucket::drawElements(PatternShader& shader) {
}
void FillBucket::drawVertices(OutlineShader& shader) {
- char *vertex_index = BUFFER_OFFSET(vertex_start * vertexBuffer.itemSize);
- char *elements_index = BUFFER_OFFSET(line_elements_start * lineElementsBuffer.itemSize);
+ GLbyte *vertex_index = BUFFER_OFFSET(vertex_start * vertexBuffer.itemSize);
+ GLbyte *elements_index = BUFFER_OFFSET(line_elements_start * lineElementsBuffer.itemSize);
for (auto& group : lineGroups) {
assert(group);
group->array[0].bind(shader, vertexBuffer, lineElementsBuffer, vertex_index);
diff --git a/src/mbgl/renderer/line_bucket.cpp b/src/mbgl/renderer/line_bucket.cpp
index 24bda6d0a9..f0d52fa51c 100644
--- a/src/mbgl/renderer/line_bucket.cpp
+++ b/src/mbgl/renderer/line_bucket.cpp
@@ -405,8 +405,8 @@ bool LineBucket::hasData() const {
}
void LineBucket::drawLines(LineShader& shader) {
- char* vertex_index = BUFFER_OFFSET(vertex_start * vertexBuffer.itemSize);
- char* elements_index = BUFFER_OFFSET(triangle_elements_start * triangleElementsBuffer.itemSize);
+ GLbyte* vertex_index = BUFFER_OFFSET(vertex_start * vertexBuffer.itemSize);
+ GLbyte* elements_index = BUFFER_OFFSET(triangle_elements_start * triangleElementsBuffer.itemSize);
for (auto& group : triangleGroups) {
assert(group);
if (!group->elements_length) {
@@ -421,8 +421,8 @@ void LineBucket::drawLines(LineShader& shader) {
}
void LineBucket::drawLineSDF(LineSDFShader& shader) {
- char* vertex_index = BUFFER_OFFSET(vertex_start * vertexBuffer.itemSize);
- char* elements_index = BUFFER_OFFSET(triangle_elements_start * triangleElementsBuffer.itemSize);
+ GLbyte* vertex_index = BUFFER_OFFSET(vertex_start * vertexBuffer.itemSize);
+ GLbyte* elements_index = BUFFER_OFFSET(triangle_elements_start * triangleElementsBuffer.itemSize);
for (auto& group : triangleGroups) {
assert(group);
if (!group->elements_length) {
@@ -437,8 +437,8 @@ void LineBucket::drawLineSDF(LineSDFShader& shader) {
}
void LineBucket::drawLinePatterns(LinepatternShader& shader) {
- char* vertex_index = BUFFER_OFFSET(vertex_start * vertexBuffer.itemSize);
- char* elements_index = BUFFER_OFFSET(triangle_elements_start * triangleElementsBuffer.itemSize);
+ GLbyte* vertex_index = BUFFER_OFFSET(vertex_start * vertexBuffer.itemSize);
+ GLbyte* elements_index = BUFFER_OFFSET(triangle_elements_start * triangleElementsBuffer.itemSize);
for (auto& group : triangleGroups) {
assert(group);
if (!group->elements_length) {
diff --git a/src/mbgl/renderer/painter_clipping.cpp b/src/mbgl/renderer/painter_clipping.cpp
index 332d2876f5..59e40fefe5 100644
--- a/src/mbgl/renderer/painter_clipping.cpp
+++ b/src/mbgl/renderer/painter_clipping.cpp
@@ -16,7 +16,7 @@ void Painter::drawClippingMasks(const std::set<Source*>& sources) {
config.colorMask = { false, false, false, false };
config.depthRange = { 1.0f, 1.0f };
- coveringPlainArray.bind(*plainShader, tileStencilBuffer, BUFFER_OFFSET(0));
+ coveringPlainArray.bind(*plainShader, tileStencilBuffer, BUFFER_OFFSET_0);
for (const auto& source : sources) {
source->drawClippingMasks(*this);
diff --git a/src/mbgl/renderer/painter_debug.cpp b/src/mbgl/renderer/painter_debug.cpp
index f4f3a19cba..bc40553244 100644
--- a/src/mbgl/renderer/painter_debug.cpp
+++ b/src/mbgl/renderer/painter_debug.cpp
@@ -59,7 +59,7 @@ void Painter::renderDebugFrame(const mat4 &matrix) {
plainShader->u_matrix = matrix;
// draw tile outline
- tileBorderArray.bind(*plainShader, tileBorderBuffer, BUFFER_OFFSET(0));
+ tileBorderArray.bind(*plainShader, tileBorderBuffer, BUFFER_OFFSET_0);
plainShader->u_color = {{ 1.0f, 0.0f, 0.0f, 1.0f }};
lineWidth(4.0f * data.pixelRatio);
MBGL_CHECK_ERROR(glDrawArrays(GL_LINE_STRIP, 0, (GLsizei)tileBorderBuffer.index()));
diff --git a/src/mbgl/renderer/raster_bucket.cpp b/src/mbgl/renderer/raster_bucket.cpp
index 70cc1065d9..cf72f860a7 100644
--- a/src/mbgl/renderer/raster_bucket.cpp
+++ b/src/mbgl/renderer/raster_bucket.cpp
@@ -30,7 +30,7 @@ bool RasterBucket::setImage(std::unique_ptr<util::Image> image) {
void RasterBucket::drawRaster(RasterShader& shader, StaticVertexBuffer &vertices, VertexArrayObject &array) {
raster.bind(true);
shader.u_image = 0;
- array.bind(shader, vertices, BUFFER_OFFSET(0));
+ array.bind(shader, vertices, BUFFER_OFFSET_0);
MBGL_CHECK_ERROR(glDrawArrays(GL_TRIANGLES, 0, (GLsizei)vertices.index()));
}
diff --git a/src/mbgl/renderer/symbol_bucket.cpp b/src/mbgl/renderer/symbol_bucket.cpp
index 7665fd9a6d..11b3bf3d0f 100644
--- a/src/mbgl/renderer/symbol_bucket.cpp
+++ b/src/mbgl/renderer/symbol_bucket.cpp
@@ -565,8 +565,8 @@ void SymbolBucket::swapRenderData() {
}
void SymbolBucket::drawGlyphs(SDFShader &shader) {
- char *vertex_index = BUFFER_OFFSET(0);
- char *elements_index = BUFFER_OFFSET(0);
+ GLbyte *vertex_index = BUFFER_OFFSET_0;
+ GLbyte *elements_index = BUFFER_OFFSET_0;
auto& text = renderData->text;
for (auto &group : text.groups) {
assert(group);
@@ -578,8 +578,8 @@ void SymbolBucket::drawGlyphs(SDFShader &shader) {
}
void SymbolBucket::drawIcons(SDFShader &shader) {
- char *vertex_index = BUFFER_OFFSET(0);
- char *elements_index = BUFFER_OFFSET(0);
+ GLbyte *vertex_index = BUFFER_OFFSET_0;
+ GLbyte *elements_index = BUFFER_OFFSET_0;
auto& icon = renderData->icon;
for (auto &group : icon.groups) {
assert(group);
@@ -591,8 +591,8 @@ void SymbolBucket::drawIcons(SDFShader &shader) {
}
void SymbolBucket::drawIcons(IconShader &shader) {
- char *vertex_index = BUFFER_OFFSET(0);
- char *elements_index = BUFFER_OFFSET(0);
+ GLbyte *vertex_index = BUFFER_OFFSET_0;
+ GLbyte *elements_index = BUFFER_OFFSET_0;
auto& icon = renderData->icon;
for (auto &group : icon.groups) {
assert(group);
@@ -604,7 +604,7 @@ void SymbolBucket::drawIcons(IconShader &shader) {
}
void SymbolBucket::drawCollisionBoxes(CollisionBoxShader &shader) {
- char *vertex_index = BUFFER_OFFSET(0);
+ GLbyte *vertex_index = BUFFER_OFFSET_0;
auto& collisionBox = renderData->collisionBox;
for (auto &group : collisionBox.groups) {
group->array[0].bind(shader, collisionBox.vertices, vertex_index);