foo
[vktest3] / src / vk.h
index d48634f..f93634f 100644 (file)
--- a/src/vk.h
+++ b/src/vk.h
@@ -18,20 +18,34 @@ enum {
        VKQ_XFER                = 8
 };
 
-/* shader types */
+/* shader types
+ * arranged so that: (1 << VKSDR_FOO) == VK_SHADER_STAGE_FOO_BIT
+ */
 enum {
-       VKSDR_VERTEX,
-       VKSDR_PIXEL,
-       VKSDR_TESS_CTL,
-       VKSDR_TESS_EVAL,
-       VKSDR_GEOM
+       VKSDR_VERTEX    = 0,
+       VKSDR_TESS_CTL  = 1,
+       VKSDR_TESS_EVAL = 2,
+       VKSDR_GEOM              = 3,
+       VKSDR_PIXEL             = 4,
+       VKSDR_COMPUTE   = 5,
+
+       VKSDR_TASK              = 6,
+       VKSDR_MESH              = 7,
+
+       VKSDR_RAYGEN    = 8,
+       VKSDR_ANYHIT    = 9,
+       VKSDR_CLOSESTHIT = 10,
+       VKSDR_MISS              = 11,
+       VKSDR_ISECT             = 12,
+
+       VKSDR_MAX
 };
 
 /* primitives */
 enum {
-       VKPRIM_POINTS,
-       VKPRIM_LINES,
-       VKPRIM_TRIANGLES
+       VKPRIM_POINTS           = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
+       VKPRIM_LINES            = VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
+       VKPRIM_TRIANGLES        = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST
 };
 
 void vk_init_xwin(Display *dpy, Window win);
@@ -73,9 +87,8 @@ void vk_pipeln_prim(int pp, int prim);
 void vk_pipeln_polymode(int pp, int mode);
 void vk_pipeln_cull(int pp, int cull);
 void vk_pipeln_frontface(int pp, int ff);
-void vk_pipeln_linewidth(int pp, float w);
 void vk_pipeln_multisample(int pp, int nsamples);
-void vk_pipeln_colormask(int pp, int r, int g, int b);
+void vk_pipeln_colormask(int pp, int r, int g, int b, int a);
 void vk_pipeln_depthmask(int pp, int z);
 void vk_pipeln_stencilmask(int pp, int s);
 void vk_pipeln_zbuffer(int pp, int enable);
@@ -84,5 +97,6 @@ void vk_pipeln_stencil_op(int pp, int sfail, int zfail, int zpass);
 void vk_pipeln_stencil_func(int pp, int op, unsigned int ref, unsigned int mask);
 void vk_pipeln_blend(int pp, int enable);
 void vk_pipeln_blendfunc(int pp, int src, int dst);
+VkPipeline vk_pipeln(int pp);
 
 #endif /* VK_H_ */