summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/painter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/renderer/painter.cpp')
-rw-r--r--src/mbgl/renderer/painter.cpp22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/mbgl/renderer/painter.cpp b/src/mbgl/renderer/painter.cpp
index 977b6e565f..43d06b69d1 100644
--- a/src/mbgl/renderer/painter.cpp
+++ b/src/mbgl/renderer/painter.cpp
@@ -42,11 +42,7 @@ using namespace mbgl;
#define BUFFER_OFFSET(i) ((char *)nullptr + (i))
-Painter::Painter(SpriteAtlas& spriteAtlas_, GlyphAtlas& glyphAtlas_, LineAtlas& lineAtlas_)
- : spriteAtlas(spriteAtlas_)
- , glyphAtlas(glyphAtlas_)
- , lineAtlas(lineAtlas_)
-{
+Painter::Painter() {
}
Painter::~Painter() {
@@ -173,6 +169,10 @@ void Painter::prepareTile(const Tile& tile) {
void Painter::render(const Style& style, TransformState state_, TimePoint time) {
state = state_;
+ glyphAtlas = style.glyphAtlas.get();
+ spriteAtlas = style.spriteAtlas.get();
+ lineAtlas = style.lineAtlas.get();
+
std::set<Source*> sources;
for (const auto& source : style.sources) {
if (source->enabled) {
@@ -193,9 +193,9 @@ void Painter::render(const Style& style, TransformState state_, TimePoint time)
tileStencilBuffer.upload();
tileBorderBuffer.upload();
- spriteAtlas.upload();
- lineAtlas.upload();
- glyphAtlas.upload();
+ spriteAtlas->upload();
+ lineAtlas->upload();
+ glyphAtlas->upload();
for (const auto& item : order) {
if (item.bucket && item.bucket->needsUpload()) {
@@ -391,8 +391,8 @@ void Painter::renderBackground(const StyleLayer &layer_desc) {
if ((properties.opacity >= 1.0f) != (pass == RenderPass::Opaque))
return;
- SpriteAtlasPosition imagePosA = spriteAtlas.getPosition(properties.image.from, true);
- SpriteAtlasPosition imagePosB = spriteAtlas.getPosition(properties.image.to, true);
+ SpriteAtlasPosition imagePosA = spriteAtlas->getPosition(properties.image.from, true);
+ SpriteAtlasPosition imagePosB = spriteAtlas->getPosition(properties.image.to, true);
float zoomFraction = state.getZoomFraction();
useProgram(patternShader->program);
@@ -441,7 +441,7 @@ void Painter::renderBackground(const StyleLayer &layer_desc) {
backgroundBuffer.bind();
patternShader->bind(0);
- spriteAtlas.bind(true);
+ spriteAtlas->bind(true);
} else {
Color color = properties.color;
color[0] *= properties.opacity;