Divide Framework 0.1
A free and open-source 3D Framework under heavy development
Loading...
Searching...
No Matches
RenderAPIEnums.h File Reference

Go to the source code of this file.

Namespaces

namespace  Divide
 Handle console commands that start with a forward slash.
 
namespace  Divide::Names
 

Macros

#define DVD_GFX_ENUMS_H
 

Typedefs

using Divide::RenderTargetID = U32
 
using Divide::QueryResults = std::array< std::pair< QueryType, I64 >, to_base(QueryType::COUNT)>
 
using Divide::AttributeFlags = std::array< bool, to_base(AttribLocation::COUNT)>
 
using Divide::AttributeOffsets = std::array< size_t, to_base(AttribLocation::COUNT)>
 

Enumerations

enum class  Divide::RTColourAttachmentSlot : U8 {
  Divide::SLOT_0 = 0 , Divide::SLOT_1 , Divide::SLOT_2 , Divide::SLOT_3 ,
  Divide::COUNT
}
 
enum class  Divide::RenderAPI : U8 { Divide::None , Divide::OpenGL , Divide::Vulkan , Divide::COUNT }
 
enum class  Divide::DescriptorSetUsage : U8 {
  Divide::PER_DRAW = 0 , Divide::PER_BATCH , Divide::PER_PASS , Divide::PER_FRAME ,
  Divide::COUNT
}
 
enum class  Divide::ReflectorType : U8 { Divide::PLANAR = 0 , Divide::CUBE , Divide::COUNT }
 
enum class  Divide::RefractorType : U8 { Divide::PLANAR = 0 , Divide::COUNT }
 
enum class  Divide::ImageUsage : U8 {
  Divide::UNDEFINED = 0 , Divide::SHADER_READ , Divide::SHADER_WRITE , Divide::SHADER_READ_WRITE ,
  Divide::CPU_READ , Divide::RT_COLOUR_ATTACHMENT , Divide::RT_DEPTH_ATTACHMENT , Divide::RT_DEPTH_STENCIL_ATTACHMENT ,
  Divide::COUNT
}
 
enum class  Divide::LightType : U8 { Divide::DIRECTIONAL = 0 , Divide::POINT = 1 , Divide::SPOT = 2 , Divide::COUNT }
 The different types of lights supported. More...
 
enum class  Divide::FrustumCollision : U8 { Divide::FRUSTUM_OUT = 0 , Divide::FRUSTUM_IN , Divide::FRUSTUM_INTERSECT , Divide::COUNT }
 
enum class  Divide::FrustumPlane : U8 {
  Divide::PLANE_LEFT = 0 , Divide::PLANE_RIGHT , Divide::PLANE_TOP , Divide::PLANE_BOTTOM ,
  Divide::PLANE_NEAR , Divide::PLANE_FAR , Divide::COUNT
}
 
enum class  Divide::FrustumPoints : U8 {
  Divide::NEAR_LEFT_TOP = 0 , Divide::NEAR_RIGHT_TOP , Divide::NEAR_RIGHT_BOTTOM , Divide::NEAR_LEFT_BOTTOM ,
  Divide::FAR_LEFT_TOP , Divide::FAR_RIGHT_TOP , Divide::FAR_RIGHT_BOTTOM , Divide::FAR_LEFT_BOTTOM ,
  Divide::COUNT
}
 
enum class  Divide::AttribLocation : U8 {
  Divide::POSITION = 0 , Divide::TEXCOORD = 1 , Divide::NORMAL = 2 , Divide::TANGENT = 3 ,
  Divide::COLOR = 4 , Divide::BONE_WEIGHT = 5 , Divide::BONE_INDICE = 6 , Divide::WIDTH = 7 ,
  Divide::GENERIC = 8 , Divide::COUNT
}
 State the various attribute locations to use in shaders with VAO/VB's. More...
 
enum class  Divide::RenderStage : U8 {
  Divide::DISPLAY = 0 , Divide::REFLECTION , Divide::REFRACTION , Divide::NODE_PREVIEW ,
  Divide::SHADOW , Divide::COUNT
}
 
enum class  Divide::RenderPassType : U8 {
  Divide::PRE_PASS = 0 , Divide::MAIN_PASS = 1 , Divide::OIT_PASS = 2 , Divide::TRANSPARENCY_PASS = 3 ,
  Divide::COUNT
}
 
enum class  Divide::PBType : U8 { Divide::PB_TEXTURE_1D , Divide::PB_TEXTURE_2D , Divide::PB_TEXTURE_3D , Divide::COUNT }
 
enum class  Divide::PrimitiveTopology : U8 {
  Divide::POINTS = 0 , Divide::LINES , Divide::LINE_STRIP , Divide::TRIANGLES ,
  Divide::TRIANGLE_STRIP , Divide::TRIANGLE_FAN , Divide::LINES_ADJANCENCY , Divide::LINE_STRIP_ADJACENCY ,
  Divide::TRIANGLES_ADJACENCY , Divide::TRIANGLE_STRIP_ADJACENCY , Divide::PATCH , Divide::COMPUTE ,
  Divide::COUNT
}
 
enum class  Divide::BlendProperty : U8 {
  Divide::ZERO = 0 , Divide::ONE , Divide::SRC_COLOR , Divide::INV_SRC_COLOR ,
  Divide::SRC_ALPHA , Divide::INV_SRC_ALPHA , Divide::DEST_ALPHA , Divide::INV_DEST_ALPHA ,
  Divide::DEST_COLOR , Divide::INV_DEST_COLOR , Divide::SRC_ALPHA_SAT , Divide::COUNT
}
 Specifies how the red, green, blue, and alpha source blending factors are computed. More...
 
enum class  Divide::BlendOperation : U8 {
  Divide::ADD = 0 , Divide::SUBTRACT , Divide::REV_SUBTRACT , Divide::MIN ,
  Divide::MAX , Divide::COUNT
}
 Specifies how source and destination colours are combined. More...
 
enum class  Divide::ComparisonFunction : U8 {
  Divide::NEVER = 0 , Divide::LESS , Divide::EQUAL , Divide::LEQUAL ,
  Divide::GREATER , Divide::NEQUAL , Divide::GEQUAL , Divide::ALWAYS ,
  Divide::COUNT
}
 
enum class  Divide::CullMode : U8 {
  Divide::NONE = 0 , Divide::BACK , Divide::FRONT , Divide::ALL ,
  Divide::COUNT
}
 Specifies whether front- or back-facing facets are candidates for culling. More...
 
enum class  Divide::ShaderType : U8 {
  Divide::FRAGMENT = 0 , Divide::VERTEX = 1 , Divide::GEOMETRY = 2 , Divide::TESSELLATION_CTRL = 3 ,
  Divide::TESSELLATION_EVAL = 4 , Divide::COMPUTE = 5 , Divide::COUNT
}
 Available shader stages. More...
 
enum class  Divide::ShaderStageVisibility : U16 {
  Divide::NONE = 0 , Divide::VERTEX = toBit(1) , Divide::GEOMETRY = toBit(2) , Divide::TESS_CONTROL = toBit(3) ,
  Divide::TESS_EVAL = toBit(4) , Divide::FRAGMENT = toBit(5) , Divide::COMPUTE = toBit(6) , Divide::COUNT = 7 ,
  Divide::ALL_GEOMETRY = VERTEX | GEOMETRY | TESS_CONTROL | TESS_EVAL , Divide::ALL_DRAW = ALL_GEOMETRY | FRAGMENT , Divide::COMPUTE_AND_DRAW = FRAGMENT | COMPUTE , Divide::COMPUTE_AND_GEOMETRY = ALL_GEOMETRY | COMPUTE ,
  Divide::ALL = ALL_DRAW | COMPUTE
}
 
enum class  Divide::StencilOperation : U8 {
  Divide::KEEP = 0 , Divide::ZERO , Divide::REPLACE , Divide::INCR ,
  Divide::DECR , Divide::INV , Divide::INCR_WRAP , Divide::DECR_WRAP ,
  Divide::COUNT
}
 Valid front and back stencil test actions. More...
 
enum class  Divide::FillMode : U8 { Divide::POINT = 0 , Divide::WIREFRAME , Divide::SOLID , Divide::COUNT }
 Defines all available fill modes for primitives. More...
 
enum class  Divide::TextureType : U8 {
  Divide::TEXTURE_1D = 0 , Divide::TEXTURE_2D , Divide::TEXTURE_3D , Divide::TEXTURE_CUBE_MAP ,
  Divide::TEXTURE_1D_ARRAY , Divide::TEXTURE_2D_ARRAY , Divide::TEXTURE_CUBE_ARRAY , Divide::COUNT
}
 
enum class  Divide::TextureBorderColour : U8 {
  Divide::TRANSPARENT_BLACK_INT = 0 , Divide::TRANSPARENT_BLACK_F32 , Divide::OPAQUE_BLACK_INT , Divide::OPAQUE_BLACK_F32 ,
  Divide::OPAQUE_WHITE_INT , Divide::OPAQUE_WHITE_F32 , Divide::CUSTOM_INT , Divide::CUSTOM_F32 ,
  Divide::COUNT
}
 
enum class  Divide::TextureFilter : U8 { Divide::LINEAR = 0 , Divide::NEAREST , Divide::COUNT }
 
enum class  Divide::TextureMipSampling : U8 { Divide::LINEAR = 0 , Divide::NEAREST , Divide::NONE , Divide::COUNT }
 
enum class  Divide::TextureWrap : U8 {
  Divide::CLAMP_TO_EDGE = 0 , Divide::CLAMP_TO_BORDER , Divide::REPEAT , Divide::MIRROR_REPEAT ,
  Divide::MIRROR_CLAMP_TO_EDGE , Divide::COUNT
}
 
enum class  Divide::GFXImageFormat : U8 {
  Divide::RED = 0 , Divide::RG , Divide::BGR , Divide::RGB ,
  Divide::BGRA , Divide::RGBA , Divide::BC1 , Divide::BC1a ,
  Divide::BC2 , Divide::BC3 , Divide::BC3n , Divide::BC4s ,
  Divide::BC4u , Divide::BC5s , Divide::BC5u , Divide::BC6s ,
  Divide::BC6u , Divide::BC7 , Divide::COUNT , Divide::DXT1_RGB = BC1 ,
  Divide::DXT1_RGBA = BC1a , Divide::DXT3_RGBA = BC2 , Divide::DXT5_RGBA = BC3
}
 
enum class  Divide::GFXDataFormat : U8 {
  Divide::UNSIGNED_BYTE = 0 , Divide::UNSIGNED_SHORT , Divide::UNSIGNED_INT , Divide::SIGNED_BYTE ,
  Divide::SIGNED_SHORT , Divide::SIGNED_INT , Divide::FLOAT_16 , Divide::FLOAT_32 ,
  Divide::COUNT
}
 
enum class  Divide::GFXImagePacking : U8 {
  Divide::NORMALIZED , Divide::NORMALIZED_SRGB , Divide::UNNORMALIZED , Divide::RGB_565 ,
  Divide::RGBA_4444 , Divide::DEPTH , Divide::DEPTH_STENCIL , Divide::COUNT
}
 
enum class  Divide::GPUVendor : U8 {
  Divide::NVIDIA = 0 , Divide::AMD , Divide::INTEL , Divide::MICROSOFT ,
  Divide::IMAGINATION_TECH , Divide::ARM , Divide::QUALCOMM , Divide::VIVANTE ,
  Divide::ALPHAMOSAIC , Divide::WEBGL , Divide::MESA , Divide::OTHER ,
  Divide::COUNT
}
 
enum class  Divide::GPURenderer : U8 {
  Divide::UNKNOWN = 0 , Divide::ADRENO , Divide::GEFORCE , Divide::INTEL ,
  Divide::MALI , Divide::POWERVR , Divide::RADEON , Divide::VIDEOCORE ,
  Divide::VIVANTE , Divide::WEBGL , Divide::GDI , Divide::SOFTWARE ,
  Divide::COUNT
}
 
enum class  Divide::BufferUsageType : U8 {
  Divide::VERTEX_BUFFER = 0 , Divide::INDEX_BUFFER , Divide::STAGING_BUFFER , Divide::CONSTANT_BUFFER ,
  Divide::UNBOUND_BUFFER , Divide::COMMAND_BUFFER , Divide::COUNT
}
 
enum class  Divide::BufferSyncUsage : U8 {
  Divide::CPU_WRITE_TO_GPU_READ = 0 , Divide::GPU_WRITE_TO_CPU_READ , Divide::GPU_WRITE_TO_GPU_READ , Divide::GPU_WRITE_TO_GPU_WRITE ,
  Divide::GPU_READ_TO_GPU_WRITE , Divide::CPU_WRITE_TO_CPU_READ , Divide::CPU_READ_TO_CPU_WRITE , Divide::CPU_WRITE_TO_CPU_WRITE ,
  Divide::COUNT
}
 
enum class  Divide::BufferUpdateUsage : U8 { Divide::CPU_TO_GPU = 0 , Divide::GPU_TO_CPU = 1 , Divide::GPU_TO_GPU = 2 , Divide::COUNT }
 
enum class  Divide::BufferUpdateFrequency : U8 { Divide::ONCE = 0 , Divide::OCASSIONAL = 1 , Divide::OFTEN = 2 , Divide::COUNT }
 
enum class  Divide::QueryType : U8 {
  Divide::VERTICES_SUBMITTED = toBit(1) , Divide::PRIMITIVES_GENERATED = toBit(2) , Divide::TESSELLATION_PATCHES = toBit(3) , Divide::TESSELLATION_EVAL_INVOCATIONS = toBit(4) ,
  Divide::GPU_TIME = toBit(5) , Divide::SAMPLE_COUNT = toBit(6) , Divide::ANY_SAMPLE_RENDERED = toBit(7) , Divide::COUNT = 7
}
 
enum class  Divide::PushConstantSize : U8 {
  Divide::BYTE = 0 , Divide::WORD , Divide::DWORD , Divide::QWORD ,
  Divide::COUNT
}
 
enum class  Divide::PushConstantType : U8 {
  Divide::BOOL = 0 , Divide::INT , Divide::UINT , Divide::FLOAT ,
  Divide::DOUBLE , Divide::IVEC2 , Divide::IVEC3 , Divide::IVEC4 ,
  Divide::UVEC2 , Divide::UVEC3 , Divide::UVEC4 , Divide::VEC2 ,
  Divide::VEC3 , Divide::VEC4 , Divide::DVEC2 , Divide::DVEC3 ,
  Divide::DVEC4 , Divide::IMAT2 , Divide::IMAT3 , Divide::IMAT4 ,
  Divide::UMAT2 , Divide::UMAT3 , Divide::UMAT4 , Divide::MAT2 ,
  Divide::MAT3 , Divide::MAT4 , Divide::DMAT2 , Divide::DMAT3 ,
  Divide::DMAT4 , Divide::FCOLOUR3 , Divide::FCOLOUR4 , Divide::COUNT
}
 

Variables

constexpr RenderTargetID Divide::INVALID_RENDER_TARGET_ID = std::numeric_limits<RenderTargetID>::max()
 
constexpr RenderTargetID Divide::SCREEN_TARGET_ID = std::numeric_limits<RenderTargetID>::max() - 1u
 
constexpr U8 Divide::INVALID_TEXTURE_BINDING = U8_MAX
 
static const char * Divide::Names::renderAPI []
 
static constexpr const char * Divide::Names::descriptorSetUsage []
 
static constexpr const char * Divide::Names::reflectorType []
 
static constexpr const char * Divide::Names::refractorType []
 
static constexpr const char * Divide::Names::imageUsage []
 
static constexpr const char * Divide::Names::lightType []
 
static constexpr const char * Divide::Names::frustumCollision []
 
static constexpr const char * Divide::Names::frustumPlane []
 
static constexpr const char * Divide::Names::frustumPoints []
 
static constexpr const char * Divide::Names::attribLocation []
 
static constexpr const char * Divide::Names::renderStage []
 
static constexpr const char * Divide::Names::renderPassType []
 
static constexpr const char * Divide::Names::pbType []
 
static constexpr const char * Divide::Names::primitiveType []
 
static constexpr const char * Divide::Names::blendProperty []
 
static constexpr const char * Divide::Names::blendOperation []
 
static constexpr const char * Divide::Names::compFunctionNames []
 
static constexpr const char * Divide::Names::cullModes []
 
static constexpr const char * Divide::Names::shaderTypes []
 
static constexpr const char * Divide::Names::stencilOpNames []
 
static constexpr const char * Divide::Names::fillMode []
 
static constexpr const char * Divide::Names::textureType []
 
static constexpr const char * Divide::Names::textureBorderColour []
 
static constexpr const char * Divide::Names::textureFilter []
 
static constexpr const char * Divide::Names::textureMipSampling []
 
static constexpr const char * Divide::Names::textureWrap []
 
static constexpr const char * Divide::Names::GFXImageFormat []
 
static constexpr const char * Divide::Names::GFXDataFormat []
 
static constexpr const char * Divide::Names::GFXImagePacking []
 
static constexpr const char * Divide::Names::GPUVendor []
 
static constexpr const char * Divide::Names::GPURenderer []
 
static constexpr const char * Divide::Names::bufferUsageType []
 
static constexpr const char * Divide::Names::bufferSyncUsage []
 
static constexpr const char * Divide::Names::bufferUpdateUsage []
 
static constexpr const char * Divide::Names::bufferUpdateFrequency []
 
static constexpr const char * Divide::Names::queryType []
 

Macro Definition Documentation

◆ DVD_GFX_ENUMS_H

#define DVD_GFX_ENUMS_H

Definition at line 34 of file RenderAPIEnums.h.