Mercurial > hg > orthanc-stone
annotate Samples/Qt/QStoneOpenGlWidget.cpp @ 880:9953f16c304d am-dev
Merge
author | Alain Mazy <alain@mazy.be> |
---|---|
date | Fri, 05 Jul 2019 15:33:02 +0200 |
parents | 12b591d5d63c |
children | a8cd3755db21 |
rev | line source |
---|---|
849 | 1 #include "../../Framework/OpenGL/OpenGLIncludes.h" |
2 #include "QStoneOpenGlWidget.h" | |
3 | |
879 | 4 #include <QMouseEvent> |
5 | |
6 using namespace OrthancStone; | |
7 | |
849 | 8 void QStoneOpenGlWidget::initializeGL() |
9 { | |
863
23701fbf228e
first rendering of a 2DScene in Qt widget
Alain Mazy <alain@mazy.be>
parents:
849
diff
changeset
|
10 glewInit(); |
23701fbf228e
first rendering of a 2DScene in Qt widget
Alain Mazy <alain@mazy.be>
parents:
849
diff
changeset
|
11 } |
23701fbf228e
first rendering of a 2DScene in Qt widget
Alain Mazy <alain@mazy.be>
parents:
849
diff
changeset
|
12 |
23701fbf228e
first rendering of a 2DScene in Qt widget
Alain Mazy <alain@mazy.be>
parents:
849
diff
changeset
|
13 void QStoneOpenGlWidget::MakeCurrent() |
23701fbf228e
first rendering of a 2DScene in Qt widget
Alain Mazy <alain@mazy.be>
parents:
849
diff
changeset
|
14 { |
23701fbf228e
first rendering of a 2DScene in Qt widget
Alain Mazy <alain@mazy.be>
parents:
849
diff
changeset
|
15 this->makeCurrent(); |
849 | 16 } |
17 | |
18 void QStoneOpenGlWidget::resizeGL(int w, int h) | |
19 { | |
20 | |
21 } | |
22 | |
23 void QStoneOpenGlWidget::paintGL() | |
24 { | |
25 if (compositor_) | |
26 { | |
27 compositor_->Refresh(); | |
28 } | |
29 doneCurrent(); | |
30 } | |
31 | |
879 | 32 void ConvertFromPlatform( |
33 OrthancStone::GuiAdapterMouseEvent& dest, | |
34 const QMouseEvent& qtEvent) | |
35 { | |
36 dest.targetX = qtEvent.x(); | |
37 dest.targetY = qtEvent.y(); | |
38 | |
39 switch (qtEvent.button()) | |
40 { | |
41 case Qt::LeftButton: dest.button = OrthancStone::GUIADAPTER_MOUSEBUTTON_LEFT; break; | |
42 case Qt::MiddleButton: dest.button = OrthancStone::GUIADAPTER_MOUSEBUTTON_MIDDLE; break; | |
43 case Qt::RightButton: dest.button = OrthancStone::GUIADAPTER_MOUSEBUTTON_RIGHT; break; | |
44 default: | |
45 dest.button = OrthancStone::GUIADAPTER_MOUSEBUTTON_LEFT; | |
46 } | |
47 | |
48 if (qtEvent.modifiers().testFlag(Qt::ShiftModifier)) | |
49 { | |
50 dest.shiftKey = true; | |
51 } | |
52 if (qtEvent.modifiers().testFlag(Qt::ControlModifier)) | |
53 { | |
54 dest.ctrlKey = true; | |
55 } | |
56 if (qtEvent.modifiers().testFlag(Qt::AltModifier)) | |
57 { | |
58 dest.altKey = true; | |
59 } | |
60 | |
61 } | |
62 | |
63 | |
64 | |
65 void QStoneOpenGlWidget::mousePressEvent(QMouseEvent* qtEvent) | |
66 { | |
67 OrthancStone::GuiAdapterMouseEvent event; | |
68 ConvertFromPlatform(event, *qtEvent); | |
69 | |
70 if (sceneInteractor_.get() != NULL) | |
71 { | |
72 sceneInteractor_->OnMouseEvent(event); | |
73 } | |
74 | |
75 | |
76 // convert | |
77 //TODO event-> | |
78 | |
79 // sceneInteractor_->OnMouseEvent(event); | |
80 } | |
81 |