diff options
Diffstat (limited to 'src/mbgl/renderer/sources/render_image_source.cpp')
-rw-r--r-- | src/mbgl/renderer/sources/render_image_source.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/mbgl/renderer/sources/render_image_source.cpp b/src/mbgl/renderer/sources/render_image_source.cpp index 30f1bbcee6..215bbb1c92 100644 --- a/src/mbgl/renderer/sources/render_image_source.cpp +++ b/src/mbgl/renderer/sources/render_image_source.cpp @@ -23,13 +23,19 @@ void ImageSourceRenderData::upload(gfx::UploadPass& uploadPass) const { if (bucket && bucket->needsUpload()) { bucket->upload(uploadPass); } + + if (!debugTexture) { + std::array<uint8_t, 4> data{{0, 0, 0, 0}}; + static const PremultipliedImage emptyImage{Size(1, 1), data.data(), data.size()}; + debugTexture = uploadPass.createTexture(emptyImage); + } } void ImageSourceRenderData::render(PaintParameters& parameters) const { if (!bucket || !(parameters.debugOptions & MapDebugOptions::TileBorders)) { return; } - + assert(debugTexture); static const style::Properties<>::PossiblyEvaluated properties {}; static const DebugProgram::Binders paintAttributeData(properties, 0); @@ -47,13 +53,14 @@ void ImageSourceRenderData::render(PaintParameters& parameters) const { parameters.staticData.tileBorderSegments(), programInstance.computeAllUniformValues( DebugProgram::LayoutUniformValues{uniforms::matrix::Value(matrix), - uniforms::color::Value(Color::red())}, + uniforms::color::Value(Color::red()), + uniforms::overlay_scale::Value(1.0f)}, paintAttributeData, properties, parameters.state.getZoom()), programInstance.computeAllAttributeBindings( *parameters.staticData.tileVertexBuffer, paintAttributeData, properties), - DebugProgram::TextureBindings{}, + DebugProgram::TextureBindings{textures::image::Value{debugTexture->getResource()}}, "image"); } } |