diff options
author | Frederico Linhares <fred@linhares.blue> | 2023-10-02 14:36:20 -0300 |
---|---|---|
committer | Frederico Linhares <fred@linhares.blue> | 2023-10-02 14:36:20 -0300 |
commit | 8fa221cb60c19638d4ad0833965fee605593eea3 (patch) | |
tree | 95a2494f5581b72f949c92281ff0b793b9e29084 /src/vk | |
parent | e5b15b871f0cf73563431565a492d9ae3e92e35b (diff) |
refa Remove redundant framebuffers
* src/vk/framebuffer.hpp: Move to this class all the framebuffers.
Diffstat (limited to 'src/vk')
-rw-r--r-- | src/vk/framebuffer.cpp | 198 | ||||
-rw-r--r-- | src/vk/framebuffer.hpp | 43 | ||||
-rw-r--r-- | src/vk/graphics_pipeline_2d_solid.cpp | 40 | ||||
-rw-r--r-- | src/vk/graphics_pipeline_2d_solid.hpp | 7 | ||||
-rw-r--r-- | src/vk/graphics_pipeline_2d_wired.cpp | 40 | ||||
-rw-r--r-- | src/vk/graphics_pipeline_2d_wired.hpp | 3 | ||||
-rw-r--r-- | src/vk/graphics_pipeline_3d.cpp | 117 | ||||
-rw-r--r-- | src/vk/graphics_pipeline_3d.hpp | 7 | ||||
-rw-r--r-- | src/vk/graphics_pipeline_3d_skeletal.cpp | 117 | ||||
-rw-r--r-- | src/vk/graphics_pipeline_3d_skeletal.hpp | 7 | ||||
-rw-r--r-- | src/vk/renderer.cpp | 5 |
11 files changed, 245 insertions, 339 deletions
diff --git a/src/vk/framebuffer.cpp b/src/vk/framebuffer.cpp new file mode 100644 index 0000000..4104554 --- /dev/null +++ b/src/vk/framebuffer.cpp @@ -0,0 +1,198 @@ +/* + * Copyright 2022-2023 Frederico de Oliveira Linhares + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "framebuffer.hpp" + +#include "../core.hpp" +#include "image.hpp" + +namespace +{ +void +load_depth_image(void *obj) +{ + auto self = static_cast<VK::Framebuffer*>(obj); + + VkExtent3D extent3d{}; + extent3d.width = cg_core.display_width; + extent3d.height = cg_core.display_height; + extent3d.depth = 1; + + try + { + VK::Image::create( + cg_core.vk_device_with_swapchain, + &self->depth_image, + &self->depth_image_memory, + VK_FORMAT_D32_SFLOAT, + extent3d, + 1, + VK_IMAGE_TILING_OPTIMAL, + VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT + ); + } + catch(VK::Image::Error error) + { + std::string error_message{"Failed to create depth image → "}; + error_message += error.what(); + throw CommandError{error_message}; + } +} + +void +unload_depth_image(void *obj) +{ + auto self = static_cast<VK::Framebuffer*>(obj); + + vkDestroyImage( + cg_core.vk_device_with_swapchain->device, self->depth_image, + nullptr); + vkFreeMemory( + cg_core.vk_device_with_swapchain->device, + self->depth_image_memory, nullptr); +} + +void +load_depth_image_view(void *obj) +{ + auto self = static_cast<VK::Framebuffer*>(obj); + + try + { + VK::Image::create_view( + cg_core.vk_device_with_swapchain, &self->depth_image_view, + self->depth_image, + VK_FORMAT_D32_SFLOAT, VK_IMAGE_ASPECT_DEPTH_BIT); + } + catch(VK::Image::Error error) + { + std::string error_message{"Failed to create depth image view → "}; + error_message += error.what(); + throw CommandError{error_message}; + } +} + +void +unload_depth_image_view(void *obj) +{ + auto self = static_cast<VK::Framebuffer*>(obj); + + vkDestroyImageView( + cg_core.vk_device_with_swapchain->device, self->depth_image_view, nullptr); +} + +void +load_3d(void *obj) +{ + auto self = static_cast<VK::Framebuffer*>(obj); + + self->pipeline_3d.resize(cg_core.vk_swapchain->images_count); + for (auto i{0}; i < cg_core.vk_swapchain->images_count; i++) + { + std::array<VkImageView, 2> attachments = { + cg_core.vk_swapchain->image_views[i], + self->depth_image_view + }; + + VkFramebufferCreateInfo framebuffer_info{}; + framebuffer_info.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO; + framebuffer_info.renderPass = cg_core.vk_render_pass->pipeline_3d; + framebuffer_info.attachmentCount = attachments.size(); + framebuffer_info.pAttachments = attachments.data(); + framebuffer_info.width = cg_core.display_width; + framebuffer_info.height = cg_core.display_height; + + framebuffer_info.layers = 1; + + if(vkCreateFramebuffer( + cg_core.vk_device_with_swapchain->device, &framebuffer_info, nullptr, + &self->pipeline_3d[i]) != VK_SUCCESS) + throw CommandError{"Failed to create Vulkan Framebuffer."}; + } +} + +void +unload_3d(void *obj) +{ + auto self = static_cast<VK::Framebuffer*>(obj); + + for(auto framebuffer: self->pipeline_3d) + vkDestroyFramebuffer( + cg_core.vk_device_with_swapchain->device, framebuffer, nullptr); +} + +void +load_2d(void *obj) +{ + auto self = static_cast<VK::Framebuffer*>(obj); + + self->pipeline_2d.resize(cg_core.vk_swapchain->images_count); + for (auto i{0}; i < cg_core.vk_swapchain->images_count; i++) + { + std::array<VkImageView, 1> attachments = { + cg_core.vk_swapchain->image_views[i] + }; + + VkFramebufferCreateInfo framebuffer_info{}; + framebuffer_info.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO; + framebuffer_info.renderPass = cg_core.vk_render_pass->pipeline_2d; + framebuffer_info.attachmentCount = attachments.size(); + framebuffer_info.pAttachments = attachments.data(); + framebuffer_info.width = cg_core.display_width; + framebuffer_info.height = cg_core.display_height; + framebuffer_info.layers = 1; + + if(vkCreateFramebuffer( + cg_core.vk_device_with_swapchain->device, &framebuffer_info, nullptr, + &self->pipeline_2d[i]) + != VK_SUCCESS) + throw CommandError{"Failed to create Vulkan Framebuffer."}; + } +} + +void +unload_2d(void *obj) +{ + auto self = static_cast<VK::Framebuffer*>(obj); + + for(auto framebuffer: self->pipeline_2d) + vkDestroyFramebuffer( + cg_core.vk_device_with_swapchain->device, framebuffer, nullptr); +} + +const CommandChain loader{ + {&load_depth_image, &unload_depth_image}, + {&load_depth_image_view, &unload_depth_image_view}, + {&load_3d, &unload_3d}, + {&load_2d, &unload_2d} +}; + +} + +namespace VK +{ + +Framebuffer::Framebuffer() +{ + loader.execute(this); +} + +Framebuffer::~Framebuffer() +{ + loader.revert(this); +} + +} diff --git a/src/vk/framebuffer.hpp b/src/vk/framebuffer.hpp new file mode 100644 index 0000000..2867fa1 --- /dev/null +++ b/src/vk/framebuffer.hpp @@ -0,0 +1,43 @@ +/* + * Copyright 2022-2023 Frederico de Oliveira Linhares + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef CANDY_GEAR_VK_FRAMEBUFFER_H +#define CANDY_GEAR_VK_FRAMEBUFFER_H 1 + +#include <vector> + +#include "core.hpp" + +namespace VK +{ + +struct Framebuffer +{ + // Depth image. + VkImage depth_image; + VkDeviceMemory depth_image_memory; + VkImageView depth_image_view; + + std::vector<VkFramebuffer> pipeline_3d; + std::vector<VkFramebuffer> pipeline_2d; + + Framebuffer(); + ~Framebuffer(); +}; + +} + +#endif /* CANDY_GEAR_VK_FRAMEBUFFER_H */ diff --git a/src/vk/graphics_pipeline_2d_solid.cpp b/src/vk/graphics_pipeline_2d_solid.cpp index 8432a8a..d0c1768 100644 --- a/src/vk/graphics_pipeline_2d_solid.cpp +++ b/src/vk/graphics_pipeline_2d_solid.cpp @@ -26,45 +26,6 @@ namespace { void -load_framebuffer(void *obj) -{ - auto self = static_cast<VK::GraphicsPipeline2DSolid*>(obj); - - self->swapchain_framebuffers.resize(cg_core.vk_swapchain->images_count); - for (auto i{0}; i < cg_core.vk_swapchain->images_count; i++) - { - std::array<VkImageView, 1> attachments = { - cg_core.vk_swapchain->image_views[i] - }; - - VkFramebufferCreateInfo framebuffer_info{}; - framebuffer_info.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO; - framebuffer_info.renderPass = cg_core.vk_render_pass->pipeline_2d; - framebuffer_info.attachmentCount = attachments.size(); - framebuffer_info.pAttachments = attachments.data(); - framebuffer_info.width = cg_core.display_width; - framebuffer_info.height = cg_core.display_height; - framebuffer_info.layers = 1; - - if(vkCreateFramebuffer( - cg_core.vk_device_with_swapchain->device, &framebuffer_info, nullptr, - &self->swapchain_framebuffers[i]) - != VK_SUCCESS) - throw CommandError{"Failed to create Vulkan Framebuffer."}; - } -} - -void -unload_framebuffer(void *obj) -{ - auto self = static_cast<VK::GraphicsPipeline2DSolid*>(obj); - - for(auto framebuffer: self->swapchain_framebuffers) - vkDestroyFramebuffer( - cg_core.vk_device_with_swapchain->device, framebuffer, nullptr); -} - -void load_pipeline(void *obj) { auto self = static_cast<VK::GraphicsPipeline2DSolid*>(obj); @@ -253,7 +214,6 @@ unload_pipeline(void *obj) } const CommandChain loader{ - {&load_framebuffer, &unload_framebuffer}, {&load_pipeline, &unload_pipeline} }; diff --git a/src/vk/graphics_pipeline_2d_solid.hpp b/src/vk/graphics_pipeline_2d_solid.hpp index ec3c744..eac825f 100644 --- a/src/vk/graphics_pipeline_2d_solid.hpp +++ b/src/vk/graphics_pipeline_2d_solid.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2022 Frederico de Oliveira Linhares + * Copyright 2022-2023 Frederico de Oliveira Linhares * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,11 +18,9 @@ #define CANDY_GEAR_VK_GRAPHICS_PIPELINE_2D_SOLID_H 1 #include <memory> -#include <unordered_map> -#include <vector> #include "core.hpp" -#include "sprite.hpp" +#include "command_pool.hpp" #include "view_2d.hpp" namespace VK @@ -30,7 +28,6 @@ namespace VK struct GraphicsPipeline2DSolid { - std::vector<VkFramebuffer> swapchain_framebuffers; VkPipeline graphic_pipeline; GraphicsPipeline2DSolid(); diff --git a/src/vk/graphics_pipeline_2d_wired.cpp b/src/vk/graphics_pipeline_2d_wired.cpp index 6590508..ef43cd1 100644 --- a/src/vk/graphics_pipeline_2d_wired.cpp +++ b/src/vk/graphics_pipeline_2d_wired.cpp @@ -53,45 +53,6 @@ unload_indexes(void *obj) } void -load_framebuffer(void *obj) -{ - auto self = static_cast<VK::GraphicsPipeline2DWired*>(obj); - - self->swapchain_framebuffers.resize( - cg_core.vk_swapchain->images_count); - for (auto i{0}; i < cg_core.vk_swapchain->images_count; i++) - { - std::array<VkImageView, 1> attachments = { - cg_core.vk_swapchain->image_views[i] - }; - - VkFramebufferCreateInfo framebuffer_info{}; - framebuffer_info.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO; - framebuffer_info.renderPass = cg_core.vk_render_pass->pipeline_2d; - framebuffer_info.attachmentCount = attachments.size(); - framebuffer_info.pAttachments = attachments.data(); - framebuffer_info.width = cg_core.display_width; - framebuffer_info.height = cg_core.display_height; - framebuffer_info.layers = 1; - - if(vkCreateFramebuffer( - cg_core.vk_device_with_swapchain->device, &framebuffer_info, nullptr, - &self->swapchain_framebuffers[i]) != VK_SUCCESS) - throw CommandError{"Failed to create Vulkan Framebuffer."}; - } -} - -void -unload_framebuffer(void *obj) -{ - auto self = static_cast<VK::GraphicsPipeline2DWired*>(obj); - - for(auto framebuffer: self->swapchain_framebuffers) - vkDestroyFramebuffer( - cg_core.vk_device_with_swapchain->device, framebuffer, nullptr); -} - -void load_pipeline(void *obj) { auto self = static_cast<VK::GraphicsPipeline2DWired*>(obj); @@ -265,7 +226,6 @@ unload_pipeline(void *obj) const CommandChain loader{ {&load_indexes, &unload_indexes}, - {&load_framebuffer, &unload_framebuffer}, {&load_pipeline, &unload_pipeline} }; diff --git a/src/vk/graphics_pipeline_2d_wired.hpp b/src/vk/graphics_pipeline_2d_wired.hpp index 8c7765d..932ed61 100644 --- a/src/vk/graphics_pipeline_2d_wired.hpp +++ b/src/vk/graphics_pipeline_2d_wired.hpp @@ -18,8 +18,6 @@ #define CANDY_GEAR_VK_GRAPHICS_PIPELINE_2D_WIRED_H 1 #include <memory> -#include <unordered_map> -#include <vector> #include "core.hpp" #include "view_2d.hpp" @@ -31,7 +29,6 @@ struct GraphicsPipeline2DWired { QueueFamily *queue_family; - std::vector<VkFramebuffer> swapchain_framebuffers; VkPipeline graphic_pipeline; DestinationBuffer *index_buffer; diff --git a/src/vk/graphics_pipeline_3d.cpp b/src/vk/graphics_pipeline_3d.cpp index a98db2c..43ab734 100644 --- a/src/vk/graphics_pipeline_3d.cpp +++ b/src/vk/graphics_pipeline_3d.cpp @@ -21,7 +21,6 @@ #include "../core.hpp" #include "core.hpp" -#include "image.hpp" #include "static_mesh_vertex.hpp" #include "uniform_data_object.hpp" @@ -29,119 +28,6 @@ namespace { void -load_depth_image(void *obj) -{ - auto self = static_cast<VK::GraphicsPipeline3D*>(obj); - - VkExtent3D extent3d{}; - extent3d.width = cg_core.display_width; - extent3d.height = cg_core.display_height; - extent3d.depth = 1; - - try - { - VK::Image::create( - cg_core.vk_device_with_swapchain, - &self->depth_image, - &self->depth_image_memory, - VK_FORMAT_D32_SFLOAT, - extent3d, - 1, - VK_IMAGE_TILING_OPTIMAL, - VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT - ); - } - catch(VK::Image::Error error) - { - std::string error_message{"Failed to create depth image → "}; - error_message += error.what(); - throw CommandError{error_message}; - } -} - -void -unload_depth_image(void *obj) -{ - auto self = static_cast<VK::GraphicsPipeline3D*>(obj); - - vkDestroyImage( - cg_core.vk_device_with_swapchain->device, self->depth_image, - nullptr); - vkFreeMemory( - cg_core.vk_device_with_swapchain->device, - self->depth_image_memory, nullptr); -} - -void -load_depth_image_view(void *obj) -{ - auto self = static_cast<VK::GraphicsPipeline3D*>(obj); - - try - { - VK::Image::create_view( - cg_core.vk_device_with_swapchain, &self->depth_image_view, - self->depth_image, - VK_FORMAT_D32_SFLOAT, VK_IMAGE_ASPECT_DEPTH_BIT); - } - catch(VK::Image::Error error) - { - std::string error_message{"Failed to create depth image view → "}; - error_message += error.what(); - throw CommandError{error_message}; - } -} - -void -unload_depth_image_view(void *obj) -{ - auto self = static_cast<VK::GraphicsPipeline3D*>(obj); - - vkDestroyImageView( - cg_core.vk_device_with_swapchain->device, self->depth_image_view, nullptr); -} - -void -load_framebuffer(void *obj) -{ - auto self = static_cast<VK::GraphicsPipeline3D*>(obj); - - self->swapchain_framebuffers.resize(cg_core.vk_swapchain->images_count); - for (auto i{0}; i < cg_core.vk_swapchain->images_count; i++) - { - std::array<VkImageView, 2> attachments = { - cg_core.vk_swapchain->image_views[i], - self->depth_image_view - }; - - VkFramebufferCreateInfo framebuffer_info{}; - framebuffer_info.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO; - framebuffer_info.renderPass = cg_core.vk_render_pass->pipeline_3d; - framebuffer_info.attachmentCount = attachments.size(); - framebuffer_info.pAttachments = attachments.data(); - framebuffer_info.width = cg_core.display_width; - framebuffer_info.height = cg_core.display_height; - - framebuffer_info.layers = 1; - - if(vkCreateFramebuffer( - cg_core.vk_device_with_swapchain->device, &framebuffer_info, nullptr, - &self->swapchain_framebuffers[i]) != VK_SUCCESS) - throw CommandError{"Failed to create Vulkan Framebuffer."}; - } -} - -void -unload_framebuffer(void *obj) -{ - auto self = static_cast<VK::GraphicsPipeline3D*>(obj); - - for(auto framebuffer: self->swapchain_framebuffers) - vkDestroyFramebuffer( - cg_core.vk_device_with_swapchain->device, framebuffer, nullptr); -} - -void load_pipeline(void *obj) { auto self = static_cast<VK::GraphicsPipeline3D*>(obj); @@ -350,9 +236,6 @@ unload_pipeline(void *obj) } const CommandChain loader{ - {&load_depth_image, &unload_depth_image}, - {&load_depth_image_view, &unload_depth_image_view}, - {&load_framebuffer, &unload_framebuffer}, {&load_pipeline, &unload_pipeline} }; diff --git a/src/vk/graphics_pipeline_3d.hpp b/src/vk/graphics_pipeline_3d.hpp index af09d28..bfe034d 100644 --- a/src/vk/graphics_pipeline_3d.hpp +++ b/src/vk/graphics_pipeline_3d.hpp @@ -18,7 +18,6 @@ #define CANDY_GEAR_VK_GRAPHICS_PIPELINE_3D_H 1 #include <memory> -#include <unordered_map> #include "core.hpp" #include "command_pool.hpp" @@ -29,12 +28,6 @@ namespace VK struct GraphicsPipeline3D { - // Depth image. - VkImage depth_image; - VkDeviceMemory depth_image_memory; - VkImageView depth_image_view; - - std::vector<VkFramebuffer> swapchain_framebuffers; VkPipeline graphic_pipeline; GraphicsPipeline3D(); diff --git a/src/vk/graphics_pipeline_3d_skeletal.cpp b/src/vk/graphics_pipeline_3d_skeletal.cpp index 3386352..e0e75a9 100644 --- a/src/vk/graphics_pipeline_3d_skeletal.cpp +++ b/src/vk/graphics_pipeline_3d_skeletal.cpp @@ -21,7 +21,6 @@ #include "../core.hpp" #include "core.hpp" -#include "image.hpp" #include "skeletal_mesh_vertex.hpp" #include "uniform_data_object.hpp" @@ -29,119 +28,6 @@ namespace { void -load_depth_image(void *obj) -{ - auto self = static_cast<VK::GraphicsPipeline3DSkeletal*>(obj); - - VkExtent3D extent3d{}; - extent3d.width = cg_core.display_width; - extent3d.height = cg_core.display_height; - extent3d.depth = 1; - - try - { - VK::Image::create( - cg_core.vk_device_with_swapchain, - &self->depth_image, - &self->depth_image_memory, - VK_FORMAT_D32_SFLOAT, - extent3d, - 1, - VK_IMAGE_TILING_OPTIMAL, - VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT - ); - } - catch(VK::Image::Error error) - { - std::string error_message{"Failed to create depth image → "}; - error_message += error.what(); - throw CommandError{error_message}; - } -} - -void -unload_depth_image(void *obj) -{ - auto self = static_cast<VK::GraphicsPipeline3DSkeletal*>(obj); - - vkDestroyImage( - cg_core.vk_device_with_swapchain->device, self->depth_image, - nullptr); - vkFreeMemory( - cg_core.vk_device_with_swapchain->device, - self->depth_image_memory, nullptr); -} - -void -load_depth_image_view(void *obj) -{ - auto self = static_cast<VK::GraphicsPipeline3DSkeletal*>(obj); - - try - { - VK::Image::create_view( - cg_core.vk_device_with_swapchain, &self->depth_image_view, - self->depth_image, - VK_FORMAT_D32_SFLOAT, VK_IMAGE_ASPECT_DEPTH_BIT); - } - catch(VK::Image::Error error) - { - std::string error_message{"Failed to create depth image view → "}; - error_message += error.what(); - throw CommandError{error_message}; - } -} - -void -unload_depth_image_view(void *obj) -{ - auto self = static_cast<VK::GraphicsPipeline3DSkeletal*>(obj); - - vkDestroyImageView( - cg_core.vk_device_with_swapchain->device, self->depth_image_view, nullptr); -} - -void -load_framebuffer(void *obj) -{ - auto self = static_cast<VK::GraphicsPipeline3DSkeletal*>(obj); - - self->swapchain_framebuffers.resize(cg_core.vk_swapchain->images_count); - for (auto i{0}; i < cg_core.vk_swapchain->images_count; i++) - { - std::array<VkImageView, 2> attachments = { - cg_core.vk_swapchain->image_views[i], - self->depth_image_view - }; - - VkFramebufferCreateInfo framebuffer_info{}; - framebuffer_info.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO; - framebuffer_info.renderPass = cg_core.vk_render_pass->pipeline_3d; - framebuffer_info.attachmentCount = attachments.size(); - framebuffer_info.pAttachments = attachments.data(); - framebuffer_info.width = cg_core.display_width; - framebuffer_info.height = cg_core.display_height; - - framebuffer_info.layers = 1; - - if(vkCreateFramebuffer( - cg_core.vk_device_with_swapchain->device, &framebuffer_info, nullptr, - &self->swapchain_framebuffers[i]) != VK_SUCCESS) - throw CommandError{"Failed to create Vulkan Framebuffer."}; - } -} - -void -unload_framebuffer(void *obj) -{ - auto self = static_cast<VK::GraphicsPipeline3DSkeletal*>(obj); - - for(auto framebuffer: self->swapchain_framebuffers) - vkDestroyFramebuffer( - cg_core.vk_device_with_swapchain->device, framebuffer, nullptr); -} - -void load_pipeline(void *obj) { auto self = static_cast<VK::GraphicsPipeline3DSkeletal*>(obj); @@ -360,9 +246,6 @@ unload_pipeline(void *obj) } const CommandChain loader{ - {&load_depth_image, &unload_depth_image}, - {&load_depth_image_view, &unload_depth_image_view}, - {&load_framebuffer, &unload_framebuffer}, {&load_pipeline, &unload_pipeline} }; diff --git a/src/vk/graphics_pipeline_3d_skeletal.hpp b/src/vk/graphics_pipeline_3d_skeletal.hpp index fa9226a..027b42e 100644 --- a/src/vk/graphics_pipeline_3d_skeletal.hpp +++ b/src/vk/graphics_pipeline_3d_skeletal.hpp @@ -18,7 +18,6 @@ #define CANDY_GEAR_VK_GRAPHICS_PIPELINE_3D_SKELETAL_H 1 #include <memory> -#include <unordered_map> #include "core.hpp" #include "command_pool.hpp" @@ -29,12 +28,6 @@ namespace VK struct GraphicsPipeline3DSkeletal { - // Depth image. - VkImage depth_image; - VkDeviceMemory depth_image_memory; - VkImageView depth_image_view; - - std::vector<VkFramebuffer> swapchain_framebuffers; VkPipeline graphic_pipeline; GraphicsPipeline3DSkeletal(); diff --git a/src/vk/renderer.cpp b/src/vk/renderer.cpp index 3497db9..766690f 100644 --- a/src/vk/renderer.cpp +++ b/src/vk/renderer.cpp @@ -229,7 +229,7 @@ Renderer::draw() render_pass_begin.pNext = nullptr; render_pass_begin.renderPass = cg_core.vk_render_pass->pipeline_3d; render_pass_begin.framebuffer = - cg_core.vk_graphics_pipeline_3d->swapchain_framebuffers[image_index]; + cg_core.vk_framebuffer->pipeline_3d[image_index]; render_pass_begin.renderArea.offset = {0, 0}; render_pass_begin.renderArea.extent = { static_cast<uint32_t>(cg_core.display_width), @@ -254,8 +254,7 @@ Renderer::draw() render_pass_begin.pNext = nullptr; render_pass_begin.renderPass = cg_core.vk_render_pass->pipeline_2d; render_pass_begin.framebuffer = - cg_core.vk_graphics_pipeline_2d_solid->swapchain_framebuffers[ - image_index]; + cg_core.vk_framebuffer->pipeline_2d[image_index]; render_pass_begin.renderArea.offset = {0, 0}; render_pass_begin.renderArea.extent = { static_cast<uint32_t>(cg_core.display_width), |