void VkApp::createImageViews(){ swapChainImageViews.resize(swapChainImages.size(), VDeleter<VkImageView>{device, vkDestroyImageView}); for( uint32_t i = 0; i < swapChainImages.size(); ++i ){ createImageView(swapChainImages[i], swapChainImageFormat, VK_IMAGE_ASPECT_COLOR_BIT, swapChainImageViews[i]); } }
void Window::_InitSwapchainImages() { _swapchain_images.resize(_swapchain_image_count); _swapchain_image_views.resize(_swapchain_image_count); ErrorCheck(vkGetSwapchainImagesKHR(_renderer->getDevice(), _swapchain, &_swapchain_image_count, _swapchain_images.data())); for (uint32_t i = 0; i < _swapchain_image_count; i++) { createImageView(_swapchain_images[i], _surface_format.format, VK_IMAGE_ASPECT_COLOR_BIT, _swapchain_image_views[i]); } }
void VkApp::createDepthResources() { VkFormat depthFormat = findDepthFormat(); createImage(swapChainExtent.width, swapChainExtent.height, depthFormat, VK_IMAGE_TILING_OPTIMAL, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, depthImage, depthImageMemory); createImageView(depthImage, depthFormat, VK_IMAGE_ASPECT_DEPTH_BIT, depthImageView); transitionImageLayout(depthImage, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL); }
Move<VkImageView> makeImageView (const DeviceInterface& vk, const VkDevice vkDevice, const VkImage image, const VkImageViewType imageViewType, const VkFormat format, const VkImageSubresourceRange subresourceRange) { const VkImageViewCreateInfo imageViewParams = { VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, // VkStructureType sType; DE_NULL, // const void* pNext; 0u, // VkImageViewCreateFlags flags; image, // VkImage image; imageViewType, // VkImageViewType viewType; format, // VkFormat format; makeComponentMappingRGBA(), // VkComponentMapping components; subresourceRange, // VkImageSubresourceRange subresourceRange; }; return createImageView(vk, vkDevice, &imageViewParams); }
void op3d::Engine::createTextureImageView() { createImageView(textureImage, VK_FORMAT_R8G8B8A8_UNORM, VK_IMAGE_ASPECT_COLOR_BIT, textureImageView); }