카테고리 없음
Reference counter
newpolaris
2020. 5. 10. 22:39
void VulkanDriver::destroyVertexBuffer(Handle<HwVertexBuffer> vbh) {
if (vbh) {
auto vertexBuffer = handle_cast<VulkanVertexBuffer>(mHandleMap, vbh);
mDisposer.removeReference(vertexBuffer);
}
}
단순
void VulkanDisposer::removeReference(Key resource) noexcept {
assert(mDisposables[resource].refcount > 0);
if (--mDisposables[resource].refcount == 0) {
mGraveyard.emplace_back(std::move(mDisposables[resource]));
mDisposables.erase(resource);
}
}