fixes
[demo] / src / vulkan / renderer-vk.cc
index cbaa950..bb52e94 100644 (file)
@@ -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<ResourceVK> *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<ResourceVK> *res)
+{
+       for(size_t i=0; i<res->size(); i++) {
+               if((*res)[i].type == RES_DESC_SET) {
+                       pipe_gen->set_resources_layout((*res)[i].layout);
+               }
+       }
+}