Skip to content

Commit 1ea64de

Browse files
committed
Fixed some weird stuff in the ResourcesManager.hpp
1 parent 05ddec0 commit 1ea64de

File tree

1 file changed

+20
-11
lines changed

1 file changed

+20
-11
lines changed

src/Engine/ResourcesManager.hpp

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,10 @@ namespace ENGINE
7070
imageShipper = GetShipperFromName(name);
7171
return imageShipper;
7272
}
73-
imageShipper->BuildImage(core, arrayLayersCount, mipsCount, format, dstPattern);
73+
if (imageShipper->image == nullptr)
74+
{
75+
imageShipper->BuildImage(core, arrayLayersCount, mipsCount, format, dstPattern);
76+
}
7477
return imageShipper;
7578
}
7679

@@ -79,6 +82,13 @@ namespace ENGINE
7982
int mipLevelCount, int baseArrayLayer, int arrayLayerCount)
8083
{
8184
assert(core!= nullptr &&"core must be set");
85+
86+
if (imagesNames.contains(name))
87+
{
88+
ImageView* imageViewRef = GetImageViewFromName(name);
89+
return imageViewRef;
90+
}
91+
8292
auto image = std::make_unique<
8393
Image>(core->physicalDevice, core->logicalDevice.get(), imageInfo);
8494
if (imageInfo.usage == vk::ImageUsageFlagBits::eStorage)
@@ -109,7 +119,10 @@ namespace ENGINE
109119
, void* data = nullptr)
110120
{
111121
assert(core!= nullptr &&"core must be set");
112-
assert(!bufferNames.contains(name) && "Buffer name already exist");
122+
if (bufferNames.contains(name))
123+
{
124+
return GetBuffFromName(name);
125+
}
113126

114127
auto buffer = std::make_unique<Buffer>(
115128
core->physicalDevice, core->logicalDevice.get(), bufferUsageFlags, memPropertyFlags, deviceSize,
@@ -124,7 +137,10 @@ namespace ENGINE
124137
)
125138
{
126139
assert(core!= nullptr &&"core must be set");
127-
assert(!stagedBufferNames.contains(name) && "Buffer name already exist");
140+
if (stagedBufferNames.contains(name))
141+
{
142+
return GetStagedBuffFromName(name);
143+
}
128144

129145
auto buffer = std::make_unique<StagedBuffer>(
130146
core->physicalDevice, core->logicalDevice.get(), bufferUsageFlags, deviceSize);
@@ -141,11 +157,6 @@ namespace ENGINE
141157
assert(core!= nullptr &&"core must be set");
142158
assert(bufferNames.contains(name) && "Buffer dont exist");
143159

144-
auto buffer = std::make_unique<Buffer>(
145-
core->physicalDevice, core->logicalDevice.get(), bufferUsageFlags, memPropertyFlags, deviceSize,
146-
data);
147-
148-
149160
buffers.at(bufferNames.at(name)).reset(new Buffer(core->physicalDevice, core->logicalDevice.get(),
150161
bufferUsageFlags, memPropertyFlags, deviceSize, data));
151162
return buffers.at(bufferNames.at(name)).get();
@@ -158,11 +169,9 @@ namespace ENGINE
158169
assert(core!= nullptr &&"core must be set");
159170
assert(!stagedBufferNames.contains(name) && "staged buffer dont exist");
160171

161-
auto buffer = std::make_unique<StagedBuffer>(
162-
core->physicalDevice, core->logicalDevice.get(), bufferUsageFlags, deviceSize);
163-
164172
stagedBuffers.at(stagedBufferNames.at(name)).reset(
165173
new StagedBuffer(core->physicalDevice, core->logicalDevice.get(), bufferUsageFlags, deviceSize));
174+
166175
return stagedBuffers.at(stagedBufferNames.at(name)).get();
167176
}
168177

0 commit comments

Comments
 (0)