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);
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);
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_ */