#define VKUTIL_PIPELINE_H_
#include <vulkan/vulkan.h>
-
-#define VERTEX_ATTRIB_BIT (1 << VKU_BIND_VERTEX)
-#define NORMAL_ATTRIB_BIT (1 << VKU_BIND_NORMAL)
-#define TEX_COORD_ATTRIB_BIT (1 << VKU_BIND_TEX_COORD)
+#include <vector>
enum VkuVertexBindings {
VKU_BIND_VERTEX,
std::vector<VkVertexInputBindingDescription> bind_descriptions;
std::vector<VkVertexInputAttributeDescription> attr_descriptions;
- /* uniforms */
- std::vector<VkDescriptorSetLayout> dset_layouts;
- std::vector<VkPushConstantRange> push_const_ranges;
+ /* resources */
+ std::vector<VkDescriptorSetLayout> res_layouts;
+// std::vector<VkPushConstantRange> push_const_ranges;
+
+ VkPipelineLayout layout;
public:
VkuPipelineGenerator();
~VkuPipelineGenerator();
- VkPipeline generate(VkuDynState dyn_flags) const;
+ VkPipeline generate(VkuDynState dyn_flags);
void set_shader_modules(VkShaderModule vs, VkShaderModule fs);
void set_attribute(uint32_t binding, uint32_t stride, uint32_t location,
VkFormat format);
- void set_descriptor_set_layout(const vku_descriptor &desc);
-
- void set_push_constant(); //TODO
+ void set_resources_layout(VkDescriptorSetLayout layout);
};
#endif // VKUTIL_PIPELINE_H_