// Copyright (c) 2012-2017 VideoStitch SAS // Copyright (c) 2018 stitchEm #pragma once #include "lambdathread.hpp" #include "steamvrrenderer.hpp" #include <QWindow> class QOpenGLContext; class VS_COMMON_EXPORT SteamVRWindow : public QWindow { public: explicit SteamVRWindow(bool stereoscopic); virtual ~SteamVRWindow(); bool start(); // Should only be called from the primary thread virtual void stop(); SteamVRRenderer& getRenderer(); private: void renderLoop(); protected: bool shuttingDown; LambdaThread renderThread; QOpenGLContext* context; SteamVRRenderer renderer; bool started; };