diff options
author | Lauren Budorick <lauren@mapbox.com> | 2017-04-12 14:24:25 -0700 |
---|---|---|
committer | Lauren Budorick <lauren@mapbox.com> | 2017-04-24 17:10:31 -0700 |
commit | 1e2d1d688e45f1f7814eda9a3a28b657b5b4ea09 (patch) | |
tree | 625c821a6043ba8bdbe14962767041ef10179d6b | |
parent | b9bc3e922986df2c2eb63b30c955af0466aaff3f (diff) | |
download | qtlocation-mapboxgl-1e2d1d688e45f1f7814eda9a3a28b657b5b4ea09.tar.gz |
Per review:
* Program cleanup
* Rename tileTriangleIndexBuffer to quadTriangleIndexBuffer so as to generalize for reuse + remove extrusionTextureTriangleIndexBuffer
-rw-r--r-- | src/mbgl/programs/extrusion_texture_program.hpp | 31 | ||||
-rw-r--r-- | src/mbgl/programs/fill_extrusion_program.cpp | 31 | ||||
-rw-r--r-- | src/mbgl/programs/fill_extrusion_program.hpp | 78 | ||||
-rw-r--r-- | src/mbgl/renderer/painter.cpp | 7 | ||||
-rw-r--r-- | src/mbgl/renderer/painter.hpp | 3 | ||||
-rw-r--r-- | src/mbgl/renderer/painter_background.cpp | 4 | ||||
-rw-r--r-- | src/mbgl/renderer/painter_clipping.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/renderer/painter_raster.cpp | 2 |
8 files changed, 73 insertions, 85 deletions
diff --git a/src/mbgl/programs/extrusion_texture_program.hpp b/src/mbgl/programs/extrusion_texture_program.hpp index eefa4c81d1..1519aa095d 100644 --- a/src/mbgl/programs/extrusion_texture_program.hpp +++ b/src/mbgl/programs/extrusion_texture_program.hpp @@ -4,36 +4,25 @@ #include <mbgl/programs/attributes.hpp> #include <mbgl/programs/uniforms.hpp> #include <mbgl/shaders/extrusion_texture.hpp> -#include <mbgl/style/layers/fill_extrusion_layer_properties.hpp> #include <mbgl/util/geometry.hpp> -#include <string> - namespace mbgl { -struct ExtrusionTextureLayoutAttributes : gl::Attributes< -attributes::a_pos> -{}; - -struct ExtrusionTextureUniforms : gl::Uniforms< -uniforms::u_matrix, -uniforms::u_world, -uniforms::u_image, -uniforms::u_opacity> -{}; - class ExtrusionTextureProgram : public Program< -shaders::extrusion_texture, -gl::Triangle, -ExtrusionTextureLayoutAttributes, -ExtrusionTextureUniforms, -style::PaintProperties<>> -{ + shaders::extrusion_texture, + gl::Triangle, + gl::Attributes<attributes::a_pos>, + gl::Uniforms< + uniforms::u_matrix, + uniforms::u_world, + uniforms::u_image, + uniforms::u_opacity>, + style::PaintProperties<>> { public: using Program::Program; static LayoutVertex layoutVertex(Point<int16_t> p) { - return LayoutVertex { + return LayoutVertex{ {{ p.x, p.y diff --git a/src/mbgl/programs/fill_extrusion_program.cpp b/src/mbgl/programs/fill_extrusion_program.cpp index ed981aa48b..468d184978 100644 --- a/src/mbgl/programs/fill_extrusion_program.cpp +++ b/src/mbgl/programs/fill_extrusion_program.cpp @@ -21,24 +21,25 @@ FillExtrusionPatternUniforms::values(mat4 matrix, const std::array<float, 3>& lightColor, const std::array<float, 3>& lightPos, const float lightIntensity) { - int32_t tileSizeAtNearestZoom = - util::tileSize * state.zoomScale(state.getIntegerZoom() - tileID.canonical.z); - int32_t pixelX = tileSizeAtNearestZoom * - (tileID.canonical.x + tileID.wrap * state.zoomScale(tileID.canonical.z)); + int32_t tileSizeAtNearestZoom = util::tileSize * state.zoomScale(state.getIntegerZoom() - tileID.canonical.z); + int32_t pixelX = tileSizeAtNearestZoom * (tileID.canonical.x + tileID.wrap * state.zoomScale(tileID.canonical.z)); int32_t pixelY = tileSizeAtNearestZoom * tileID.canonical.y; return FillExtrusionPatternUniforms::Values{ - uniforms::u_matrix::Value{ matrix }, uniforms::u_pattern_tl_a::Value{ a.tl }, - uniforms::u_pattern_br_a::Value{ a.br }, uniforms::u_pattern_tl_b::Value{ b.tl }, - uniforms::u_pattern_br_b::Value{ b.br }, uniforms::u_pattern_size_a::Value{ a.size }, - uniforms::u_pattern_size_b::Value{ b.size }, uniforms::u_scale_a::Value{ fading.fromScale }, - uniforms::u_scale_b::Value{ fading.toScale }, uniforms::u_mix::Value{ fading.t }, - uniforms::u_image::Value{ 0 }, uniforms::u_pixel_coord_upper::Value{ std::array<float, 2>{ - { float(pixelX >> 16), float(pixelY >> 16) } } }, - uniforms::u_pixel_coord_lower::Value{ - std::array<float, 2>{ { float(pixelX & 0xFFFF), float(pixelY & 0xFFFF) } } }, - uniforms::u_tile_units_to_pixels::Value{ - 1.0f / tileID.pixelsToTileUnits(1.0f, state.getIntegerZoom()) }, + uniforms::u_matrix::Value{ matrix }, + uniforms::u_pattern_tl_a::Value{ a.tl }, + uniforms::u_pattern_br_a::Value{ a.br }, + uniforms::u_pattern_tl_b::Value{ b.tl }, + uniforms::u_pattern_br_b::Value{ b.br }, + uniforms::u_pattern_size_a::Value{ a.size }, + uniforms::u_pattern_size_b::Value{ b.size }, + uniforms::u_scale_a::Value{ fading.fromScale }, + uniforms::u_scale_b::Value{ fading.toScale }, + uniforms::u_mix::Value{ fading.t }, + uniforms::u_image::Value{ 0 }, + uniforms::u_pixel_coord_upper::Value{ std::array<float, 2>{{ float(pixelX >> 16), float(pixelY >> 16) }} }, + uniforms::u_pixel_coord_lower::Value{ std::array<float, 2>{{ float(pixelX & 0xFFFF), float(pixelY & 0xFFFF) }} }, + uniforms::u_tile_units_to_pixels::Value{ 1.0f / tileID.pixelsToTileUnits(1.0f, state.getIntegerZoom()) }, uniforms::u_height_factor::Value{ heightFactor }, uniforms::u_lightcolor::Value{ lightColor }, uniforms::u_lightpos::Value{ lightPos }, diff --git a/src/mbgl/programs/fill_extrusion_program.hpp b/src/mbgl/programs/fill_extrusion_program.hpp index b9dd582f8b..df6dc2fe5f 100644 --- a/src/mbgl/programs/fill_extrusion_program.hpp +++ b/src/mbgl/programs/fill_extrusion_program.hpp @@ -24,44 +24,44 @@ namespace style { } // namespace style namespace uniforms { - MBGL_DEFINE_UNIFORM_VECTOR(float, 3, u_lightpos); - MBGL_DEFINE_UNIFORM_VECTOR(float, 3, u_lightcolor); - MBGL_DEFINE_UNIFORM_SCALAR(float, u_lightintensity); - MBGL_DEFINE_UNIFORM_SCALAR(float, u_height_factor); +MBGL_DEFINE_UNIFORM_VECTOR(float, 3, u_lightpos); +MBGL_DEFINE_UNIFORM_VECTOR(float, 3, u_lightcolor); +MBGL_DEFINE_UNIFORM_SCALAR(float, u_lightintensity); +MBGL_DEFINE_UNIFORM_SCALAR(float, u_height_factor); } // namespace uniforms struct FillExtrusionLayoutAttributes : gl::Attributes< -attributes::a_pos, -attributes::a_normal, -attributes::a_edgedistance> + attributes::a_pos, + attributes::a_normal, + attributes::a_edgedistance> {}; struct FillExtrusionUniforms : gl::Uniforms< -uniforms::u_matrix, -uniforms::u_lightcolor, -uniforms::u_lightpos, -uniforms::u_lightintensity> + uniforms::u_matrix, + uniforms::u_lightcolor, + uniforms::u_lightpos, + uniforms::u_lightintensity> {}; struct FillExtrusionPatternUniforms : gl::Uniforms< -uniforms::u_matrix, -uniforms::u_pattern_tl_a, -uniforms::u_pattern_br_a, -uniforms::u_pattern_tl_b, -uniforms::u_pattern_br_b, -uniforms::u_pattern_size_a, -uniforms::u_pattern_size_b, -uniforms::u_scale_a, -uniforms::u_scale_b, -uniforms::u_mix, -uniforms::u_image, -uniforms::u_pixel_coord_upper, -uniforms::u_pixel_coord_lower, -uniforms::u_tile_units_to_pixels, -uniforms::u_height_factor, -uniforms::u_lightcolor, -uniforms::u_lightpos, -uniforms::u_lightintensity> + uniforms::u_matrix, + uniforms::u_pattern_tl_a, + uniforms::u_pattern_br_a, + uniforms::u_pattern_tl_b, + uniforms::u_pattern_br_b, + uniforms::u_pattern_size_a, + uniforms::u_pattern_size_b, + uniforms::u_scale_a, + uniforms::u_scale_b, + uniforms::u_mix, + uniforms::u_image, + uniforms::u_pixel_coord_upper, + uniforms::u_pixel_coord_lower, + uniforms::u_tile_units_to_pixels, + uniforms::u_height_factor, + uniforms::u_lightcolor, + uniforms::u_lightpos, + uniforms::u_lightintensity> { static Values values(mat4 matrix, const SpriteAtlasElement&, @@ -76,11 +76,11 @@ uniforms::u_lightintensity> }; class FillExtrusionProgram : public Program< -shaders::fill_extrusion, -gl::Triangle, -FillExtrusionLayoutAttributes, -FillExtrusionUniforms, -style::FillExtrusionPaintProperties> + shaders::fill_extrusion, + gl::Triangle, + FillExtrusionLayoutAttributes, + FillExtrusionUniforms, + style::FillExtrusionPaintProperties> { public: using Program::Program; @@ -110,11 +110,11 @@ public: }; class FillExtrusionPatternProgram : public Program< -shaders::fill_extrusion_pattern, -gl::Triangle, -FillExtrusionLayoutAttributes, -FillExtrusionPatternUniforms, -style::FillExtrusionPaintProperties> + shaders::fill_extrusion_pattern, + gl::Triangle, + FillExtrusionLayoutAttributes, + FillExtrusionPatternUniforms, + style::FillExtrusionPaintProperties> { public: using Program::Program; diff --git a/src/mbgl/renderer/painter.cpp b/src/mbgl/renderer/painter.cpp index 0d619870af..4a62bd3973 100644 --- a/src/mbgl/renderer/painter.cpp +++ b/src/mbgl/renderer/painter.cpp @@ -55,7 +55,7 @@ static gl::VertexVector<FillLayoutVertex> tileVertices() { return result; } -static gl::IndexVector<gl::Triangles> tileTriangleIndices() { +static gl::IndexVector<gl::Triangles> quadTriangleIndices() { gl::IndexVector<gl::Triangles> result; result.emplace_back(0, 1, 2); result.emplace_back(1, 2, 3); @@ -100,9 +100,8 @@ Painter::Painter(gl::Context& context_, tileVertexBuffer(context.createVertexBuffer(tileVertices())), rasterVertexBuffer(context.createVertexBuffer(rasterVertices())), extrusionTextureVertexBuffer(context.createVertexBuffer(extrusionTextureVertices())), - tileTriangleIndexBuffer(context.createIndexBuffer(tileTriangleIndices())), - tileBorderIndexBuffer(context.createIndexBuffer(tileLineStripIndices())), - extrusionTextureTriangleIndexBuffer(context.createIndexBuffer(tileTriangleIndices())) { + quadTriangleIndexBuffer(context.createIndexBuffer(quadTriangleIndices())), + tileBorderIndexBuffer(context.createIndexBuffer(tileLineStripIndices())) { tileTriangleSegments.emplace_back(0, 0, 4, 6); tileBorderSegments.emplace_back(0, 0, 4, 5); diff --git a/src/mbgl/renderer/painter.hpp b/src/mbgl/renderer/painter.hpp index d2692f1124..e17dc37b59 100644 --- a/src/mbgl/renderer/painter.hpp +++ b/src/mbgl/renderer/painter.hpp @@ -167,9 +167,8 @@ private: gl::VertexBuffer<RasterLayoutVertex> rasterVertexBuffer; gl::VertexBuffer<ExtrusionTextureLayoutVertex> extrusionTextureVertexBuffer; - gl::IndexBuffer<gl::Triangles> tileTriangleIndexBuffer; + gl::IndexBuffer<gl::Triangles> quadTriangleIndexBuffer; gl::IndexBuffer<gl::LineStrip> tileBorderIndexBuffer; - gl::IndexBuffer<gl::Triangles> extrusionTextureTriangleIndexBuffer; gl::SegmentVector<FillAttributes> tileTriangleSegments; gl::SegmentVector<DebugAttributes> tileBorderSegments; diff --git a/src/mbgl/renderer/painter_background.cpp b/src/mbgl/renderer/painter_background.cpp index 4ac414335b..ff93702a8f 100644 --- a/src/mbgl/renderer/painter_background.cpp +++ b/src/mbgl/renderer/painter_background.cpp @@ -49,7 +49,7 @@ void Painter::renderBackground(PaintParameters& parameters, const BackgroundLaye state ), tileVertexBuffer, - tileTriangleIndexBuffer, + quadTriangleIndexBuffer, tileTriangleSegments, paintAttibuteData, properties, @@ -69,7 +69,7 @@ void Painter::renderBackground(PaintParameters& parameters, const BackgroundLaye uniforms::u_world::Value{ context.viewport.getCurrentValue().size }, }, tileVertexBuffer, - tileTriangleIndexBuffer, + quadTriangleIndexBuffer, tileTriangleSegments, paintAttibuteData, properties, diff --git a/src/mbgl/renderer/painter_clipping.cpp b/src/mbgl/renderer/painter_clipping.cpp index 70df9837e8..0d3b5f1504 100644 --- a/src/mbgl/renderer/painter_clipping.cpp +++ b/src/mbgl/renderer/painter_clipping.cpp @@ -26,7 +26,7 @@ void Painter::renderClippingMask(const UnwrappedTileID& tileID, const ClipID& cl uniforms::u_world::Value{ context.viewport.getCurrentValue().size }, }, tileVertexBuffer, - tileTriangleIndexBuffer, + quadTriangleIndexBuffer, tileTriangleSegments, paintAttibuteData, properties, diff --git a/src/mbgl/renderer/painter_raster.cpp b/src/mbgl/renderer/painter_raster.cpp index c216955db8..eb5057bd34 100644 --- a/src/mbgl/renderer/painter_raster.cpp +++ b/src/mbgl/renderer/painter_raster.cpp @@ -77,7 +77,7 @@ void Painter::renderRaster(PaintParameters& parameters, uniforms::u_tl_parent::Value{ std::array<float, 2> {{ 0.0f, 0.0f }} }, }, rasterVertexBuffer, - tileTriangleIndexBuffer, + quadTriangleIndexBuffer, rasterSegments, paintAttributeData, properties, |