X-Git-Url: https://eleni.mutantstargoat.com/git/?p=demo;a=blobdiff_plain;f=src%2Fvulkan%2Frenderer-vk.cc;fp=src%2Fvulkan%2Frenderer-vk.cc;h=bb52e94e3a79541d90fb408257f2acdebcfb3b96;hp=cbaa950a7d91a5d73f7cc62804fae7ca5b220f0e;hb=9922a7c30b64d74b424cb5783b08497396d2365c;hpb=f6ceb163227d00d7f97df1fc2dfbdd419c56277e diff --git a/src/vulkan/renderer-vk.cc b/src/vulkan/renderer-vk.cc index cbaa950..bb52e94 100644 --- a/src/vulkan/renderer-vk.cc +++ b/src/vulkan/renderer-vk.cc @@ -7,7 +7,7 @@ #include "vkutil.h" #include "vkutil-pipeline.h" -static VkuPipelineGenerator pipe_gen; +static void set_resources_layouts(VkuPipelineGenerator *pipe_gen, std::vector *res); RendererVK::RendererVK() { @@ -34,7 +34,8 @@ RendererVK::~RendererVK() bool RendererVK::create_resources() { - /* default pipeline: create binding points */ + /* default pipeline resources */ + default_vs_ub = gfx_create_uniform_buffer(); if(!default_vs_ub->create(sizeof default_vs_uniforms)) { fprintf(stderr, "Failed to create the default VS uniform buffer.\n"); @@ -62,6 +63,9 @@ bool RendererVK::create_resources() return false; } default_resources.push_back(default_fs_res); + set_resources_layouts(&default_pipe_gen, &default_resources); + + /* sky pipeline resources */ sky_vs_ub = gfx_create_uniform_buffer(); if(!sky_vs_ub->create(sizeof sky_vs_uniforms)) { @@ -76,17 +80,13 @@ bool RendererVK::create_resources() return false; } sky_resources.push_back(sky_vs_res); + set_resources_layouts(&sky_pipe_gen, &sky_resources); return true; } bool RendererVK::create() { - if(!create_default_pipeline()) { - fprintf(stderr, "Failed to create default pipeline.\n"); - return false; - } - /* if(!create_sky_pipeline()) { fprintf(stderr, "Failed to create sky pipeline.\n"); return false; @@ -97,6 +97,14 @@ bool RendererVK::create() bool RendererVK::create_default_pipeline() { - return true; } + +static void set_resources_layouts(VkuPipelineGenerator *pipe_gen, std::vector *res) +{ + for(size_t i=0; isize(); i++) { + if((*res)[i].type == RES_DESC_SET) { + pipe_gen->set_resources_layout((*res)[i].layout); + } + } +}