SpiecsEngine
 
Loading...
Searching...
No Matches
RendererResourcePool.cpp
Go to the documentation of this file.
1/**
2* @file RendererResourcePool.cpp.
3* @brief The RendererResourcePool Class Implementation.
4* @author Spices.
5*/
6
7#include "Pchheader.h"
9#include "Render/Vulkan/VulkanImage.h"
10
11namespace Spices {
12
13 void RendererResourcePool::OnSlateResize(uint32_t width, uint32_t height) const
14 {
16
17 /**
18 * @brief Call all Resource's OnResized().
19 */
20 for (auto& pair : m_RendererResource)
21 {
22 pair.second->OnResized(width, height);
23 }
24 }
25
27 {
29
30 /**
31 * @brief Create one if isn't exist.
32 */
33 if (m_RendererResource.find(info.name) == m_RendererResource.end())
34 {
35 m_RendererResource[info.name] = std::make_unique<RendererResource>(info);
36 }
37
38 return m_RendererResource[info.name]->GetTexture()->GetResource<VulkanImage>()->GetImageInfo(VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, mipLevel);
39 }
40
41 std::shared_ptr<VulkanImage> RendererResourcePool::AccessRowResource(const std::string& name)
42 {
44
45 if (m_RendererResource.find(name) == m_RendererResource.end())
46 {
47 std::stringstream ss;
48 ss << "Resource: " << name << " not found.";
49
50 SPICES_CORE_ERROR(ss.str())
51 }
52
53 return m_RendererResource[name]->GetTexture()->GetResource<VulkanImage>();
54 }
55}
#define SPICES_PROFILE_ZONE
VkDescriptorImageInfo * AccessResource(const RendererResourceCreateInfo &info=RendererResourceCreateInfo{}, uint32_t mipLevel=0)
Get Resource with specific name, create it if it have not been created.
void OnSlateResize(uint32_t width, uint32_t height) const
Event Called on Slate resize.
std::shared_ptr< VulkanImage > AccessRowResource(const std::string &name)
Get Row Resource with specific name.
RendererResourcePool Class. This class is a pool of all framebuffer's attachment.