849
|
1 #pragma once
|
|
2 #include "../../Framework/OpenGL/OpenGLIncludes.h"
|
|
3 #include <QOpenGLWidget>
|
|
4 #include <QOpenGLFunctions>
|
|
5
|
|
6 #include <boost/shared_ptr.hpp>
|
|
7 #include "../../Framework/OpenGL/IOpenGLContext.h"
|
|
8 #include "../../Framework/Scene2D/OpenGLCompositor.h"
|
879
|
9 #include "Scene2DInteractor.h"
|
849
|
10
|
879
|
11 namespace OrthancStone
|
849
|
12 {
|
879
|
13 class QStoneOpenGlWidget : public QOpenGLWidget, public OrthancStone::OpenGL::IOpenGLContext
|
|
14 {
|
|
15 boost::shared_ptr<OrthancStone::OpenGLCompositor> compositor_;
|
|
16 boost::shared_ptr<Scene2DInteractor> sceneInteractor_;
|
849
|
17
|
879
|
18 public:
|
|
19 QStoneOpenGlWidget(QWidget *parent) :
|
|
20 QOpenGLWidget(parent)
|
|
21 {
|
|
22 }
|
|
23
|
|
24 protected:
|
849
|
25
|
879
|
26 //**** QWidget overrides
|
|
27 void initializeGL() override;
|
|
28 void resizeGL(int w, int h) override;
|
|
29 void paintGL() override;
|
849
|
30
|
879
|
31 void mousePressEvent(QMouseEvent* event) override;
|
849
|
32
|
879
|
33 //**** IOpenGLContext overrides
|
849
|
34
|
879
|
35 virtual void MakeCurrent() override;
|
|
36 virtual void SwapBuffer() override {}
|
849
|
37
|
879
|
38 virtual unsigned int GetCanvasWidth() const override
|
|
39 {
|
|
40 return this->width();
|
|
41 }
|
|
42
|
|
43 virtual unsigned int GetCanvasHeight() const override
|
|
44 {
|
|
45 return this->height();
|
|
46 }
|
849
|
47
|
879
|
48 public:
|
|
49 void SetInteractor(boost::shared_ptr<Scene2DInteractor> sceneInteractor)
|
|
50 {
|
|
51 sceneInteractor_ = sceneInteractor;
|
|
52 }
|
849
|
53
|
879
|
54 void SetCompositor(boost::shared_ptr<OrthancStone::OpenGLCompositor> compositor)
|
|
55 {
|
|
56 compositor_ = compositor;
|
|
57 }
|
849
|
58
|
879
|
59 };
|
|
60 }
|