mirror of
https://github.com/KytyPS5/KytyPS5.git
synced 2026-10-27 16:02:37 +00:00
* Update to SDL3 * Add XTest development dependency for SDL3 * Preserve native entry points with SDL3 * Document SDL3 XTest dependency
44 lines
1.1 KiB
C++
44 lines
1.1 KiB
C++
#ifndef EMULATOR_SRC_GRAPHICS_PRESENTATION_SYSTEMOVERLAY_H_
|
|
#define EMULATOR_SRC_GRAPHICS_PRESENTATION_SYSTEMOVERLAY_H_
|
|
|
|
#include "common/common.h"
|
|
#include "graphics/host_gpu/vulkanCommon.h"
|
|
|
|
#include <memory>
|
|
|
|
union SDL_Event;
|
|
struct SDL_Window;
|
|
|
|
namespace Libs::Graphics {
|
|
|
|
struct GraphicContext;
|
|
|
|
struct SystemOverlayVisualState {
|
|
bool active;
|
|
uint64_t revision;
|
|
};
|
|
|
|
void InitializeSystemOverlayInput(SDL_Window* window);
|
|
void ShutdownSystemOverlayInput();
|
|
bool ProcessSystemOverlayInput(const SDL_Event& event);
|
|
SystemOverlayVisualState GetSystemOverlayVisualState() noexcept;
|
|
|
|
class SystemOverlay final {
|
|
public:
|
|
explicit SystemOverlay(GraphicContext& graphics);
|
|
~SystemOverlay();
|
|
KYTY_CLASS_NO_COPY(SystemOverlay);
|
|
|
|
[[nodiscard]] bool PrepareFrame(vk::Extent2D extent, vk::Format format, uint32_t image_count);
|
|
void Record(vk::CommandBuffer command, vk::ImageView target);
|
|
void ReleaseVulkan();
|
|
|
|
private:
|
|
struct Impl;
|
|
std::unique_ptr<Impl> m_impl;
|
|
};
|
|
|
|
} // namespace Libs::Graphics
|
|
|
|
#endif // EMULATOR_SRC_GRAPHICS_PRESENTATION_SYSTEMOVERLAY_H_
|