diff options
author | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2016-02-14 13:17:59 +0200 |
---|---|---|
committer | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2016-02-18 13:27:35 +0200 |
commit | 0386dc7a4ea9badffb6298781c8870bfa4fbf49b (patch) | |
tree | 966c6ce3a88821b8525e4e35dc7f483416c4ee4c /src | |
parent | ee72e93f94c7b9ea20144287bcd473d35f07e9ed (diff) | |
download | qtlocation-mapboxgl-0386dc7a4ea9badffb6298781c8870bfa4fbf49b.tar.gz |
[gl] Use Shader::getID() whenever possible
Diffstat (limited to 'src')
-rw-r--r-- | src/mbgl/renderer/painter.cpp | 4 | ||||
-rw-r--r-- | src/mbgl/renderer/painter_circle.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/renderer/painter_clipping.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/renderer/painter_debug.cpp | 4 | ||||
-rw-r--r-- | src/mbgl/renderer/painter_fill.cpp | 8 | ||||
-rw-r--r-- | src/mbgl/renderer/painter_line.cpp | 6 | ||||
-rw-r--r-- | src/mbgl/renderer/painter_raster.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/renderer/painter_symbol.cpp | 6 | ||||
-rw-r--r-- | src/mbgl/shader/box_shader.cpp | 4 | ||||
-rw-r--r-- | src/mbgl/shader/icon_shader.cpp | 6 | ||||
-rw-r--r-- | src/mbgl/shader/line_shader.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/shader/linepattern_shader.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/shader/linesdf_shader.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/shader/sdf_shader.cpp | 6 | ||||
-rw-r--r-- | src/mbgl/shader/uniform.hpp | 6 |
15 files changed, 32 insertions, 30 deletions
diff --git a/src/mbgl/renderer/painter.cpp b/src/mbgl/renderer/painter.cpp index 1ade5c0396..ccee950c73 100644 --- a/src/mbgl/renderer/painter.cpp +++ b/src/mbgl/renderer/painter.cpp @@ -270,7 +270,7 @@ void Painter::renderBackground(const BackgroundLayer& layer) { float zoomFraction = state.getZoomFraction(); - config.program = patternShader->program; + config.program = patternShader->getID(); patternShader->u_matrix = identityMatrix; patternShader->u_pattern_tl_a = (*imagePosA).tl; patternShader->u_pattern_br_a = (*imagePosA).br; @@ -325,7 +325,7 @@ void Painter::renderBackground(const BackgroundLayer& layer) { color[2] *= properties.opacity; color[3] *= properties.opacity; - config.program = plainShader->program; + config.program = plainShader->getID(); plainShader->u_matrix = identityMatrix; plainShader->u_color = color; backgroundArray.bind(*plainShader, backgroundBuffer, BUFFER_OFFSET(0)); diff --git a/src/mbgl/renderer/painter_circle.cpp b/src/mbgl/renderer/painter_circle.cpp index 9518cf9e39..9965e3ab7a 100644 --- a/src/mbgl/renderer/painter_circle.cpp +++ b/src/mbgl/renderer/painter_circle.cpp @@ -38,7 +38,7 @@ void Painter::renderCircle(CircleBucket& bucket, // are inversely related. float antialiasing = 1 / data.pixelRatio / properties.radius; - config.program = circleShader->program; + config.program = circleShader->getID(); circleShader->u_matrix = vtxMatrix; circleShader->u_exmatrix = extrudeMatrix; diff --git a/src/mbgl/renderer/painter_clipping.cpp b/src/mbgl/renderer/painter_clipping.cpp index 3dfe8101db..f3f8a647d4 100644 --- a/src/mbgl/renderer/painter_clipping.cpp +++ b/src/mbgl/renderer/painter_clipping.cpp @@ -13,7 +13,7 @@ void Painter::drawClippingMasks(const std::map<TileID, ClipID>& stencils) { mat4 matrix; const GLuint mask = 0b11111111; - config.program = plainShader->program; + config.program = plainShader->getID(); config.stencilOp.reset(); config.stencilTest = GL_TRUE; config.depthTest = GL_FALSE; diff --git a/src/mbgl/renderer/painter_debug.cpp b/src/mbgl/renderer/painter_debug.cpp index a4b5ca1788..756c5e41ea 100644 --- a/src/mbgl/renderer/painter_debug.cpp +++ b/src/mbgl/renderer/painter_debug.cpp @@ -33,7 +33,7 @@ void Painter::renderDebugText(TileData& tileData, const mat4 &matrix) { tileData.debugBucket = std::make_unique<DebugBucket>(tileData.id, tileData.getState(), tileData.modified, tileData.expires, data.getDebug()); } - config.program = plainShader->program; + config.program = plainShader->getID(); plainShader->u_matrix = matrix; // Draw white outline @@ -66,7 +66,7 @@ void Painter::renderDebugFrame(const mat4 &matrix) { config.stencilOp.reset(); config.stencilTest = GL_TRUE; - config.program = plainShader->program; + config.program = plainShader->getID(); plainShader->u_matrix = matrix; // draw tile outline diff --git a/src/mbgl/renderer/painter_fill.cpp b/src/mbgl/renderer/painter_fill.cpp index 44ae1919a0..28f64c1baf 100644 --- a/src/mbgl/renderer/painter_fill.cpp +++ b/src/mbgl/renderer/painter_fill.cpp @@ -44,7 +44,7 @@ void Painter::renderFill(FillBucket& bucket, const FillLayer& layer, const TileI // Because we're drawing top-to-bottom, and we update the stencil mask // befrom, we have to draw the outline first (!) if (outline && pass == RenderPass::Translucent) { - config.program = outlineShader->program; + config.program = outlineShader->getID(); outlineShader->u_matrix = vtxMatrix; config.lineWidth = 2.0f; // This is always fixed and does not depend on the pixelRatio! @@ -78,7 +78,7 @@ void Painter::renderFill(FillBucket& bucket, const FillLayer& layer, const TileI 1.0f / ((*posB).size[0] * factor * properties.pattern.value.toScale), 1.0f / ((*posB).size[1] * factor * properties.pattern.value.toScale)); - config.program = patternShader->program; + config.program = patternShader->getID(); patternShader->u_matrix = vtxMatrix; patternShader->u_pattern_tl_a = (*posA).tl; patternShader->u_pattern_br_a = (*posA).br; @@ -125,7 +125,7 @@ void Painter::renderFill(FillBucket& bucket, const FillLayer& layer, const TileI // fragments or when it's translucent and we're drawing translucent // fragments // Draw filling rectangle. - config.program = plainShader->program; + config.program = plainShader->getID(); plainShader->u_matrix = vtxMatrix; plainShader->u_color = fill_color; @@ -138,7 +138,7 @@ void Painter::renderFill(FillBucket& bucket, const FillLayer& layer, const TileI // Because we're drawing top-to-bottom, and we update the stencil mask // below, we have to draw the outline first (!) if (fringeline && pass == RenderPass::Translucent) { - config.program = outlineShader->program; + config.program = outlineShader->getID(); outlineShader->u_matrix = vtxMatrix; config.lineWidth = 2.0f; // This is always fixed and does not depend on the pixelRatio! diff --git a/src/mbgl/renderer/painter_line.cpp b/src/mbgl/renderer/painter_line.cpp index dd2833b117..c17beb3f6b 100644 --- a/src/mbgl/renderer/painter_line.cpp +++ b/src/mbgl/renderer/painter_line.cpp @@ -70,7 +70,7 @@ void Painter::renderLine(LineBucket& bucket, const LineLayer& layer, const TileI if (!properties.dasharray.value.from.empty()) { - config.program = linesdfShader->program; + config.program = linesdfShader->getID(); linesdfShader->u_matrix = vtxMatrix; linesdfShader->u_exmatrix = extrudeMatrix; @@ -113,7 +113,7 @@ void Painter::renderLine(LineBucket& bucket, const LineLayer& layer, const TileI float factor = util::EXTENT / (512 * id.overscaling) / std::pow(2, state.getIntegerZoom() - id.z); - config.program = linepatternShader->program; + config.program = linepatternShader->getID(); linepatternShader->u_matrix = vtxMatrix; linepatternShader->u_exmatrix = extrudeMatrix; @@ -139,7 +139,7 @@ void Painter::renderLine(LineBucket& bucket, const LineLayer& layer, const TileI bucket.drawLinePatterns(*linepatternShader); } else { - config.program = lineShader->program; + config.program = lineShader->getID(); lineShader->u_matrix = vtxMatrix; lineShader->u_exmatrix = extrudeMatrix; diff --git a/src/mbgl/renderer/painter_raster.cpp b/src/mbgl/renderer/painter_raster.cpp index 2cce1f7b18..f921ceefc2 100644 --- a/src/mbgl/renderer/painter_raster.cpp +++ b/src/mbgl/renderer/painter_raster.cpp @@ -12,7 +12,7 @@ void Painter::renderRaster(RasterBucket& bucket, const RasterLayer& layer, const const RasterPaintProperties& properties = layer.paint; if (bucket.hasData()) { - config.program = rasterShader->program; + config.program = rasterShader->getID(); rasterShader->u_matrix = matrix; rasterShader->u_buffer = 0; rasterShader->u_opacity = properties.opacity; diff --git a/src/mbgl/renderer/painter_symbol.cpp b/src/mbgl/renderer/painter_symbol.cpp index 81d35cd50c..c2bb1e757f 100644 --- a/src/mbgl/renderer/painter_symbol.cpp +++ b/src/mbgl/renderer/painter_symbol.cpp @@ -49,7 +49,7 @@ void Painter::renderSDF(SymbolBucket &bucket, float fontScale = fontSize / sdfFontSize; matrix::scale(exMatrix, exMatrix, fontScale, fontScale, 1.0f); - config.program = sdfShader.program; + config.program = sdfShader.getID(); sdfShader.u_matrix = vtxMatrix; sdfShader.u_exmatrix = exMatrix; sdfShader.u_texsize = texsize; @@ -211,7 +211,7 @@ void Painter::renderSymbol(SymbolBucket& bucket, const SymbolLayer& layer, const float x = state.getHeight() / 2.0f * std::tan(state.getPitch()); float extra = (topedgelength + x) / topedgelength - 1; - config.program = iconShader->program; + config.program = iconShader->getID(); iconShader->u_matrix = vtxMatrix; iconShader->u_exmatrix = exMatrix; iconShader->u_texsize = {{ float(activeSpriteAtlas->getWidth()) / 4.0f, float(activeSpriteAtlas->getHeight()) / 4.0f }}; @@ -259,7 +259,7 @@ void Painter::renderSymbol(SymbolBucket& bucket, const SymbolLayer& layer, const config.stencilOp.reset(); config.stencilTest = GL_TRUE; - config.program = collisionBoxShader->program; + config.program = collisionBoxShader->getID(); collisionBoxShader->u_matrix = matrix; collisionBoxShader->u_scale = std::pow(2, state.getZoom() - id.z); collisionBoxShader->u_zoom = state.getZoom() * 10; diff --git a/src/mbgl/shader/box_shader.cpp b/src/mbgl/shader/box_shader.cpp index c9cd9bf091..59fd104f83 100644 --- a/src/mbgl/shader/box_shader.cpp +++ b/src/mbgl/shader/box_shader.cpp @@ -9,8 +9,8 @@ using namespace mbgl; CollisionBoxShader::CollisionBoxShader() : Shader("collisionbox", shaders::box::vertex, shaders::box::fragment) { - a_extrude = MBGL_CHECK_ERROR(glGetAttribLocation(program, "a_extrude")); - a_data = MBGL_CHECK_ERROR(glGetAttribLocation(program, "a_data")); + a_extrude = MBGL_CHECK_ERROR(glGetAttribLocation(getID(), "a_extrude")); + a_data = MBGL_CHECK_ERROR(glGetAttribLocation(getID(), "a_data")); } void CollisionBoxShader::bind(GLbyte *offset) { diff --git a/src/mbgl/shader/icon_shader.cpp b/src/mbgl/shader/icon_shader.cpp index 28d84853de..609f2bb293 100644 --- a/src/mbgl/shader/icon_shader.cpp +++ b/src/mbgl/shader/icon_shader.cpp @@ -8,9 +8,9 @@ using namespace mbgl; IconShader::IconShader() : Shader("icon", shaders::icon::vertex, shaders::icon::fragment) { - a_offset = MBGL_CHECK_ERROR(glGetAttribLocation(program, "a_offset")); - a_data1 = MBGL_CHECK_ERROR(glGetAttribLocation(program, "a_data1")); - a_data2 = MBGL_CHECK_ERROR(glGetAttribLocation(program, "a_data2")); + 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")); } void IconShader::bind(GLbyte* offset) { diff --git a/src/mbgl/shader/line_shader.cpp b/src/mbgl/shader/line_shader.cpp index 12790de00a..e0dc5384b5 100644 --- a/src/mbgl/shader/line_shader.cpp +++ b/src/mbgl/shader/line_shader.cpp @@ -8,7 +8,7 @@ using namespace mbgl; LineShader::LineShader() : Shader("line", shaders::line::vertex, shaders::line::fragment) { - a_data = MBGL_CHECK_ERROR(glGetAttribLocation(program, "a_data")); + a_data = MBGL_CHECK_ERROR(glGetAttribLocation(getID(), "a_data")); } void LineShader::bind(GLbyte* offset) { diff --git a/src/mbgl/shader/linepattern_shader.cpp b/src/mbgl/shader/linepattern_shader.cpp index 18ec2c23f5..4c15d8b075 100644 --- a/src/mbgl/shader/linepattern_shader.cpp +++ b/src/mbgl/shader/linepattern_shader.cpp @@ -9,7 +9,7 @@ using namespace mbgl; LinepatternShader::LinepatternShader() : Shader("linepattern", shaders::linepattern::vertex, shaders::linepattern::fragment) { - a_data = MBGL_CHECK_ERROR(glGetAttribLocation(program, "a_data")); + a_data = MBGL_CHECK_ERROR(glGetAttribLocation(getID(), "a_data")); } void LinepatternShader::bind(GLbyte* offset) { diff --git a/src/mbgl/shader/linesdf_shader.cpp b/src/mbgl/shader/linesdf_shader.cpp index 48622cb763..f5eba0a046 100644 --- a/src/mbgl/shader/linesdf_shader.cpp +++ b/src/mbgl/shader/linesdf_shader.cpp @@ -9,7 +9,7 @@ using namespace mbgl; LineSDFShader::LineSDFShader() : Shader("line", shaders::linesdf::vertex, shaders::linesdf::fragment) { - a_data = MBGL_CHECK_ERROR(glGetAttribLocation(program, "a_data")); + a_data = MBGL_CHECK_ERROR(glGetAttribLocation(getID(), "a_data")); } void LineSDFShader::bind(GLbyte* offset) { diff --git a/src/mbgl/shader/sdf_shader.cpp b/src/mbgl/shader/sdf_shader.cpp index 7ca3bf84de..e613863041 100644 --- a/src/mbgl/shader/sdf_shader.cpp +++ b/src/mbgl/shader/sdf_shader.cpp @@ -8,9 +8,9 @@ using namespace mbgl; SDFShader::SDFShader() : Shader("sdf", shaders::sdf::vertex, shaders::sdf::fragment) { - a_offset = MBGL_CHECK_ERROR(glGetAttribLocation(program, "a_offset")); - a_data1 = MBGL_CHECK_ERROR(glGetAttribLocation(program, "a_data1")); - a_data2 = MBGL_CHECK_ERROR(glGetAttribLocation(program, "a_data2")); + 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")); } void SDFGlyphShader::bind(GLbyte* offset) { diff --git a/src/mbgl/shader/uniform.hpp b/src/mbgl/shader/uniform.hpp index ceeb22bd99..5c4a2b14c4 100644 --- a/src/mbgl/shader/uniform.hpp +++ b/src/mbgl/shader/uniform.hpp @@ -4,13 +4,15 @@ #include <mbgl/shader/shader.hpp> #include <mbgl/gl/gl.hpp> +#include <array> + namespace mbgl { template <typename T> class Uniform { public: Uniform(const GLchar* name, const Shader& shader) : current() { - location = MBGL_CHECK_ERROR(glGetUniformLocation(shader.program, name)); + location = MBGL_CHECK_ERROR(glGetUniformLocation(shader.getID(), name)); } void operator=(const T& t) { @@ -33,7 +35,7 @@ public: typedef std::array<float, C*R> T; UniformMatrix(const GLchar* name, const Shader& shader) : current() { - location = MBGL_CHECK_ERROR(glGetUniformLocation(shader.program, name)); + location = MBGL_CHECK_ERROR(glGetUniformLocation(shader.getID(), name)); } void operator=(const std::array<double, C*R>& t) { |