foo
[vktest3] / src / app.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include "app.h"
4 #include "vk.h"
5
6 static VkSemaphore sem_getimg;
7
8 int app_init(void)
9 {
10         unsigned int flags;
11
12         if(vk_init(VKINIT_DEPTH, &flags) == -1) {
13                 return -1;
14         }
15
16         sem_getimg = vk_create_sem();
17         sem_draw = vk_create_sem();
18         return 0;
19 }
20
21 void app_cleanup(void)
22 {
23         vk_free_sem(sem_getimg);
24         vk_free_sem(sem_draw);
25         vk_cleanup();
26 }
27
28
29 void app_display(void)
30 {
31         int imgid;
32         VkCommandBuffer cmdbuf;
33
34         /* get the next image from the swap chain */
35         imgid = vk_next_image(sem_getimg);
36         cmdbuf = vk_get_cmdbuf(imgid);
37
38         /* TODO record */
39
40         /* submit the command buffer, wait for one semaphore, signal another */
41         vk_submit(cmdbuf, sem_getimg, sem_draw);
42
43         /* swap buffers after drawing is finished */
44         vk_present(sem_draw);
45 }
46
47 void app_reshape(int x, int y)
48 {
49         if(vk_reshape(x, y) == -1) {
50                 abort();
51         }
52 }
53
54 void app_keyboard(int key, int press)
55 {
56         if(!press) return;
57
58         switch(key) {
59         case 27:
60                 app_quit();
61                 break;
62         }
63 }
64
65 void app_mouse(int bn, int press, int x, int y)
66 {
67 }
68
69 void app_motion(int x, int y)
70 {
71 }