|
| enum class | BufferUsage : uint8_t {
Vertex = 1
, Index = 1 << 1
, Uniform = 1 << 2
, Storage = 1 << 3
,
Indirect = 1 << 4
, TransferSrc = 1 << 5
, TransferDst = 1 << 6
} |
| enum class | AccessFlags : uint32_t {
None = 0
, IndirectCommandRead = 0x00000001
, IndexRead = 0x00000002
, VertexAttributeRead = 0x00000004
,
UniformRead = 0x00000008
, InputAttachmentRead = 0x00000010
, ShaderRead = 0x00000020
, ShaderWrite = 0x00000040
,
ColorAttachmentRead = 0x00000080
, ColorAttachmentWrite = 0x00000100
, DepthStencilAttachmentRead = 0x00000200
, DepthStencilAttachmentWrite = 0x00000400
,
TransferRead = 0x00000800
, TransferWrite = 0x00001000
, HostRead = 0x00002000
, HostWrite = 0x00004000
,
MemoryRead = 0x00008000
, MemoryWrite = 0x00010000
, TransformFeedbackWrite = 0x02000000
, TransformFeedbackCounterRead = 0x04000000
,
TransformFeedbackCounterWrite = 0x08000000
, ConditionalRenderingRead = 0x00100000
, ColorAttachmentReadNoncoherent = 0x00080000
, AccelerationStructureRead = 0x00200000
,
AccelerationStructureWrite = 0x00400000
, FragmentDensityMapRead = 0x01000000
, FragmentShadingRateAttachmentRead = 0x00800000
, CommandPreprocessRead = 0x00020000
,
CommandPreprocessWrite = 0x00040000
} |
| enum class | API { OpenGL = 0
, Vulkan
, DirectX11
, DirectX12
} |
| enum class | VendorType {
Unset
, Unknown
, AMD
, Imagination
,
Nvidia
, Arm
, Qualcomm
, Intel
} |
| enum class | LoadOp { Load = 0
, Clear
, DontCare
} |
| enum class | StoreOp { Store = 0
, DontCare
} |
| enum class | TextureWrapMode : uint8_t {
Repeat = 0
, ClampToEdge
, ClampToBorder
, MirroredRepeat
,
MirroredClampToEdge
} |
| enum class | TextureFilter : uint8_t { Nearest = 0
, Linear
} |
| enum class | ClearMode : uint8_t {
Color = 1 << 0
, Depth = 1 << 1
, Stencil = 1 << 2
, ColorAndDepth = Color | Depth
,
All = ColorAndDepth | Stencil
} |
| enum class | ImageLayout : uint8_t {
Undefined
, General
, ColorAttachment
, DepthWrite
,
DepthRead
, ShaderRead
, TransferSrc
, TransferDst
,
Present
} |
| enum class | MemoryUsage {
GPUOnly
, CPUToGPU
, GPUToCPU
, CPUOnly
,
Transient
} |
| enum class | ImageDimension { Invalid
, Dimension1D
, Dimension2D
, Dimension3D
} |
| enum class | ImageAspectBits : uint16_t {
None = 0
, Color = 0x00000001
, Depth = 0x00000002
, Stencil = 0x00000004
,
Metadata = 0x00000008
, Plane0 = 0x00000010
, Plane1 = 0x00000020
, Plane2 = 0x00000040
,
MemoryPlane0 = 0x00000080
, MemoryPlane1 = 0x00000100
, MemoryPlane2 = 0x00000200
, MemoryPlane3 = 0x00000400
} |
| enum class | PipelineStageBit : uint32_t {
None = 0
, TopOfPipe = 0x00000001
, DrawIndirect = 0x00000002
, VertexInput = 0x00000004
,
VertexShader = 0x00000008
, TesslationControlShader = 0x00000010
, TesselationEvaluationShader = 0x00000020
, GeometryShader = 0x00000040
,
FragmentShader = 0x00000080
, EarlyFragmentTests = 0x00000100
, LateFragmentTests = 0x00000200
, ColorAttachmentOutput = 0x00000400
,
ComputeShader = 0x00000800
, Transfer = 0x00001000
, BottomOfPipe = 0x00002000
, Host = 0x00004000
,
AllGraphics = 0x00008000
, AllCommands = 0x00010000
, TransformFeedback = 0x01000000
, ConditionalRendering = 0x00040000
,
AccelerationStructureBuild = 0x02000000
, RayTracingShader = 0x00200000
, FragmentDensityProcess = 0x00800000
, FragmentShaderRateAttachment = 0x00400000
,
CommandPreprocess = 0x00020000
, TaskShader = 0x00080000
, MeshShader = 0x00100000
} |
| enum class | Format {
Invalid
, R4G4_UNORM_PACK8
, R4G4B4A4_UNORM_PACK16
, B4G4R4A4_UNORM_PACK16
,
R5G6B5_UNORM_PACK16
, B5G6R5_UNORM_PACK16
, R5G5B5A1_UNORM_PACK16
, B5G5R5A1_UNORM_PACK16
,
A1R5G5B5_UNORM_PACK16
, R8_UNORM
, R8_SNORM
, R8_USCALED
,
R8_SSCALED
, R8_UINT
, R8_SINT
, R8_SRGB
,
R8G8_UNORM
, R8G8_SNORM
, R8G8_USCALED
, R8G8_SSCALED
,
R8G8_UINT
, R8G8_SINT
, R8G8_SRGB
, R8G8B8_UNORM
,
R8G8B8_SNORM
, R8G8B8_USCALED
, R8G8B8_SSCALED
, R8G8B8_UINT
,
R8G8B8_SINT
, R8G8B8_SRGB
, B8G8R8_UNORM
, B8G8R8_SNORM
,
B8G8R8_USCALED
, B8G8R8_SSCALED
, B8G8R8_UINT
, B8G8R8_SINT
,
B8G8R8_SRGB
, R8G8B8A8_UNORM
, R8G8B8A8_SNORM
, R8G8B8A8_USCALED
,
R8G8B8A8_SSCALED
, R8G8B8A8_UINT
, R8G8B8A8_SINT
, R8G8B8A8_SRGB
,
B8G8R8A8_UNORM
, B8G8R8A8_SNORM
, B8G8R8A8_USCALED
, B8G8R8A8_SSCALED
,
B8G8R8A8_UINT
, B8G8R8A8_SINT
, B8G8R8A8_SRGB
, A8B8G8R8_UNORM_PACK32
,
A8B8G8R8_SNORM_PACK32
, A8B8G8R8_USCALED_PACK32
, A8B8G8R8_SSCALED_PACK32
, A8B8G8R8_UINT_PACK32
,
A8B8G8R8_SINT_PACK32
, A8B8G8R8_SRGB_PACK32
, A2R10G10B10_UNORM_PACK32
, A2R10G10B10_SNORM_PACK32
,
A2R10G10B10_USCALED_PACK32
, A2R10G10B10_SSCALED_PACK32
, A2R10G10B10_UINT_PACK32
, A2R10G10B10_SINT_PACK32
,
A2B10G10R10_UNORM_PACK32
, A2B10G10R10_SNORM_PACK32
, A2B10G10R10_USCALED_PACK32
, A2B10G10R10_SSCALED_PACK32
,
A2B10G10R10_UINT_PACK32
, A2B10G10R10_SINT_PACK32
, R16_UNORM
, R16_SNORM
,
R16_USCALED
, R16_SSCALED
, R16_UINT
, R16_SINT
,
R16_SFLOAT
, R16G16_UNORM
, R16G16_SNORM
, R16G16_USCALED
,
R16G16_SSCALED
, R16G16_UINT
, R16G16_SINT
, R16G16_SFLOAT
,
R16G16B16_UNORM
, R16G16B16_SNORM
, R16G16B16_USCALED
, R16G16B16_SSCALED
,
R16G16B16_UINT
, R16G16B16_SINT
, R16G16B16_SFLOAT
, R16G16B16A16_UNORM
,
R16G16B16A16_SNORM
, R16G16B16A16_USCALED
, R16G16B16A16_SSCALED
, R16G16B16A16_UINT
,
R16G16B16A16_SINT
, R16G16B16A16_SFLOAT
, R32_UINT
, R32_SINT
,
R32_SFLOAT
, R32G32_UINT
, R32G32_SINT
, R32G32_SFLOAT
,
R32G32B32_UINT
, R32G32B32_SINT
, R32G32B32_SFLOAT
, R32G32B32A32_UINT
,
R32G32B32A32_SINT
, R32G32B32A32_SFLOAT
, R64_UINT
, R64_SINT
,
R64_SFLOAT
, R64G64_UINT
, R64G64_SINT
, R64G64_SFLOAT
,
R64G64B64_UINT
, R64G64B64_SINT
, R64G64B64_SFLOAT
, R64G64B64A64_UINT
,
R64G64B64A64_SINT
, R64G64B64A64_SFLOAT
, B10G11R11_UFLOAT_PACK32
, E5B9G9R9_UFLOAT_PACK32
,
D16_UNORM
, X8_D24_UNORM_PACK32
, D32_SFLOAT
, S8_UINT
,
D16_UNORM_S8_UINT
, D24_UNORM_S8_UINT
, D32_SFLOAT_S8_UINT
, BC1_RGB_UNORM_BLOCK
,
BC1_RGB_SRGB_BLOCK
, BC1_RGBA_UNORM_BLOCK
, BC1_RGBA_SRGB_BLOCK
, BC2_UNORM_BLOCK
,
BC2_SRGB_BLOCK
, BC3_UNORM_BLOCK
, BC3_SRGB_BLOCK
, BC4_UNORM_BLOCK
,
BC4_SNORM_BLOCK
, BC5_UNORM_BLOCK
, BC5_SNORM_BLOCK
, BC6H_UFLOAT_BLOCK
,
BC6H_SFLOAT_BLOCK
, BC7_UNORM_BLOCK
, BC7_SRGB_BLOCK
, ETC2_R8G8B8_UNORM_BLOCK
,
ETC2_R8G8B8_SRGB_BLOCK
, ETC2_R8G8B8A1_UNORM_BLOCK
, ETC2_R8G8B8A1_SRGB_BLOCK
, ETC2_R8G8B8A8_UNORM_BLOCK
,
ETC2_R8G8B8A8_SRGB_BLOCK
, EAC_R11_UNORM_BLOCK
, EAC_R11_SNORM_BLOCK
, EAC_R11G11_UNORM_BLOCK
,
EAC_R11G11_SNORM_BLOCK
, ASTC_4x4_UNORM_BLOCK
, ASTC_4x4_SRGB_BLOCK
, ASTC_5x4_UNORM_BLOCK
,
ASTC_5x4_SRGB_BLOCK
, ASTC_5x5_UNORM_BLOCK
, ASTC_5x5_SRGB_BLOCK
, ASTC_6x5_UNORM_BLOCK
,
ASTC_6x5_SRGB_BLOCK
, ASTC_6x6_UNORM_BLOCK
, ASTC_6x6_SRGB_BLOCK
, ASTC_8x5_UNORM_BLOCK
,
ASTC_8x5_SRGB_BLOCK
, ASTC_8x6_UNORM_BLOCK
, ASTC_8x6_SRGB_BLOCK
, ASTC_8x8_UNORM_BLOCK
,
ASTC_8x8_SRGB_BLOCK
, ASTC_10x5_UNORM_BLOCK
, ASTC_10x5_SRGB_BLOCK
, ASTC_10x6_UNORM_BLOCK
,
ASTC_10x6_SRGB_BLOCK
, ASTC_10x8_UNORM_BLOCK
, ASTC_10x8_SRGB_BLOCK
, ASTC_10x10_UNORM_BLOCK
,
ASTC_10x10_SRGB_BLOCK
, ASTC_12x10_UNORM_BLOCK
, ASTC_12x10_SRGB_BLOCK
, ASTC_12x12_UNORM_BLOCK
,
ASTC_12x12_SRGB_BLOCK
, G8B8G8R8_422_UNORM
, B8G8R8G8_422_UNORM
, G8_B8_R8_3PLANE_420_UNORM
,
G8_B8R8_2PLANE_420_UNORM
, G8_B8_R8_3PLANE_422_UNORM
, G8_B8R8_2PLANE_422_UNORM
, G8_B8_R8_3PLANE_444_UNORM
,
R10X6_UNORM_PACK16
, R10X6G10X6_UNORM_2PACK16
, R10X6G10X6B10X6A10X6_UNORM_4PACK16
, G10X6B10X6G10X6R10X6_422_UNORM_4PACK16
,
B10X6G10X6R10X6G10X6_422_UNORM_4PACK16
, G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16
, G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16
, G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16
,
G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16
, G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16
, R12X4_UNORM_PACK16
, R12X4G12X4_UNORM_2PACK16
,
R12X4G12X4B12X4A12X4_UNORM_4PACK16
, G12X4B12X4G12X4R12X4_422_UNORM_4PACK16
, B12X4G12X4R12X4G12X4_422_UNORM_4PACK16
, G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16
,
G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16
, G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16
, G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16
, G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16
,
G16B16G16R16_422_UNORM
, B16G16R16G16_422_UNORM
, G16_B16_R16_3PLANE_420_UNORM
, G16_B16R16_2PLANE_420_UNORM
,
G16_B16_R16_3PLANE_422_UNORM
, G16_B16R16_2PLANE_422_UNORM
, G16_B16_R16_3PLANE_444_UNORM
, G8_B8R8_2PLANE_444_UNORM
,
G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16
, G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16
, G16_B16R16_2PLANE_444_UNORM
, A4R4G4B4_UNORM_PACK16
,
A4B4G4R4_UNORM_PACK16
, ASTC_4x4_SFLOAT
, ASTC_5x4_SFLOAT
, ASTC_5x5_SFLOAT
,
ASTC_6x5_SFLOAT
, ASTC_6x6_SFLOAT
, ASTC_8x5_SFLOAT
, ASTC_8x6_SFLOAT
,
ASTC_8x8_SFLOAT
, ASTC_10x5_SFLOAT
, ASTC_10x6_SFLOAT
, ASTC_10x8_SFLOAT
,
ASTC_10x10_SFLOAT
, ASTC_12x10_SFLOAT
, ASTC_12x12_SFLOAT
, PVRTC1_2BPP_UNORM
,
PVRTC1_4BPP_UNORM
, PVRTC2_2BPP_UNORM
, PVRTC2_4BPP_UNORM
, PVRTC1_2BPP_SRGB
,
PVRTC1_4BPP_SRGB
, PVRTC2_2BPP_SRGB
, PVRTC2_4BPP_SRGB
, R16G16_S10_5
,
A1B5G5R5_UNORM_PACK16
, A8_UNORM
} |
| enum class | FormatDepthStencilType : uint8_t { NotDepthStencil = 0
, Depth = 1 << 0
, Stencil = 1 << 1
, DepthStencil = static_cast<uint8_t>(FormatDepthStencilType::Depth) | static_cast<uint8_t>(FormatDepthStencilType::Stencil)
} |
| enum class | ShaderStage : uint8_t { SHADER_STAGE_TYPES
, GraphicsCount = Compute
, Count
} |
| enum class | ShaderStageBit : uint8_t {
None = 0
, SHADER_STAGE_TYPES
, Count = 8
, AllGraphics = Vertex | TesselationEvaluation | TesselationControl | Geometry | Fragment | Task | Mesh
,
All = AllGraphics | Compute
} |
| enum class | BindingType {
None
, Sampler
, CombinedImageSampler
, SampledImage
,
StorageImage
, UniformTexelBuffer
, StorageTexelBuffer
, UniformBuffer
,
StorageBuffer
, UniformBufferDynamic
, StorageBufferDynamic
, AccelerationStructure
} |
| enum class | BlendOperation : uint8_t { BLEND_OPERATIONS_LIST
, Count
} |
| enum class | BlendFactor : uint8_t { BLEND_FACTORS_LIST
, Count
} |
| enum class | GeometryType : uint8_t { GEOMETRY_TYPES_LIST
, Count
} |
| enum class | PolygonFillMode : uint8_t { Point
, Line
, Fill
} |
| enum class | CompareOperation : uint8_t {
Never
, Less
, Equal
, LessOrEqual
,
Greater
, NotEqual
, GreaterOrEqual
, Always
} |
| enum class | ColorMask : uint8_t {
None = 0
, Red = 0x1
, Green = 0x2
, Blue = 0x4
,
Alpha = 0x8
, RG = Red | Green
, RB = Red | Blue
, RA = Red | Alpha
,
GB = Green | Blue
, GA = Green | Alpha
, BA = Blue | Alpha
, RGB = Red | Green | Blue
,
RGA = Red | Green | Alpha
, RBA = Red | Blue | Alpha
, GBA = Green | Blue | Alpha
, RGBA = Red | Green | Blue | Alpha
} |
| enum class | CullMode : uint8_t { None = 0
, Front
, Back
, Both
} |
| enum class | AttributeUsage {
Position
, Color
, TexCoord0
, TexCoord1
,
TexCoord2
, TexCoord3
, Normal
, Tangent
,
BlendWeights
, BlendIndices
, Other
} |
| enum class | VertexInputRate { Vertex
, Instance
} |
| enum class | ImageUsageFlags : uint8_t {
Sampled = 1
, RenderTarget = 1 << 1
, DepthStencil = 1 << 2
, Storage = 1 << 3
,
GenerateMipmaps = 1 << 4
, Cubemap = 1 << 5
, TransferSrc = 1 << 6
, TransferDst = 1 << 7
,
Count = 8
} |
|
|
ImageAspectBits | GetFormatAspect (Format format) |
|
FormatDepthStencilType | GetFormatDepthStencilType (Format format) |
|
bool | IsFormatCompressed (Format format) |
|
uint8_t | GetCompressedFormatBlockSize (Format format) |
|
uint8_t | GetFormatBytesPerPixel (Grindstone::GraphicsAPI::Format format) |
|
const char * | GetShaderStageName (Grindstone::GraphicsAPI::ShaderStage stage) |
|
const char * | GetBlendOperationName (Grindstone::GraphicsAPI::BlendOperation op) |
|
const char * | GetBlendFactorName (Grindstone::GraphicsAPI::BlendFactor factor) |
|
const char * | GetGeometryTypeName (Grindstone::GraphicsAPI::GeometryType stage) |
|
const char * | GetPolygonFillModeName (Grindstone::GraphicsAPI::PolygonFillMode mode) |
|
const char * | GetCompareOperationName (Grindstone::GraphicsAPI::CompareOperation op) |
|
const char * | GetColorMaskName (Grindstone::GraphicsAPI::ColorMask colorMask) |
|
const char * | GetCullModeName (Grindstone::GraphicsAPI::CullMode cullMode) |
|
VkFilter | TranslateFilterToDirectX12 (TextureFilter f) |
|
VkSamplerAddressMode | TranslateWrapToDirectX12 (TextureWrapMode m) |
|
VkFormat | TranslateVertexFormatsToDirectX12 (VertexFormat format) |
|
ColorFormat | TranslateColorFormatFromDirectX12 (VkFormat format) |
|
DepthFormat | TranslateDepthFormatFromDirectX12 (VkFormat format) |
|
VkFormat | TranslateColorFormatToDirectX12 (ColorFormat in, uint8_t &channels) |
|
VkFormat | TranslateDepthFormatToDirectX12 (DepthFormat in) |
|
VkImageView | createImageView (VkImage image, VkFormat format, VkImageAspectFlags aspectFlags, uint32_t mipLevels) |
|
void | createImage (uint32_t width, uint32_t height, uint32_t mipLevels, VkFormat format, VkImageTiling tiling, VkImageUsageFlags usage, VkMemoryPropertyFlags properties, VkImage &image, VkDeviceMemory &imageMemory) |
|
void | createBuffer (VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags properties, VkBuffer &buffer, VkDeviceMemory &bufferMemory) |
|
VkCommandBuffer | beginSingleTimeCommands () |
|
void | endSingleTimeCommands (VkCommandBuffer commandBuffer) |
|
void | copyBuffer (VkBuffer srcBuffer, VkBuffer dstBuffer, VkDeviceSize size) |
|
void | transitionImageLayout (VkImage image, VkFormat format, VkImageLayout oldLayout, VkImageLayout newLayout, uint32_t mipLevels) |
|
void | copyBufferToImage (VkBuffer buffer, VkImage image, uint32_t width, uint32_t height) |
|
OpenGLFormats | TranslateFormatToOpenGL (Format format) |
|
GLenum | TranslateMinFilterToOpenGL (bool hasMips, TextureFilter minFilter, TextureFilter mipFilter) |
|
GLenum | TranslateMagFilterToOpenGL (TextureFilter) |
|
GLenum | TranslateWrapToOpenGL (TextureWrapMode) |
|
GLenum | TranslateCullModeToOpenGL (CullMode cullMode) |
|
GLenum | TranslatePolygonModeToOpenGL (PolygonFillMode mode) |
|
GLenum | TranslateGeometryTypeToOpenGL (GeometryType geometryType) |
|
GLenum | TranslateBlendOpToOpenGL (BlendOperation op) |
|
GLenum | TranslateBlendFactorToOpenGL (BlendFactor factor) |
|
GLenum | TranslateCompareOpToOpenGL (CompareOperation op) |