summaryrefslogtreecommitdiff
path: root/src/blu_cat/int/core.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/blu_cat/int/core.cpp')
-rw-r--r--src/blu_cat/int/core.cpp24
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();