Files
kaizen/external/parallel-rdp/ParallelRDPWrapper.hpp
T
iris 430139dc9f Qt6 frontend
Reviewed-on: #1
Co-authored-by: iris <iris.kaizen@pm.me>
Co-committed-by: iris <iris.kaizen@pm.me>
2026-06-09 17:14:08 +02:00

38 lines
1.2 KiB
C++

#pragma once
#include <rdp_device.hpp>
#include <wsi.hpp>
#include <common.hpp>
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<Vulkan::WSIPlatform> &, const std::shared_ptr<WindowInfo> &,
Vulkan::InstanceFactory *, const u8 *);
template <bool>
void UpdateScreen() const;
void EnqueueCommand(int, const u32 *) const;
void OnFullSync() const;
[[nodiscard]] bool IsFramerateUnlocked() const;
void SetFramerateUnlocked(bool) const;
std::shared_ptr<Vulkan::WSI> wsi;
std::shared_ptr<RDP::CommandProcessor> command_processor;
std::shared_ptr<WindowInfo> windowInfo;
private:
void LoadWSIPlatform(const std::shared_ptr<Vulkan::WSIPlatform> &, const std::shared_ptr<WindowInfo> &,
Vulkan::InstanceFactory *);
void DrawFullscreenTexturedQuad(Util::IntrusivePtr<Vulkan::Image>, Util::IntrusivePtr<Vulkan::CommandBuffer>) const;
void UpdateScreen(Util::IntrusivePtr<Vulkan::Image>) const;
};