+ delete default_vs_ub;
+ delete default_fs_ub;
+ delete sky_vs_ub;
+}
+
+bool RendererVK::create_resources()
+{
+ /* default pipeline: create binding points */
+ 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");
+ return false;
+ }
+ ResourceVK default_vs_res;
+ if(!default_vs_res.create_ds_layout(MATRIX_UNIFORMS,
+ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
+ VK_SHADER_STAGE_VERTEX_BIT, 0)) {
+ fprintf(stderr, "Failed to create the ds layout for the default vs uniform buffer.\n");
+ return false;
+ }
+ default_resources.push_back(default_vs_res);
+
+ default_fs_ub = gfx_create_uniform_buffer();
+ if(!default_fs_ub->create(sizeof default_fs_uniforms)) {
+ fprintf(stderr, "Failed to create the default FS uniform buffer.\n");
+ return false;
+ }
+ ResourceVK default_fs_res;
+ if(!default_fs_res.create_ds_layout(SHADING_UNIFORMS,
+ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
+ VK_SHADER_STAGE_FRAGMENT_BIT, 0)) {
+ fprintf(stderr, "Failed to create the ds layout for the default VS uniform buffer.\n");
+ return false;
+ }
+ default_resources.push_back(default_fs_res);
+
+ sky_vs_ub = gfx_create_uniform_buffer();
+ if(!sky_vs_ub->create(sizeof sky_vs_uniforms)) {
+ fprintf(stderr, "Failed to create the VS uniform buffer for the sky.\n");
+ return false;
+ }
+ ResourceVK sky_vs_res;
+ if(!sky_vs_res.create_ds_layout(SKY_MATRIX_UNIFORMS,
+ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
+ VK_SHADER_STAGE_FRAGMENT_BIT, 0)) {
+ fprintf(stderr, "Failed to create the ds layout for the sky VS uniform buffer.\n");
+ return false;
+ }
+ sky_resources.push_back(sky_vs_res);
+
+ return true;