-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathqsfml.cpp
More file actions
62 lines (46 loc) · 1.45 KB
/
qsfml.cpp
File metadata and controls
62 lines (46 loc) · 1.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include "qsfml.h"
Qsfml::Qsfml(QWidget* parent, const QPoint& Position, const QSize& Size
) :
QWidget(parent),
myInitialized (false)
{
// Mise en place de quelques options pour autoriser le rendu direct dans le widget
setAttribute(Qt::WA_PaintOnScreen);
setAttribute(Qt::WA_OpaquePaintEvent);
setAttribute(Qt::WA_NoSystemBackground);
// Changement de la police de focus, pour autoriser notre widget à capter les évènements clavier
setFocusPolicy(Qt::StrongFocus);
// Définition de la position et de la taille du widget
move(Position);
setMaximumSize(Size);
setMinimumSize(Size);
}
Qsfml::~Qsfml(){}
void Qsfml::showEvent(QShowEvent*){
if (!myInitialized)
{
// Sous X11, il faut valider les commandes qui ont été envoyées au serveur
// afin de s'assurer que SFML aura une vision à jour de la fenêtre
#ifdef Q_WS_X11
XFlush(QX11Info::display());
#endif
// On crée la fenêtre SFML avec l'identificateur du widget
RenderWindow::create(winId());
// On laisse la classe dérivée s'initialiser si besoin
OnInit();
myInitialized = true;
}
}
QPaintEngine* Qsfml::paintEngine() const
{
return 0;
}
void Qsfml::paintEvent(QPaintEvent*)
{
// On laisse la classe dérivée faire sa tambouille
OnUpdate();
// On rafraîchit le widget
display();
}
void Qsfml::OnInit(){}
void Qsfml::OnUpdate(){}