Overte C++ Documentation
OculusDisplayPlugin.h
1 //
2 // Created by Bradley Austin Davis on 2015/05/29
3 // Copyright 2015 High Fidelity, Inc.
4 //
5 // Distributed under the Apache License, Version 2.0.
6 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
7 //
8 #pragma once
9 
10 #include "OculusBaseDisplayPlugin.h"
11 
12 class OculusDisplayPlugin : public OculusBaseDisplayPlugin {
13  using Parent = OculusBaseDisplayPlugin;
14 public:
15  OculusDisplayPlugin();
16  ~OculusDisplayPlugin();
17  const QString getName() const override { return NAME; }
18 
19  void init() override;
20 
21  QString getPreferredAudioInDevice() const override;
22  QString getPreferredAudioOutDevice() const override;
23  float getTargetFrameRate() const override;
24 
25  virtual QJsonObject getHardwareStats() const;
26 
27 protected:
28  QThread::Priority getPresentPriority() override { return QThread::TimeCriticalPriority; }
29 
30  bool internalActivate() override;
31  void hmdPresent() override;
32  bool isHmdMounted() const override;
33  void customizeContext() override;
34  void uncustomizeContext() override;
35  void cycleDebugOutput() override;
36 
37 private:
38  static const char* NAME;
39  ovrTextureSwapChain _textureSwapChain;
40  gpu::FramebufferPointer _outputFramebuffer;
41  bool _customized { false };
42 
43  std::atomic_bool _aswActive;
44  std::atomic_int _compositorDroppedFrames;
45  std::atomic_int _appDroppedFrames;
46  std::atomic_int _longSubmits;
47  std::atomic_int _longRenders;
48  std::atomic_int _longFrames;
49 };
50