diff options
Diffstat (limited to 'src/blu_cat/int/core.cpp')
-rw-r--r-- | src/blu_cat/int/core.cpp | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/src/blu_cat/int/core.cpp b/src/blu_cat/int/core.cpp index 5b9e53b..ffae1d2 100644 --- a/src/blu_cat/int/core.cpp +++ b/src/blu_cat/int/core.cpp @@ -56,14 +56,14 @@ vk_debug_callback( void load_sdl(void *obj) { - if(SDL_Init(SDL_INIT_EVERYTHING) < 0) + if(!SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTS)) { std::string error{"SDL could not initialize! SDL Error → "}; error += SDL_GetError(); - throw error; + throw CommandError{error}; } - if(SDL_Vulkan_LoadLibrary(nullptr) != 0) + if(!SDL_Vulkan_LoadLibrary(nullptr)) { SDL_Quit(); std::string error{"SDL could not initialize Vulkan! SDL_Error → "}; @@ -82,13 +82,11 @@ unload_sdl(void *obj) void load_window(void *obj) { - BluCat::INT::core.window = nullptr; BluCat::INT::core.window = SDL_CreateWindow( BluCat::INT::core.game_name.c_str(), - SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, BluCat::INT::core.display_width, BluCat::INT::core.display_height, SDL_WINDOW_VULKAN); - if(BluCat::INT::core.window == nullptr) + if(BluCat::INT::core.window == NULL) { std::string error{"Window could not be created! SDL_Error → "}; error += SDL_GetError(); @@ -124,8 +122,10 @@ load_vk_instance(void *obj) uint32_t vk_sdl_extension_count; std::vector<const char*> vk_sdl_extensions; - if(!SDL_Vulkan_GetInstanceExtensions( - BluCat::INT::core.window, &vk_sdl_extension_count, nullptr)) + const char * const *instance_extensions = + SDL_Vulkan_GetInstanceExtensions(&vk_sdl_extension_count); + + if(instance_extensions == NULL) { std::string error{ "Vulkan extensions could not be loaded by SDL! SDL_Error: "}; @@ -133,10 +133,8 @@ load_vk_instance(void *obj) throw CommandError{error}; } - vk_sdl_extensions.resize(vk_sdl_extension_count); - SDL_Vulkan_GetInstanceExtensions( - BluCat::INT::core.window, &vk_sdl_extension_count, - vk_sdl_extensions.data()); + for(auto i{0}; i < vk_sdl_extension_count; i++) + vk_sdl_extensions.push_back(instance_extensions[i]); // Combine all extensions. vk_extensions_count = vk_sdl_extension_count + @@ -254,7 +252,7 @@ load_window_surface(void *obj) { if(!SDL_Vulkan_CreateSurface( BluCat::INT::core.window, BluCat::INT::core.vk_instance, - &BluCat::INT::core.window_surface)) + nullptr, &BluCat::INT::core.window_surface)) { std::string error{"Failed to create a window surface → "}; error += SDL_GetError(); |