Commit efb75eb

gogu <ghglazar@gmail.com>
2026-03-13 19:32:56
sadly had to remove seg fault :(
1 parent 9376f84
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