annotate Framework/Scene2D/ICompositor.h @ 1215:9efa66d8d3f8 broker

removed ViewportBase, and removed dependency of ViewportController on IViewport
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 04 Dec 2019 20:12:15 +0100
parents d10d2acb8a02
children 828a9b4ee1b7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1053
32b403a47b19 simplifying IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 905
diff changeset
1 #pragma once
32b403a47b19 simplifying IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 905
diff changeset
2
1211
d10d2acb8a02 compositors do not keep a reference to the scene anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1053
diff changeset
3 #include "Scene2D.h"
1215
9efa66d8d3f8 removed ViewportBase, and removed dependency of ViewportController on IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1211
diff changeset
4 #include "ScenePoint2D.h"
1211
d10d2acb8a02 compositors do not keep a reference to the scene anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1053
diff changeset
5
1053
32b403a47b19 simplifying IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 905
diff changeset
6 #include <EmbeddedResources.h>
32b403a47b19 simplifying IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 905
diff changeset
7
32b403a47b19 simplifying IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 905
diff changeset
8 namespace OrthancStone
32b403a47b19 simplifying IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 905
diff changeset
9 {
32b403a47b19 simplifying IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 905
diff changeset
10 class ICompositor : public boost::noncopyable
32b403a47b19 simplifying IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 905
diff changeset
11 {
32b403a47b19 simplifying IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 905
diff changeset
12 public:
32b403a47b19 simplifying IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 905
diff changeset
13 virtual ~ICompositor()
32b403a47b19 simplifying IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 905
diff changeset
14 {
32b403a47b19 simplifying IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 905
diff changeset
15 }
32b403a47b19 simplifying IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 905
diff changeset
16
32b403a47b19 simplifying IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 905
diff changeset
17 virtual unsigned int GetCanvasWidth() const = 0;
32b403a47b19 simplifying IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 905
diff changeset
18
32b403a47b19 simplifying IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 905
diff changeset
19 virtual unsigned int GetCanvasHeight() const = 0;
32b403a47b19 simplifying IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 905
diff changeset
20
1211
d10d2acb8a02 compositors do not keep a reference to the scene anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1053
diff changeset
21 /**
d10d2acb8a02 compositors do not keep a reference to the scene anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1053
diff changeset
22 * WARNING: "Refresh()" must always be called with the same
d10d2acb8a02 compositors do not keep a reference to the scene anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1053
diff changeset
23 * scene. If the scene changes, a call to "ResetScene()" must be
d10d2acb8a02 compositors do not keep a reference to the scene anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1053
diff changeset
24 * done to reset the tracking of the revisions of the layers.
d10d2acb8a02 compositors do not keep a reference to the scene anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1053
diff changeset
25 **/
d10d2acb8a02 compositors do not keep a reference to the scene anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1053
diff changeset
26 virtual void Refresh(const Scene2D& scene) = 0;
d10d2acb8a02 compositors do not keep a reference to the scene anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1053
diff changeset
27
d10d2acb8a02 compositors do not keep a reference to the scene anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1053
diff changeset
28 virtual void ResetScene() = 0;
1053
32b403a47b19 simplifying IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 905
diff changeset
29
32b403a47b19 simplifying IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 905
diff changeset
30 #if ORTHANC_ENABLE_LOCALE == 1
32b403a47b19 simplifying IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 905
diff changeset
31 virtual void SetFont(size_t index,
32b403a47b19 simplifying IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 905
diff changeset
32 Orthanc::EmbeddedResources::FileResourceId resource,
32b403a47b19 simplifying IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 905
diff changeset
33 unsigned int fontSize,
32b403a47b19 simplifying IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 905
diff changeset
34 Orthanc::Encoding codepage) = 0;
32b403a47b19 simplifying IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 905
diff changeset
35 #endif
1215
9efa66d8d3f8 removed ViewportBase, and removed dependency of ViewportController on IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1211
diff changeset
36
9efa66d8d3f8 removed ViewportBase, and removed dependency of ViewportController on IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1211
diff changeset
37 // Get the center of the given pixel, in canvas coordinates
9efa66d8d3f8 removed ViewportBase, and removed dependency of ViewportController on IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1211
diff changeset
38 ScenePoint2D GetPixelCenterCoordinates(int x, int y) const
9efa66d8d3f8 removed ViewportBase, and removed dependency of ViewportController on IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1211
diff changeset
39 {
9efa66d8d3f8 removed ViewportBase, and removed dependency of ViewportController on IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1211
diff changeset
40 return ScenePoint2D(
9efa66d8d3f8 removed ViewportBase, and removed dependency of ViewportController on IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1211
diff changeset
41 static_cast<double>(x) + 0.5 - static_cast<double>(GetCanvasWidth()) / 2.0,
9efa66d8d3f8 removed ViewportBase, and removed dependency of ViewportController on IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1211
diff changeset
42 static_cast<double>(y) + 0.5 - static_cast<double>(GetCanvasHeight()) / 2.0);
9efa66d8d3f8 removed ViewportBase, and removed dependency of ViewportController on IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1211
diff changeset
43 }
9efa66d8d3f8 removed ViewportBase, and removed dependency of ViewportController on IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1211
diff changeset
44
9efa66d8d3f8 removed ViewportBase, and removed dependency of ViewportController on IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1211
diff changeset
45 void FitContent(Scene2D& scene) const
9efa66d8d3f8 removed ViewportBase, and removed dependency of ViewportController on IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1211
diff changeset
46 {
9efa66d8d3f8 removed ViewportBase, and removed dependency of ViewportController on IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1211
diff changeset
47 scene.FitContent(GetCanvasWidth(), GetCanvasHeight());
9efa66d8d3f8 removed ViewportBase, and removed dependency of ViewportController on IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1211
diff changeset
48 }
1053
32b403a47b19 simplifying IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 905
diff changeset
49 };
32b403a47b19 simplifying IViewport
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 905
diff changeset
50 }