summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLauren Budorick <lauren@mapbox.com>2017-04-12 14:24:25 -0700
committerLauren Budorick <lauren@mapbox.com>2017-04-24 17:10:31 -0700
commit1e2d1d688e45f1f7814eda9a3a28b657b5b4ea09 (patch)
tree625c821a6043ba8bdbe14962767041ef10179d6b
parentb9bc3e922986df2c2eb63b30c955af0466aaff3f (diff)
downloadqtlocation-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.hpp31
-rw-r--r--src/mbgl/programs/fill_extrusion_program.cpp31
-rw-r--r--src/mbgl/programs/fill_extrusion_program.hpp78
-rw-r--r--src/mbgl/renderer/painter.cpp7
-rw-r--r--src/mbgl/renderer/painter.hpp3
-rw-r--r--src/mbgl/renderer/painter_background.cpp4
-rw-r--r--src/mbgl/renderer/painter_clipping.cpp2
-rw-r--r--src/mbgl/renderer/painter_raster.cpp2
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,