#pragma once #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(Vulkan::InstanceFactory*, std::unique_ptr&&, std::unique_ptr&&, const u8*); ParallelRDP() = default; void UpdateScreen(n64::VI&, bool = false); void EnqueueCommand(int, u32*); void OnFullSync(); bool IsFramerateUnlocked(); void SetFramerateUnlocked(bool); private: void LoadWSIPlatform(Vulkan::InstanceFactory*, std::unique_ptr&&, std::unique_ptr&&); void DrawFullscreenTexturedQuad(Util::IntrusivePtr, Util::IntrusivePtr); void UpdateScreen(Util::IntrusivePtr); std::unique_ptr wsi; std::unique_ptr command_processor; std::unique_ptr windowInfo; };