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;
|
881
|
32 void mouseMoveEvent(QMouseEvent* event) override;
|
|
33 void mouseReleaseEvent(QMouseEvent* event) override;
|
849
|
34
|
879
|
35 //**** IOpenGLContext overrides
|
849
|
36
|
879
|
37 virtual void MakeCurrent() override;
|
|
38 virtual void SwapBuffer() override {}
|
849
|
39
|
879
|
40 virtual unsigned int GetCanvasWidth() const override
|
|
41 {
|
|
42 return this->width();
|
|
43 }
|
|
44
|
|
45 virtual unsigned int GetCanvasHeight() const override
|
|
46 {
|
|
47 return this->height();
|
|
48 }
|
849
|
49
|
879
|
50 public:
|
|
51 void SetInteractor(boost::shared_ptr<Scene2DInteractor> sceneInteractor)
|
|
52 {
|
|
53 sceneInteractor_ = sceneInteractor;
|
|
54 }
|
849
|
55
|
879
|
56 void SetCompositor(boost::shared_ptr<OrthancStone::OpenGLCompositor> compositor)
|
|
57 {
|
|
58 compositor_ = compositor;
|
|
59 }
|
849
|
60
|
881
|
61 protected:
|
|
62 void mouseEvent(QMouseEvent* qtEvent, OrthancStone::GuiAdapterHidEventType guiEventType);
|
|
63
|
879
|
64 };
|
|
65 }
|