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 {};
40 virtual gpu::PipelinePointer getRenderTexturePipeline()
override;
43 mutable bool _isThrottled =
false;
46 static const QString NAME;
47 QScreen* getFullscreenTarget();
48 std::vector<QAction*> _framerateActions;
49 QAction* _vsyncAction {
nullptr };
50 uint32_t _framerateTarget { 0 };
51 int _fullscreenTarget{ -1 };
53 #if defined(Q_OS_ANDROID)
54 gpu::TexturePointer _virtualPadStickTexture;
55 gpu::TexturePointer _virtualPadStickBaseTexture;
56 qreal _virtualPadPixelSize;
58 gpu::TexturePointer _virtualPadJumpBtnTexture;
59 qreal _virtualPadJumpBtnPixelSize;
61 gpu::TexturePointer _virtualPadRbBtnTexture;
62 qreal _virtualPadRbBtnPixelSize;
64 class VirtualPadButton {
68 VirtualPadButton(qreal pixelSize, QString iconPath, VirtualPad::Manager::Button button);
70 void draw(gpu::Batch& batch, glm::vec2 buttonPosition);
72 gpu::TexturePointer _texture;
74 VirtualPad::Manager::Button _button;
76 QVector<VirtualPadButton> _virtualPadButtons;