/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/Engine/RendererVulkan/Pools/Implementation/SemaphorePoolVulkan.cpp
47 строк
1 KB
Sanakan8472
Copy / Readback fixes (#1963)
11 июн 2026, 18:07
Не верифицирован
11 июн 2026, 18:07
b50d6f1
Код
Авторство
О чём код?
#include <RendererVulkan/RendererVulkanPCH.h> #include <RendererVulkan/Pools/SemaphorePoolVulkan.h> vk::Device ezSemaphorePoolVulkan::s_Device; ezHybridArray<vk::Semaphore, 4> ezSemaphorePoolVulkan::s_Semaphores; void ezSemaphorePoolVulkan::Initialize(vk::Device device) { s_Device = device; } void ezSemaphorePoolVulkan::DeInitialize() { for (vk::Semaphore& semaphore : s_Semaphores) { s_Device.destroySemaphore(semaphore, nullptr); } s_Semaphores.Clear(); s_Semaphores.Compact(); s_Device = nullptr; } vk::Semaphore ezSemaphorePoolVulkan::RequestSemaphore() { EZ_ASSERT_DEBUG(s_Device, "ezSemaphorePoolVulkan::Initialize not called"); if (!s_Semaphores.IsEmpty()) { vk::Semaphore semaphore = s_Semaphores.PeekBack(); s_Semaphores.PopBack(); return semaphore; } else { vk::Semaphore semaphore; vk::SemaphoreCreateInfo semaphoreCreateInfo; VK_ASSERT_DEV(s_Device.createSemaphore(&semaphoreCreateInfo, nullptr, &semaphore)); return semaphore; } } void ezSemaphorePoolVulkan::ReclaimSemaphore(vk::Semaphore& ref_semaphore) { EZ_ASSERT_DEBUG(s_Device, "ezSemaphorePoolVulkan::Initialize not called"); s_Semaphores.PushBack(ref_semaphore); }