From bc07cb4b2615ba0f622189fdc30092a021750598 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20Ka=CC=88fer?= Date: Thu, 30 Jan 2014 12:37:16 +0100 Subject: [PATCH] don't pass the entire tile object to changeMatrix --- include/llmr/renderer/painter.hpp | 3 ++- src/map/map.cpp | 1 + src/renderer/painter.cpp | 6 ++---- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/llmr/renderer/painter.hpp b/include/llmr/renderer/painter.hpp index b79aeb8f9..86d53c163 100644 --- a/include/llmr/renderer/painter.hpp +++ b/include/llmr/renderer/painter.hpp @@ -33,7 +33,9 @@ public: void setup(); + void clear(); + void changeMatrix(const Tile::ID& id); void render(const std::shared_ptr& tile); void renderLayers(const std::shared_ptr& tile, const std::vector& layers); void renderDebug(const std::shared_ptr& tile); @@ -49,7 +51,6 @@ public: private: void setupShaders(); - void changeMatrix(const std::shared_ptr& tile); public: diff --git a/src/map/map.cpp b/src/map/map.cpp index c19d390f8..bda787b6a 100644 --- a/src/map/map.cpp +++ b/src/map/map.cpp @@ -294,6 +294,7 @@ bool Map::render() { for (Tile::Ptr& tile : tiles) { assert(tile); if (tile->state == Tile::ready) { + painter.changeMatrix(tile->id); painter.render(tile); } } diff --git a/src/renderer/painter.cpp b/src/renderer/painter.cpp index 297fa3d2b..35224ab83 100644 --- a/src/renderer/painter.cpp +++ b/src/renderer/painter.cpp @@ -51,13 +51,13 @@ void Painter::setupShaders() { lineShader = std::make_shared(); } -void Painter::changeMatrix(const Tile::Ptr& tile) { +void Painter::changeMatrix(const Tile::ID& id) { // Initialize projection matrix mat4 projMatrix; matrix::ortho(projMatrix, 0, transform.width, transform.height, 0, 1, 10); // The position matrix. - transform.matrixFor(matrix, tile->id); + transform.matrixFor(matrix, id); matrix::multiply(matrix, projMatrix, matrix); // The extrusion matrix. @@ -118,8 +118,6 @@ void Painter::render(const Tile::Ptr& tile) { return; } - changeMatrix(tile); - drawClippingMask(); renderLayers(tile, style.layers);