diff options
Diffstat (limited to 'src/frygon/vulkan/fgvk_image_view.c')
| -rw-r--r-- | src/frygon/vulkan/fgvk_image_view.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/frygon/vulkan/fgvk_image_view.c b/src/frygon/vulkan/fgvk_image_view.c new file mode 100644 index 00000000000..2a029265c33 --- /dev/null +++ b/src/frygon/vulkan/fgvk_image_view.c @@ -0,0 +1,42 @@ +/* + * Copyright © 2025 Lucas Francisco Fryzek + * SPDX-License-Identifier: MIT + */ +#include "fgvk_image_view.h" + +#include "fgvk_device.h" + +VKAPI_ATTR VkResult VKAPI_CALL +fgvk_CreateImageView(VkDevice _device, + const VkImageViewCreateInfo *pCreateInfo, + const VkAllocationCallbacks *pAllocator, + VkImageView *pView) +{ + VK_FROM_HANDLE(fgvk_device, dev, _device); + struct fgvk_image_view *view; + + view = vk_alloc2(&dev->vk.alloc, pAllocator, sizeof(*view), 8, + VK_SYSTEM_ALLOCATION_SCOPE_OBJECT); + if (!view) + return vk_error(dev, VK_ERROR_OUT_OF_HOST_MEMORY); + + vk_image_view_init(&dev->vk, &view->vk, pCreateInfo); + + *pView = fgvk_image_view_to_handle(view); + + return VK_SUCCESS; +} + +VKAPI_ATTR void VKAPI_CALL +fgvk_DestroyImageView(VkDevice _device, + VkImageView imageView, + const VkAllocationCallbacks *pAllocator) +{ + VK_FROM_HANDLE(fgvk_device, dev, _device); + VK_FROM_HANDLE(fgvk_image_view, view, imageView); + + if (!view) + return; + + vk_free2(&dev->vk.alloc, pAllocator, view); +} |