From 1b86bf16b2cfc37b86e526673bb2e25de6adf9ee Mon Sep 17 00:00:00 2001 From: Asheem Mamoowala Date: Thu, 20 Apr 2017 12:39:51 -0700 Subject: [core] Render Image Source --- src/mbgl/renderer/painters/painter_debug.cpp | 28 +++++++++++++++++++++++++++ src/mbgl/renderer/painters/painter_raster.cpp | 11 ++++++----- 2 files changed, 34 insertions(+), 5 deletions(-) (limited to 'src/mbgl/renderer/painters') diff --git a/src/mbgl/renderer/painters/painter_debug.cpp b/src/mbgl/renderer/painters/painter_debug.cpp index 4794d79d45..ee76aee54c 100644 --- a/src/mbgl/renderer/painters/painter_debug.cpp +++ b/src/mbgl/renderer/painters/painter_debug.cpp @@ -77,6 +77,34 @@ void Painter::renderTileDebug(const RenderTile& renderTile) { } } +void Painter::renderTileDebug(const mat4& matrix) { + if (frame.debugOptions == MapDebugOptions::NoDebug) + return; + + static const style::Properties<>::PossiblyEvaluated properties {}; + static const DebugProgram::PaintPropertyBinders paintAttibuteData(properties, 0); + + if (frame.debugOptions & MapDebugOptions::TileBorders) { + programs->debug.draw( + context, + gl::LineStrip { 4.0f * frame.pixelRatio }, + gl::DepthMode::disabled(), + gl::StencilMode::disabled(), + gl::ColorMode::unblended(), + DebugProgram::UniformValues { + uniforms::u_matrix::Value{ matrix }, + uniforms::u_color::Value{ Color::red() } + }, + tileVertexBuffer, + tileBorderIndexBuffer, + tileBorderSegments, + paintAttibuteData, + properties, + state.getZoom() + ); + } +} + #ifndef NDEBUG void Painter::renderClipMasks(PaintParameters&) { context.setStencilMode(gl::StencilMode::disabled()); diff --git a/src/mbgl/renderer/painters/painter_raster.cpp b/src/mbgl/renderer/painters/painter_raster.cpp index 1f0d72be40..56e38ae8f4 100644 --- a/src/mbgl/renderer/painters/painter_raster.cpp +++ b/src/mbgl/renderer/painters/painter_raster.cpp @@ -42,7 +42,8 @@ static std::array spinWeights(float spin) { void Painter::renderRaster(PaintParameters& parameters, RasterBucket& bucket, const RenderRasterLayer& layer, - const RenderTile& tile) { + const mat4& matrix, + bool useBucketBuffers = false) { if (pass != RenderPass::Translucent) return; if (!bucket.hasData()) @@ -62,7 +63,7 @@ void Painter::renderRaster(PaintParameters& parameters, gl::StencilMode::disabled(), colorModeForRenderPass(), RasterProgram::UniformValues { - uniforms::u_matrix::Value{ tile.matrix }, + uniforms::u_matrix::Value{ matrix }, uniforms::u_image0::Value{ 0 }, uniforms::u_image1::Value{ 1 }, uniforms::u_opacity::Value{ properties.get() }, @@ -76,9 +77,9 @@ void Painter::renderRaster(PaintParameters& parameters, uniforms::u_scale_parent::Value{ 1.0f }, uniforms::u_tl_parent::Value{ std::array {{ 0.0f, 0.0f }} }, }, - rasterVertexBuffer, - quadTriangleIndexBuffer, - rasterSegments, + useBucketBuffers ? *bucket.vertexBuffer : rasterVertexBuffer, + useBucketBuffers ? *bucket.indexBuffer : quadTriangleIndexBuffer, + useBucketBuffers ? bucket.segments : rasterSegments, paintAttributeData, properties, state.getZoom() -- cgit v1.2.1