// // ApplicationOverlay.h // interface/src/ui/overlays // // Created by Benjamin Arnold on 5/27/14. // Copyright 2014 High Fidelity, Inc. // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // #ifndef hifi_ApplicationOverlay_h #define hifi_ApplicationOverlay_h #include // Handles the drawing of the overlays to the screen // TODO, move divide up the rendering, displaying and input handling // facilities of this class class ApplicationOverlay : public QObject { Q_OBJECT public: ApplicationOverlay(); ~ApplicationOverlay(); void renderOverlay(RenderArgs* renderArgs); gpu::TexturePointer acquireOverlay(); void releaseOverlay(gpu::TexturePointer pointer); private: void renderStatsAndLogs(RenderArgs* renderArgs); void renderDomainConnectionStatusBorder(RenderArgs* renderArgs); void renderRearViewToFbo(RenderArgs* renderArgs); void renderRearView(RenderArgs* renderArgs); void renderQmlUi(RenderArgs* renderArgs); void renderAudioScope(RenderArgs* renderArgs); void renderOverlays(RenderArgs* renderArgs); void buildFramebufferObject(); float _alpha{ 1.0f }; float _trailingAudioLoudness{ 0.0f }; uint32_t _uiTexture{ 0 }; int _domainStatusBorder; int _magnifierBorder; ivec2 _previousBorderSize{ -1 }; gpu::TexturePointer _overlayDepthTexture; gpu::TexturePointer _overlayColorTexture; gpu::FramebufferPointer _overlayFramebuffer; }; #endif // hifi_ApplicationOverlay_h