10 #include "OpenGLDisplayPlugin.h"
12 #if defined(Q_OS_ANDROID)
13 #include "VirtualPadManager.h"
16 const float TARGET_FRAMERATE_Basic2DWindowOpenGL = 60.0f;
21 class Basic2DWindowOpenGLDisplayPlugin :
public OpenGLDisplayPlugin {
23 using Parent = OpenGLDisplayPlugin;
25 virtual const QString getName()
const override {
return NAME; }
27 virtual float getTargetFrameRate()
const override {
return _framerateTarget ? (float) _framerateTarget : TARGET_FRAMERATE_Basic2DWindowOpenGL; }
29 virtual void customizeContext()
override;
30 virtual void uncustomizeContext()
override;
32 virtual bool internalActivate()
override;
34 virtual bool isThrottled()
const override;
36 virtual void compositeExtra()
override;
38 virtual void pluginUpdate()
override {};
41 mutable bool _isThrottled =
false;
44 static const QString NAME;
45 QScreen* getFullscreenTarget();
46 std::vector<QAction*> _framerateActions;
47 QAction* _vsyncAction {
nullptr };
48 uint32_t _framerateTarget { 0 };
49 int _fullscreenTarget{ -1 };
51 #if defined(Q_OS_ANDROID)
52 gpu::TexturePointer _virtualPadStickTexture;
53 gpu::TexturePointer _virtualPadStickBaseTexture;
54 qreal _virtualPadPixelSize;
56 gpu::TexturePointer _virtualPadJumpBtnTexture;
57 qreal _virtualPadJumpBtnPixelSize;
59 gpu::TexturePointer _virtualPadRbBtnTexture;
60 qreal _virtualPadRbBtnPixelSize;
62 class VirtualPadButton {
66 VirtualPadButton(qreal pixelSize, QString iconPath, VirtualPad::Manager::Button button);
68 void draw(gpu::Batch& batch, glm::vec2 buttonPosition);
70 gpu::TexturePointer _texture;
72 VirtualPad::Manager::Button _button;
74 QVector<VirtualPadButton> _virtualPadButtons;