NAP
textureutils.h
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2  * License, v. 2.0. If a copy of the MPL was not distributed with this
3  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4 
5 #pragma once
6 
7 // External Includes
8 #include <vulkan/vulkan_core.h>
9 #include <utility/dllexport.h>
10 #include <nap/numeric.h>
11 #include <utility/errorstate.h>
12 
13 // Local Includes
14 #include "surfacedescriptor.h"
15 
16 namespace nap
17 {
18  namespace utility
19  {
23  VkFormat NAPAPI getTextureFormat(ESurfaceDataType dataType, ESurfaceChannels channels, EColorSpace colorSpace);
24 
28  VkFormat NAPAPI getTextureFormat(const SurfaceDescriptor& descriptor);
29 
33  void NAPAPI transitionImageLayout(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout oldLayout, VkImageLayout newLayout,
34  VkAccessFlags srcAccessMask, VkAccessFlags dstAccessMask, VkPipelineStageFlags srcStage, VkPipelineStageFlags dstStage, uint mipLevel, uint mipLevelCount, VkImageAspectFlags aspect);
35 
39  void NAPAPI transitionImageLayout(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout oldLayout, VkImageLayout newLayout,
40  VkAccessFlags srcAccessMask, VkAccessFlags dstAccessMask, VkPipelineStageFlags srcStage, VkPipelineStageFlags dstStage, uint mipLevel, uint mipLevelCount, uint layer, uint layerCount, VkImageAspectFlags aspect);
41 
45  void NAPAPI createMipmaps(VkCommandBuffer buffer, VkImage image, VkFormat imageFormat, VkImageLayout targetLayout, VkImageAspectFlags aspect, uint32 texWidth, uint32 texHeight, uint32 mipLevels);
46 
50  void NAPAPI createMipmaps(VkCommandBuffer buffer, VkImage image, VkFormat imageFormat, VkImageLayout targetLayout, VkImageAspectFlags aspect, uint32 texWidth, uint32 texHeight, uint32 mipLevels, uint layer, uint layerCount);
51 
60  void NAPAPI blit(VkCommandBuffer commandBuffer, const Texture2D& srcTexture, const Texture2D& dstTexture);
61  }
62 }
nap::uint
unsigned int uint
Definition: numeric.h:23
nap::ESurfaceChannels
ESurfaceChannels
Definition: surfacedescriptor.h:26
nap::utility::blit
void NAPAPI blit(VkCommandBuffer commandBuffer, const Texture2D &srcTexture, const Texture2D &dstTexture)
nap::utility::getTextureFormat
VkFormat NAPAPI getTextureFormat(ESurfaceDataType dataType, ESurfaceChannels channels, EColorSpace colorSpace)
nap::uint32
uint32_t uint32
Definition: numeric.h:20
nap
Definition: templateapp.h:17
nap::ESurfaceDataType
ESurfaceDataType
Definition: surfacedescriptor.h:16
nap::utility::transitionImageLayout
void NAPAPI transitionImageLayout(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout oldLayout, VkImageLayout newLayout, VkAccessFlags srcAccessMask, VkAccessFlags dstAccessMask, VkPipelineStageFlags srcStage, VkPipelineStageFlags dstStage, uint mipLevel, uint mipLevelCount, VkImageAspectFlags aspect)
nap::utility::createMipmaps
void NAPAPI createMipmaps(VkCommandBuffer buffer, VkImage image, VkFormat imageFormat, VkImageLayout targetLayout, VkImageAspectFlags aspect, uint32 texWidth, uint32 texHeight, uint32 mipLevels)
nap::EColorSpace
EColorSpace
Definition: surfacedescriptor.h:37