Files
kaizen/external/parallel-rdp/ParallelRDPWrapper.hpp
2022-08-20 14:49:49 +02:00

43 lines
1.2 KiB
C++

#pragma once
#include <Core.hpp>
#include <wsi.hpp>
#include <SDL2/SDL.h>
#include <core/mmio/VI.hpp>
struct Window;
static SDL_Window* g_Window;
class ParallelRdpWindowInfo {
public:
struct CoordinatePair {
int x;
int y;
};
virtual CoordinatePair get_window_size() = 0;
virtual ~ParallelRdpWindowInfo() = default;
};
class SDLParallelRdpWindowInfo : public ParallelRdpWindowInfo {
CoordinatePair get_window_size() {
int width, height;
SDL_GetWindowSize(g_Window, &width, &height);
return CoordinatePair{ width, height };
}
};
VkQueue GetGraphicsQueue();
VkInstance GetVkInstance();
VkPhysicalDevice GetVkPhysicalDevice();
VkDevice GetVkDevice();
uint32_t GetVkGraphicsQueueFamily();
VkFormat GetVkFormat();
VkCommandBuffer GetVkCommandBuffer();
void SubmitRequestedVkCommandBuffer();
void InitParallelRDP(u8* rdram, SDL_Window*);
void UpdateScreenParallelRdp(n64::Core& core, Window& imguiWindow, n64::VI& vi);
void ParallelRdpEnqueueCommand(int command_length, u32* buffer);
void ParallelRdpOnFullSync();
void UpdateScreenParallelRdpNoGame(n64::Core& core, Window& imguiWindow);
bool IsFramerateUnlocked();
void SetFramerateUnlocked(bool unlocked);