#pragma once #include #include #include #include class ParallelRDP { public: class WindowInfo { public: struct CoordinatePair { float x; float y; }; virtual CoordinatePair get_window_size() = 0; virtual ~WindowInfo() = default; }; void Init(const std::shared_ptr &, const std::shared_ptr &, const std::shared_ptr &, const u8 *, void *); ParallelRDP() = default; void UpdateScreen(const n64::VI &) const; void EnqueueCommand(int, const u32 *) const; void OnFullSync() const; bool IsFramerateUnlocked() const; void SetFramerateUnlocked(bool) const; private: void LoadWSIPlatform(const std::shared_ptr &, const std::shared_ptr &, const std::shared_ptr &, void *); void DrawFullscreenTexturedQuad(Util::IntrusivePtr, Util::IntrusivePtr) const; void UpdateScreen(Util::IntrusivePtr) const; std::shared_ptr wsi; std::shared_ptr command_processor; std::shared_ptr windowInfo; SDL_Window *SDLWindow; };