mirror of
https://github.com/gopher64/gopher64.git
synced 2026-07-11 01:25:20 +02:00
3bc7c96191
* move input polling * more * more * more
56 lines
1.5 KiB
C++
56 lines
1.5 KiB
C++
#include "wsi_platform.hpp"
|
|
#include <SDL3/SDL_vulkan.h>
|
|
|
|
VkSurfaceKHR SDL_WSIPlatform::create_surface(VkInstance instance,
|
|
VkPhysicalDevice gpu) {
|
|
VkSurfaceKHR surface = nullptr;
|
|
bool result = SDL_Vulkan_CreateSurface(window, instance, NULL, &surface);
|
|
if (result != true) {
|
|
printf("Error creating surface\n");
|
|
}
|
|
return surface;
|
|
}
|
|
|
|
void SDL_WSIPlatform::destroy_surface(VkInstance instance,
|
|
VkSurfaceKHR surface) {
|
|
SDL_Vulkan_DestroySurface(instance, surface, NULL);
|
|
}
|
|
|
|
std::vector<const char *> SDL_WSIPlatform::get_instance_extensions() {
|
|
|
|
unsigned int extensionCount = 0;
|
|
char const *const *extensions =
|
|
SDL_Vulkan_GetInstanceExtensions(&extensionCount);
|
|
if (extensions == NULL) {
|
|
printf("Error getting instance extensions\n");
|
|
}
|
|
|
|
std::vector<const char *> extensionNames;
|
|
for (unsigned int i = 0; i < extensionCount; ++i) {
|
|
extensionNames.push_back(extensions[i]);
|
|
}
|
|
return extensionNames;
|
|
}
|
|
|
|
uint32_t SDL_WSIPlatform::get_surface_width() {
|
|
int w, h;
|
|
SDL_GetWindowSize(window, &w, &h);
|
|
return w;
|
|
}
|
|
|
|
uint32_t SDL_WSIPlatform::get_surface_height() {
|
|
int w, h;
|
|
SDL_GetWindowSize(window, &w, &h);
|
|
return h;
|
|
}
|
|
|
|
bool SDL_WSIPlatform::alive(Vulkan::WSI &wsi) { return true; }
|
|
|
|
void SDL_WSIPlatform::poll_input() { SDL_PumpEvents(); }
|
|
|
|
void SDL_WSIPlatform::poll_input_async(Granite::InputTrackerHandler *handler) {}
|
|
|
|
void SDL_WSIPlatform::set_window(SDL_Window *_window) { window = _window; }
|
|
|
|
void SDL_WSIPlatform::do_resize() { resize = true; }
|