Mercurial > hg > orthanc-stone
comparison Framework/Scene2D/Internals/CompositorHelper.cpp @ 888:6e888cf6a48b
renderers now have access to canvas width/height
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 10 Jul 2019 11:58:38 +0200 |
parents | 03c4b998fcd0 |
children | 6009c59d8676 2d8ab34c8c91 |
comparison
equal
deleted
inserted
replaced
871:4bc8d9609447 | 888:6e888cf6a48b |
---|---|
105 | 105 |
106 std::auto_ptr<ILayerRenderer> renderer(factory_.Create(layer)); | 106 std::auto_ptr<ILayerRenderer> renderer(factory_.Create(layer)); |
107 | 107 |
108 if (renderer.get() != NULL) | 108 if (renderer.get() != NULL) |
109 { | 109 { |
110 renderer->Render(sceneTransform_); | 110 renderer->Render(sceneTransform_, canvasWidth_, canvasHeight_); |
111 content_[depth] = new Item(renderer.release(), layer, layerIdentifier); | 111 content_[depth] = new Item(renderer.release(), layer, layerIdentifier); |
112 } | 112 } |
113 } | 113 } |
114 else | 114 else |
115 { | 115 { |
119 if (found->second->GetLastRevision() < layer.GetRevision()) | 119 if (found->second->GetLastRevision() < layer.GetRevision()) |
120 { | 120 { |
121 found->second->UpdateRenderer(); | 121 found->second->UpdateRenderer(); |
122 } | 122 } |
123 | 123 |
124 found->second->GetRenderer().Render(sceneTransform_); | 124 found->second->GetRenderer().Render(sceneTransform_, canvasWidth_, canvasHeight_); |
125 } | 125 } |
126 | 126 |
127 // Check invariants | 127 // Check invariants |
128 assert(content_.find(depth) == content_.end() || | 128 assert(content_.find(depth) == content_.end() || |
129 (content_[depth]->GetLayerIdentifier() == layerIdentifier && | 129 (content_[depth]->GetLayerIdentifier() == layerIdentifier && |
148 AffineTransform2D offset = AffineTransform2D::CreateOffset( | 148 AffineTransform2D offset = AffineTransform2D::CreateOffset( |
149 static_cast<double>(canvasWidth) / 2.0, | 149 static_cast<double>(canvasWidth) / 2.0, |
150 static_cast<double>(canvasHeight) / 2.0); | 150 static_cast<double>(canvasHeight) / 2.0); |
151 | 151 |
152 sceneTransform_ = AffineTransform2D::Combine(offset, scene_.GetSceneToCanvasTransform()); | 152 sceneTransform_ = AffineTransform2D::Combine(offset, scene_.GetSceneToCanvasTransform()); |
153 canvasWidth_ = canvasWidth; | |
154 canvasHeight_ = canvasHeight; | |
153 scene_.Apply(*this); | 155 scene_.Apply(*this); |
154 } | 156 } |
155 } | 157 } |
156 } | 158 } |