#pragma once
#include <cstdint>
enum TextureTargetEnum
{
E_Texture2D,
E_CubeMapPosX,
E_CubeMapNegX,
E_CubeMapPosY,
E_CubeMapNegY,
E_CubeMapPosZ,
E_CubeMapNegZ,
};
enum TextureFormatEnum
{
E_Red,
E_RG,
E_RGB,
E_BGR,
E_RGBA,
E_BGRA,
E_StencilIndex,
E_Depth,
E_DepthStencil
};
enum TextureStorageEnum
{
E_UInt8,
E_UInt16,
E_UInt32,
E_Int8,
E_Int16,
E_Int32,
E_Float16,
E_Float32,
E_UInt8_3_3_2,
E_UInt8_2_3_3_REV,
E_UInt16_5_6_5,
E_UInt16_5_6_5_REV,
E_UInt16_4_4_4_4,
E_UInt16_4_4_4_4_REV,
E_UInt16_5_5_5_1,
E_UInt16_1_5_5_5_REV,
E_UInt32_8_8_8_8,
E_UInt32_8_8_8_8_REV,
E_UInt32_10_10_10_2,
E_UInt32_2_10_10_10_REV
};
struct Texture
{
TextureTargetEnum target;
uint32_t mipLevel;
uint32_t width;
uint32_t height;
TextureFormatEnum format;
TextureStorageEnum storage;
};