1 #include <vulkan/vulkan.h>
5 #include "renderer-vk.h"
8 #include "vkutil-pipeline.h"
10 static VkuPipelineGenerator pipe_gen;
12 RendererVK::RendererVK()
28 RendererVK::~RendererVK()
35 bool RendererVK::create_resources()
37 /* default pipeline: create binding points */
38 default_vs_ub = gfx_create_uniform_buffer();
39 if(!default_vs_ub->create(sizeof default_vs_uniforms)) {
40 fprintf(stderr, "Failed to create the default VS uniform buffer.\n");
43 ResourceVK default_vs_res;
44 if(!default_vs_res.create_ds_layout(MATRIX_UNIFORMS,
45 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
46 VK_SHADER_STAGE_VERTEX_BIT, 0)) {
47 fprintf(stderr, "Failed to create the ds layout for the default vs uniform buffer.\n");
50 default_resources.push_back(default_vs_res);
52 default_fs_ub = gfx_create_uniform_buffer();
53 if(!default_fs_ub->create(sizeof default_fs_uniforms)) {
54 fprintf(stderr, "Failed to create the default FS uniform buffer.\n");
57 ResourceVK default_fs_res;
58 if(!default_fs_res.create_ds_layout(SHADING_UNIFORMS,
59 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
60 VK_SHADER_STAGE_FRAGMENT_BIT, 0)) {
61 fprintf(stderr, "Failed to create the ds layout for the default VS uniform buffer.\n");
64 default_resources.push_back(default_fs_res);
66 sky_vs_ub = gfx_create_uniform_buffer();
67 if(!sky_vs_ub->create(sizeof sky_vs_uniforms)) {
68 fprintf(stderr, "Failed to create the VS uniform buffer for the sky.\n");
71 ResourceVK sky_vs_res;
72 if(!sky_vs_res.create_ds_layout(SKY_MATRIX_UNIFORMS,
73 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
74 VK_SHADER_STAGE_FRAGMENT_BIT, 0)) {
75 fprintf(stderr, "Failed to create the ds layout for the sky VS uniform buffer.\n");
78 sky_resources.push_back(sky_vs_res);
83 bool RendererVK::create()
85 if(!create_default_pipeline()) {
86 fprintf(stderr, "Failed to create default pipeline.\n");
90 /* if(!create_sky_pipeline()) {
91 fprintf(stderr, "Failed to create sky pipeline.\n");
98 bool RendererVK::create_default_pipeline()