Kanzi 4.0.0-beta2
graphics_enums.hpp File Reference

Classes

class  kanzi::MeshVertexAttribute
 MeshVertexAttribute describes how Kanzi stores mesh vertex and instance data in memory. More...
 
struct  kanzi::MeshVertexFormat
 Vertex format information. More...
 
class  kanzi::ShaderVertexAttribute
 ShaderVertexAttribute describes the attributes that shader program will read when executed by graphics device. More...
 
class  kanzi::VertexAttribute
 Base class for the vertex and instance attributes of mesh and shader program. More...
 

Namespaces

namespace  kanzi
 

Macros

#define KANZI_RENDERER_BUFFER_VALUE_NONE
 Null value for vertex and index buffers.
 
#define KANZI_RENDERER_ENABLE_UNIFORM_CACHE
 Defines if uniform cache is enabled, can be disabled if CPU is bottleneck instead of GPU.
 
#define KANZI_RENDERER_MAX_TEXTURE_UNITS
 Maximum number of supported texture units.
 

Typedefs

typedef vector< ShaderVertexAttributekanzi::ShaderAttributeCollection
 
typedef ShaderAttributeCollection::const_iterator kanzi::ShaderAttributeCollectionConstIterator
 
typedef ShaderAttributeCollection::iterator kanzi::ShaderAttributeCollectionIterator
 

Enumerations

enum  kanzi::DrawBuffers { kanzi::DrawBuffersNone , kanzi::DrawBuffersDefault , kanzi::DrawBuffersExt , kanzi::DrawBuffersNV }
 Draw multiple buffers support code path in Renderer. More...
 
enum  kanzi::FixedMatrix {
  kanzi::FixedMatrixProjection , kanzi::FixedMatrixCamera , kanzi::FixedMatrixWorld , kanzi::FixedMatrixCameraWorld ,
  kanzi::FixedMatrixProjectionCameraWorld , kanzi::FixedMatrixCount
}
 List of active matrices renderer keeps track of. More...
 
enum  kanzi::FloatTexture { kanzi::FloatTextureNone , kanzi::FloatTextureARB , kanzi::FloatTextureES3 , kanzi::FloatTextureES2Ext }
 Float texture support code path in Renderer. More...
 
enum  kanzi::FramebufferAttachmentPoint {
  kanzi::FramebufferAttachmentPointColor0 , kanzi::FramebufferAttachmentPointColor1 , kanzi::FramebufferAttachmentPointColor2 , kanzi::FramebufferAttachmentPointColor3 ,
  kanzi::FramebufferAttachmentPointDepthStencil , kanzi::FramebufferAttachmentPointCount
}
 
enum  kanzi::FramebufferTarget { kanzi::FramebufferTargetReadAndDraw , kanzi::FramebufferTargetRead , kanzi::FramebufferTargetDraw }
 Framebuffer target selects draw or read framebuffer, or both. More...
 
enum  kanzi::GraphicsClearTarget {
  kanzi::GraphicsClearTargetColor0 , kanzi::GraphicsClearTargetColor1 , kanzi::GraphicsClearTargetColor2 , kanzi::GraphicsClearTargetColor3 ,
  kanzi::GraphicsClearTargetDepth , kanzi::GraphicsClearTargetStencil , kanzi::GraphicsClearTargetCoverage
}
 Clear target options for renderer. More...
 
enum  kanzi::GraphicsColorWriteMode : uint8_t {
  kanzi::GraphicsColorWriteModeNone , kanzi::GraphicsColorWriteModeRGB , kanzi::GraphicsColorWriteModeRGBA , kanzi::GraphicsColorWriteModeR ,
  kanzi::GraphicsColorWriteModeG , kanzi::GraphicsColorWriteModeB , kanzi::GraphicsColorWriteModeGB , kanzi::GraphicsColorWriteModeA
}
 List of color write modes. More...
 
enum  kanzi::GraphicsCompareFunction {
  kanzi::GraphicsCompareFunctionNever , kanzi::GraphicsCompareFunctionAlways , kanzi::GraphicsCompareFunctionLess , kanzi::GraphicsCompareFunctionLessOrEqual ,
  kanzi::GraphicsCompareFunctionGreater , kanzi::GraphicsCompareFunctionGreaterOrEqual , kanzi::GraphicsCompareFunctionEqual , kanzi::GraphicsCompareFunctionNotEqual ,
  kanzi::GraphicsCompareFunctionDisabled
}
 Renderer stencil modes. More...
 
enum  kanzi::GraphicsCullMode : uint8_t { kanzi::GraphicsCullModeNone , kanzi::GraphicsCullModeBack , kanzi::GraphicsCullModeFront }
 List of available cull modes. More...
 
enum  kanzi::GraphicsFillMode : uint8_t { kanzi::GraphicsFillModeSolid , kanzi::GraphicsFillModeWireframe }
 
enum  kanzi::GraphicsFormatFeature {
  kanzi::GraphicsFormatFeatureRenderbuffer , kanzi::GraphicsFormatFeatureSampledImage , kanzi::GraphicsFormatFeatureSampledImageFilterLinear , kanzi::GraphicsFormatFeatureColorAttachment ,
  kanzi::GraphicsFormatFeatureColorAttachmentBlend , kanzi::GraphicsFormatFeatureDepthStencilAttachment , kanzi::GraphicsFormatFeatureBlitSource , kanzi::GraphicsFormatFeatureBlitDestination ,
  kanzi::GraphicsFormatFeatureVertexBuffer , kanzi::GraphicsFormatFeatureUniformTexelBuffer , kanzi::GraphicsFormatFeatureStorageTexelBuffer , kanzi::GraphicsFormatFeatureStorageTexelBufferAtomic ,
  kanzi::GraphicsFormatFeatureStorageImage , kanzi::GraphicsFormatFeatureStorageImageAtomic , kanzi::GraphicsFormatFeatureRenderbufferMask , kanzi::GraphicsFormatFeatureTextureMask
}
 How GraphicsFormat is used. More...
 
enum  kanzi::GraphicsPrimitiveType : uint8_t {
  kanzi::GraphicsPrimitiveTypeInvalid , kanzi::GraphicsPrimitiveTypePoints , kanzi::GraphicsPrimitiveTypeLines , kanzi::GraphicsPrimitiveTypeLineStrip ,
  kanzi::GraphicsPrimitiveTypeTriangles , kanzi::GraphicsPrimitiveTypeTriangleStrip , kanzi::GraphicsPrimitiveTypeTriangleFan , kanzi::GraphicsPrimitiveTypePatches
}
 Enumeration for index buffer primitive type. More...
 
enum  kanzi::GraphicsScalar { kanzi::GraphicsScalarClearDepth , kanzi::GraphicsScalarCameraNearPlane , kanzi::GraphicsScalarCameraFarPlane , kanzi::GraphicsScalarCount }
 List of active renderer scalars for fixed functionality. More...
 
enum  kanzi::GraphicsStencilOperation {
  kanzi::GraphicsStencilOperationKeep , kanzi::GraphicsStencilOperationZero , kanzi::GraphicsStencilOperationReplace , kanzi::GraphicsStencilOperationIncrement ,
  kanzi::GraphicsStencilOperationIncrementWrap , kanzi::GraphicsStencilOperationDecrement , kanzi::GraphicsStencilOperationDecrementWrap , kanzi::GraphicsStencilOperationInvert
}
 Renderer stencil operations. More...
 
enum  kanzi::HalfFloatTexture { kanzi::HalfFloatTextureNone , kanzi::HalfFloatTextureARB , kanzi::HalfFloatTextureES3 , kanzi::HalfFloatTextureES2Ext }
 Half float texture support code path in Renderer. More...
 
enum  kanzi::HalfFloatVertexAttribute { kanzi::HalfFloatVertexAttributeNone , kanzi::HalfFloatVertexAttributeDefault , kanzi::HalfFloatVertexAttributeOES }
 Half float vertex attribute code path in Renderer. More...
 
enum  kanzi::IndexBufferType { kanzi::IndexBufferTypeUInt16 , kanzi::IndexBufferTypeUInt32 }
 List of available types available for index buffers. More...
 
enum  kanzi::InvalidateFramebuffer { kanzi::InvalidateFramebufferNone , kanzi::InvalidateFramebufferARB , kanzi::InvalidateFramebufferES3 , kanzi::InvalidateFramebufferES2Ext }
 Framebuffer invalidation support code path in Renderer. More...
 
enum  kanzi::Multisample { kanzi::MultisampleNone , kanzi::MultisampleARB , kanzi::MultisampleES2NVidia , kanzi::MultisampleES3 }
 Multisample support code path in Renderer. More...
 
enum class  kanzi::MultisampleCount {
  kanzi::NoMSAA , kanzi::MSAAx2 , kanzi::MSAAx4 , kanzi::MSAAx8 ,
  kanzi::MSAAx16 , kanzi::MSAAx32
}
 Specifies the available numbers of samples for multisample anti-aliasing (MSAA). More...
 
enum  kanzi::ProgramBinary { kanzi::ProgramBinaryNone , kanzi::ProgramBinaryARB , kanzi::ProgramBinaryES3 , kanzi::ProgramBinaryES2Ext }
 Program binary support code path in Renderer. More...
 
enum  kanzi::RendererState {
  kanzi::RendererStateDepthTest , kanzi::RendererStateCullFace , kanzi::RendererStateBlend , kanzi::RendererStateDepthWrite ,
  kanzi::RendererStateStencilTest , kanzi::RendererStateStencilWrite , kanzi::RendererStateMultisample , kanzi::RendererStateScissorTest ,
  kanzi::RendererStateCoverageWrite , kanzi::RendererStateCount
}
 Renderer state enumerations. More...
 
enum  kanzi::RendererSupport {
  kanzi::RendererSupportHalfFloatTextureFormatLinear , kanzi::RendererSupportHalfFloatColorAttachment , kanzi::RendererSupportRenderToMipmapLevels , kanzi::RendererSupportDepth16Renderbuffer ,
  kanzi::RendererSupportDepth16Texture , kanzi::RendererSupportDepth24Renderbuffer , kanzi::RendererSupportDepth24Texture , kanzi::RendererSupportDepth24Stencil8Renderbuffer ,
  kanzi::RendererSupportDepth24Stencil8Texture , kanzi::RendererSupportDepth32Renderbuffer , kanzi::RendererSupportDepth32fRenderbuffer , kanzi::RendererSupportDepth32fTexture ,
  kanzi::RendererSupportStencil8Renderbuffer , kanzi::RendererSupportStencil8Texture , kanzi::RendererSupportExternalTexture , kanzi::RendererSupportTexture2DArray ,
  kanzi::RendererSupportTexture3D , kanzi::RendererSupportTextureCubeMapArray , kanzi::RendererSupportTextureMultisample2D , kanzi::RendererSupportTextureMultisample2DArray ,
  kanzi::RendererSupportTextureFilterAnisotropic , kanzi::RendererSupportTextureSwizzle , kanzi::RendererSupportTextureSwizzleComponent , kanzi::RendererSupportTextureMaximumLevel ,
  kanzi::RendererSupportSeamlessCubeMap , kanzi::RendererSupportRGB8Renderbuffer , kanzi::RendererSupportRG8Formats , kanzi::RendererSupportRGFormats ,
  kanzi::RendererSupportIntegerFormats , kanzi::RendererSupportRGB8Texture , kanzi::RendererSupportRGBA8Renderbuffer , kanzi::RendererSupportRGBA8Texture ,
  kanzi::RendererSupportDiscardFramebuffer , kanzi::RendererSupportInvalidateFramebuffer , kanzi::RendererSupportImplementationColorRead , kanzi::RendererSupportKHRDebug ,
  kanzi::RendererSupportShaderBinary , kanzi::RendererSupportSRGB , kanzi::RendererSupportSRGB8Texture , kanzi::RendererSupportSRGB8TexStorage ,
  kanzi::RendererSupportETC1NPOT , kanzi::RendererSupport10_10_10_2VertexAttribute , kanzi::RendererSupportDepthComparison , kanzi::RendererSupport32BitIndexBuffer ,
  kanzi::RendererSupportMapBufferRange , kanzi::RendererSupportSNORMFormats , kanzi::RendererSupportFloatTextureFormatLinear , kanzi::RendererSupportFloatColorAttachment ,
  kanzi::SupportTextureNorm16Formats , kanzi::RendererSupportTextureMirrorClampToEdge , kanzi::RendererSupportUnpackRowLength , kanzi::RendererSupportClearBuffer ,
  kanzi::RendererSupportKHRBlendEquationAdvanced , kanzi::RendererSupportInstancing , kanzi::RendererSupportGeometryShader , kanzi::RendererSupportTessellationShader ,
  kanzi::RendererSupportComputeShader , kanzi::RendererSupportObjectLabel , kanzi::RendererSupportES30 , kanzi::RendererSupportES31 ,
  kanzi::RendererSupportES32 , kanzi::RendererSupportCount
}
 List of optionally supported renderer features. More...
 
enum  kanzi::ShaderType {
  kanzi::ShaderTypeInvalid , kanzi::ShaderTypeVertex , kanzi::ShaderTypeFragment , kanzi::ShaderTypeGeometry ,
  kanzi::ShaderTypeTessellationControl , kanzi::ShaderTypeTessellationEvaluation , kanzi::ShaderTypeCompute
}
 List of shader types. More...
 
enum  kanzi::SphereTessellationType { kanzi::SphereTypeUvSphere , kanzi::SphereTypeIcosphere , kanzi::SphereTypeQuadSphere }
 Specifies the available sphere tessellation types. More...
 
enum  kanzi::TexStorage {
  kanzi::TexStorageNone , kanzi::TexStorageMultisampleARB , kanzi::TexStorageARB , kanzi::TexStorageES2Ext ,
  kanzi::TexStorageES3 , kanzi::TexStorageES31 , kanzi::TexStorageES32
}
 Texture Storage support code path in Renderer. More...
 
enum  kanzi::TextureType {
  kanzi::TextureTypeTwoDimensional , kanzi::TextureTypeTwoDimensionalArray , kanzi::TextureTypeTwoDimensionalMultisample , kanzi::TextureTypeTwoDimensionalMultisampleArray ,
  kanzi::TextureTypeThreeDimensional , kanzi::TextureTypeCubeMap , kanzi::TextureTypeCubeMapArray , kanzi::TextureTypeExternal ,
  kanzi::TextureTypeCount , kanzi::TextureTypeInvalid
}
 Texture type. More...
 

Functions

unsigned int kanzi::getFaceCount (TextureType type)
 Gets face count for a given texture type.
 
size_t kanzi::getIndexTypeStride (IndexBufferType type)
 Returns the stride of a given index type.
 
void kanzi::swap (MeshVertexAttribute &attribute1, MeshVertexAttribute &attribute2)
 
void kanzi::swap (ShaderVertexAttribute &attribute1, ShaderVertexAttribute &attribute2)
 
void kanzi::swap (VertexAttribute &attribute1, VertexAttribute &attribute2)
 
string kanzi::to_string (TextureType type)
 String representation for TextureType.
 
string kanzi::to_string (VertexAttribute::Semantic semantic)
 String representation for VertexAttributeSemantic.
 
FixedString kanzi::toFixedString (VertexAttribute::Semantic semantic)
 Returns human readable string for semantic.
 
gfx::ComparisonFunction kanzi::toKzGfx (GraphicsCompareFunction func)
 Gets the Kanzi graphics comparison function for a GraphicsCompareFunction.
 
gfx::ShaderStage kanzi::toKzGfx (ShaderType shaderType)
 Gets the Kanzi graphics shader type for a ShaderType.
 
gfx::ImageType kanzi::toKzGfx (TextureType type)
 Gets the Kanzi graphics image type for a TextureType.
 
optional< VertexAttribute::Semantickanzi::toVertexAttributeSemantic (unsigned int kzbVertexAttributeSemantic)
 Converts KZB vertex attribute semantic to runtime VertexAttribute::Semantic.
 

Macro Definition Documentation

◆ KANZI_RENDERER_MAX_TEXTURE_UNITS

#define KANZI_RENDERER_MAX_TEXTURE_UNITS

Maximum number of supported texture units.

OpenGL ES 3 minimum requirements: 32 textures, max 16 used in either vertex shader or fragment shader

◆ KANZI_RENDERER_BUFFER_VALUE_NONE

#define KANZI_RENDERER_BUFFER_VALUE_NONE

Null value for vertex and index buffers.

◆ KANZI_RENDERER_ENABLE_UNIFORM_CACHE

#define KANZI_RENDERER_ENABLE_UNIFORM_CACHE

Defines if uniform cache is enabled, can be disabled if CPU is bottleneck instead of GPU.