Commit efb75eb
Changed files (3)
libgogvk/gogvid.c
@@ -9,15 +9,16 @@
gog_result gog_graphics_init(gog_graphics_hndl *gh)
{
- struct gog_vk_ext extensions;
+ struct gog_vk_ext extensions={0};
+ struct gog_vk_ext device_extensions={0};
//open window
- gog_open_sdl_window(gh->sdl_window_p,&extensions);
+ gog_open_sdl_window(&gh->sdl_window_p,&extensions);
//get instance
gog_vulkan_init(&gh->vk_instance, extensions, 0);
//get surface
SDL_Vulkan_CreateSurface(gh->sdl_window_p, gh->vk_instance, &gh->vk_surface);
- gog_device_init(gh,extensions);
+ gog_device_init(gh,device_extensions);
//get phizical device
//gog_get_physical_device(gh, extensions, VK_QUEUE_GRAPHICS_BIT);
//get logical device plus queues
@@ -47,13 +48,13 @@ gog_result gog_graphics_render_frame()
return GET_GOG_RESULT(GOG_SUCCES, 0);
}
-gog_result gog_open_sdl_window(SDL_Window * window, struct gog_vk_ext * extensions)
+gog_result gog_open_sdl_window(SDL_Window ** window, struct gog_vk_ext * extensions)
{
- window = SDL_CreateWindow(GOG_WINDOW_TITLE, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, GOG_WINDOW_REZ_WIDTH, GOG_WINDOW_REZ_HEIGHT,SDL_WINDOW_VULKAN);
+ *window = SDL_CreateWindow(GOG_WINDOW_TITLE, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, GOG_WINDOW_REZ_WIDTH, GOG_WINDOW_REZ_HEIGHT,SDL_WINDOW_VULKAN);
unsigned int sdl_extension_count;
- SDL_Vulkan_GetInstanceExtensions(window , &sdl_extension_count,NULL);
+ SDL_Vulkan_GetInstanceExtensions(*window , &sdl_extension_count,NULL);
const char ** sdl_extensions = malloc(sdl_extension_count*sizeof(char*));
- SDL_Vulkan_GetInstanceExtensions(window , &sdl_extension_count, sdl_extensions);
+ SDL_Vulkan_GetInstanceExtensions(*window , &sdl_extension_count, sdl_extensions);
extensions->vk_ext_count = sdl_extension_count;
extensions->vk_ext_pp = sdl_extensions;
return GET_GOG_RESULT(GOG_SUCCES,0);
@@ -91,7 +92,7 @@ gog_result gog_vulkan_init(VkInstance * instance, struct gog_vk_ext extensions,
return GET_GOG_RESULT(GOG_SUCCES,result);
}
-gog_result gog_device_init(gog_graphics_hndl *gh, struct gog_vk_ext gog_ext)
+gog_result gog_device_init(gog_graphics_hndl *gh, struct gog_vk_ext gog_device_ext)
{
unsigned int gpu_num;
VkPhysicalDeviceProperties gpu_prop;
@@ -105,7 +106,7 @@ gog_result gog_device_init(gog_graphics_hndl *gh, struct gog_vk_ext gog_ext)
vkEnumerateDeviceExtensionProperties(gpu_list[i],NULL,&extension_count,NULL);
VkExtensionProperties extensions[extension_count];
vkEnumerateDeviceExtensionProperties(gpu_list[i],NULL,&extension_count,&extensions[0]);
- if(gog_verify_device_extensions(gog_ext,extensions,extension_count).status == GOG_FAIL)
+ if(gog_verify_device_extensions(gog_device_ext,extensions,extension_count).status == GOG_FAIL)
{
continue;
}
@@ -135,14 +136,14 @@ gog_result gog_device_init(gog_graphics_hndl *gh, struct gog_vk_ext gog_ext)
return GET_GOG_RESULT(GOG_SUCCES, 0);
}
-gog_result gog_verify_device_extensions(struct gog_vk_ext gog_ext,VkExtensionProperties *ext, int ext_count)
+gog_result gog_verify_device_extensions(struct gog_vk_ext gog_device_ext,VkExtensionProperties *ext, int ext_count)
{
- for(int i=0;i<gog_ext.vk_ext_count;i++)
+ for(int i=0;i<gog_device_ext.vk_ext_count;i++)
{
int found=0;
for(int j=0;j<ext_count;j++)
{
- if(strcmp(gog_ext.vk_ext_pp[i],ext[j].extensionName))
+ if(strcmp(gog_device_ext.vk_ext_pp[i],ext[j].extensionName)==0)
{
found=1;
break;
libgogvk/gogvid.h
@@ -56,7 +56,7 @@ struct gog_vk_ext
};
-gog_result gog_open_sdl_window(SDL_Window * window, struct gog_vk_ext * extensions);
+gog_result gog_open_sdl_window(SDL_Window ** window, struct gog_vk_ext * extensions);
gog_result gog_vulkan_init(VkInstance * instance, struct gog_vk_ext extensions, int flags);
gog_result gog_get_physical_device(gog_graphics_hndl *gh, struct gog_vk_ext ext, int flags);
gog_result gog_verify_device_extensions(struct gog_vk_ext gog_ext,VkExtensionProperties *ext, int ext_count);
libgogvk.a
Binary file