# HG changeset patch # User Sebastien Jodogne # Date 1621265034 -7200 # Node ID c5e6379b9cd01d6a1d34ec82c6487c1832b64394 # Parent 373d7f7e796e0de8660cf6ef6a8d8b02c3c25889 fix build diff -r 373d7f7e796e -r c5e6379b9cd0 OrthancStone/Sources/Scene2D/MacroSceneLayer.cpp --- a/OrthancStone/Sources/Scene2D/MacroSceneLayer.cpp Mon May 17 16:59:03 2021 +0200 +++ b/OrthancStone/Sources/Scene2D/MacroSceneLayer.cpp Mon May 17 17:23:54 2021 +0200 @@ -41,7 +41,7 @@ } - void MacroSceneLayer::AddLayer(ISceneLayer* layer) + size_t MacroSceneLayer::AddLayer(ISceneLayer* layer) { if (layer == NULL) { @@ -49,8 +49,10 @@ } else { + size_t index = layers_.size(); layers_.push_back(layer); BumpRevision(); + return index; } } @@ -73,8 +75,6 @@ { std::unique_ptr copy(new MacroSceneLayer); - copy->Reserve(layers_.size()); - for (size_t i = 0; i < layers_.size(); i++) { assert(layers_[i] != NULL); diff -r 373d7f7e796e -r c5e6379b9cd0 OrthancStone/Sources/Scene2D/MacroSceneLayer.h --- a/OrthancStone/Sources/Scene2D/MacroSceneLayer.h Mon May 17 16:59:03 2021 +0200 +++ b/OrthancStone/Sources/Scene2D/MacroSceneLayer.h Mon May 17 17:23:54 2021 +0200 @@ -26,7 +26,7 @@ #include // For ORTHANC_OVERRIDE -#include +#include namespace OrthancStone { @@ -37,8 +37,10 @@ class MacroSceneLayer : public ISceneLayer { private: - std::vector layers_; - uint64_t revision_; + // A deque is used because we need to quickly add new layers, and + // to randomly access the layers + std::deque layers_; + uint64_t revision_; protected: void BumpRevision() @@ -60,12 +62,7 @@ void Clear(); - void Reserve(size_t size) - { - layers_.reserve(size); - } - - void AddLayer(ISceneLayer* layer); // takes ownership + size_t AddLayer(ISceneLayer* layer); // takes ownership size_t GetSize() const { diff -r 373d7f7e796e -r c5e6379b9cd0 OrthancStone/Sources/Scene2D/OpenGLCompositor.cpp --- a/OrthancStone/Sources/Scene2D/OpenGLCompositor.cpp Mon May 17 16:59:03 2021 +0200 +++ b/OrthancStone/Sources/Scene2D/OpenGLCompositor.cpp Mon May 17 17:23:54 2021 +0200 @@ -31,6 +31,8 @@ #include "Internals/OpenGLTextRenderer.h" #include "Internals/MacroLayerRenderer.h" +#include + namespace OrthancStone { class OpenGLCompositor::Font : public boost::noncopyable