@@ -811,7 +811,7 @@ bool create_swap_chain(struct vulkan_demo *demo) {
811811 }
812812
813813 create_info .preTransform = swap_chain_support .capabilities .currentTransform ;
814-
814+
815815 if (swap_chain_support .capabilities .supportedCompositeAlpha & VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR ) {
816816 create_info .compositeAlpha = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR ;
817817 } else if (swap_chain_support .capabilities .supportedCompositeAlpha & VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR ) {
@@ -821,7 +821,7 @@ bool create_swap_chain(struct vulkan_demo *demo) {
821821 } else if (swap_chain_support .capabilities .supportedCompositeAlpha & VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR ) {
822822 create_info .compositeAlpha = VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR ;
823823 }
824-
824+
825825 create_info .presentMode = present_mode ;
826826 create_info .clipped = VK_TRUE ;
827827
@@ -1267,7 +1267,7 @@ bool create_graphics_pipeline(struct vulkan_demo *demo) {
12671267 VkGraphicsPipelineCreateInfo pipeline_info ;
12681268 size_t read_result ;
12691269
1270- fp = fopen ("shaders/demo.vert.spv" , "r " );
1270+ fp = fopen ("shaders/demo.vert.spv" , "rb " );
12711271 if (!fp ) {
12721272 fprintf (stderr , "Couldn't open shaders/demo.vert.spv\n" );
12731273 return false;
@@ -1288,7 +1288,7 @@ bool create_graphics_pipeline(struct vulkan_demo *demo) {
12881288 goto cleanup ;
12891289 }
12901290
1291- fp = fopen ("shaders/demo.frag.spv" , "r " );
1291+ fp = fopen ("shaders/demo.frag.spv" , "rb " );
12921292 if (!fp ) {
12931293 fprintf (stderr , "Couldn't open shaders/demo.frag.spv\n" );
12941294 return false;
@@ -1497,7 +1497,7 @@ bool create_semaphores(struct vulkan_demo *demo) {
14971497 VkSemaphoreCreateInfo semaphore_info ;
14981498 VkResult result ;
14991499 uint32_t i ;
1500-
1500+
15011501 demo -> image_available = (VkSemaphore * )malloc (MAX_IN_FLIGHT_FRAMES * sizeof (VkSemaphore ));
15021502 demo -> render_finished = (VkSemaphore * )malloc (demo -> swap_chain_images_len * sizeof (VkSemaphore ));
15031503 memset (& semaphore_info , 0 , sizeof (VkSemaphoreCreateInfo ));
@@ -1525,13 +1525,13 @@ bool create_fence(struct vulkan_demo *demo) {
15251525 VkResult result ;
15261526 VkFenceCreateInfo fence_create_info ;
15271527 uint32_t i ;
1528-
1528+
15291529 demo -> render_fence = (VkFence * )malloc (MAX_IN_FLIGHT_FRAMES * sizeof (VkFence ));
15301530
15311531 memset (& fence_create_info , 0 , sizeof (VkFenceCreateInfo ));
15321532 fence_create_info .sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO ;
15331533 fence_create_info .flags = VK_FENCE_CREATE_SIGNALED_BIT ;
1534-
1534+
15351535 for (i = 0 ; i < MAX_IN_FLIGHT_FRAMES ; i ++ ) {
15361536 result = vkCreateFence (demo -> device , & fence_create_info , NULL ,
15371537 & demo -> render_fence [i ]);
@@ -2032,7 +2032,7 @@ destroy_debug_utils_messenger_ext(VkInstance instance,
20322032bool cleanup (struct vulkan_demo * demo ) {
20332033 VkResult result ;
20342034 uint32_t i ;
2035-
2035+
20362036 printf ("cleaning up\n" );
20372037 result = vkDeviceWaitIdle (demo -> device );
20382038 if (result != VK_SUCCESS ) {
@@ -2046,22 +2046,22 @@ bool cleanup(struct vulkan_demo *demo) {
20462046 MAX_IN_FLIGHT_FRAMES , demo -> command_buffers );
20472047 vkDestroyCommandPool (demo -> device , demo -> command_pool , NULL );
20482048 vkDestroySampler (demo -> device , demo -> sampler , NULL );
2049-
2049+
20502050 for (i = 0 ; i < demo -> swap_chain_images_len ; i ++ )
20512051 vkDestroySemaphore (demo -> device , demo -> render_finished [i ], NULL );
20522052 if (demo -> render_finished )
20532053 free (demo -> render_finished );
2054-
2054+
20552055 for (i = 0 ; i < MAX_IN_FLIGHT_FRAMES ; i ++ )
20562056 vkDestroySemaphore (demo -> device , demo -> image_available [i ], NULL );
20572057 if (demo -> image_available )
20582058 free (demo -> image_available );
2059-
2059+
20602060 for (i = 0 ; i < MAX_IN_FLIGHT_FRAMES ; i ++ )
20612061 vkDestroyFence (demo -> device , demo -> render_fence [i ], NULL );
20622062 if (demo -> render_fence )
20632063 free (demo -> render_fence );
2064-
2064+
20652065 vkDestroyImage (demo -> device , demo -> demo_texture_image , NULL );
20662066 vkDestroyImageView (demo -> device , demo -> demo_texture_image_view , NULL );
20672067 vkFreeMemory (demo -> device , demo -> demo_texture_memory , NULL );
@@ -2141,6 +2141,11 @@ int main(void) {
21412141 WINDOW_HEIGHT ,
21422142 SDL_WINDOW_VULKAN | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI );
21432143
2144+ if (!demo .win ) {
2145+ SDL_Log ("Error SDL_CreateWindow %s" , SDL_GetError ());
2146+ exit (1 );
2147+ }
2148+
21442149 if (!create_vulkan_demo (& demo )) {
21452150 fprintf (stderr , "failed to create vulkan demo!\n" );
21462151 exit (1 );
@@ -2255,7 +2260,7 @@ int main(void) {
22552260
22562261 result = vkWaitForFences (demo .device , 1 , & demo .render_fence [demo .current_in_flight_frame ], VK_TRUE ,
22572262 UINT64_MAX );
2258-
2263+
22592264 if (result != VK_SUCCESS ) {
22602265 fprintf (stderr , "vkWaitForFences failed: %d\n" , result );
22612266 return false;
0 commit comments