summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/sources/render_image_source.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/renderer/sources/render_image_source.cpp')
-rw-r--r--src/mbgl/renderer/sources/render_image_source.cpp13
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");
}
}