Kanzi  3.9.4
Kanzi Engine API
graphics_enums.hpp File Reference

Classes

class  kanzi::MeshVertexAttribute
 MeshVertexAttribute describes how mesh vertex data is stored in memory. More...
 
class  kanzi::ShaderVertexAttribute
 ShaderVertexAttribute describes the attributes that shader program will read when executed by graphics device. More...
 
class  kanzi::VertexAttribute
 A base class for mesh and shader program vertex attributes. More...
 

Namespaces

 kanzi
 Easing functions that require external dependencies for calculation.
 

Macros

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

Typedefs

typedef vector< MeshVertexAttribute > kanzi::MeshAttributeCollection
 
typedef MeshAttributeCollection::const_iterator kanzi::MeshAttributeCollectionConstIterator
 
typedef MeshAttributeCollection::iterator kanzi::MeshAttributeCollectionIterator
 
typedef vector< ShaderVertexAttribute > kanzi::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 {
  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 { kanzi::GraphicsCullModeNone, kanzi::GraphicsCullModeBack, kanzi::GraphicsCullModeFront }
 List of available cull modes. More...
 
enum  kanzi::GraphicsFillMode { 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 {
  kanzi::GraphicsPrimitiveTypeInvalid, kanzi::GraphicsPrimitiveTypePoints, kanzi::GraphicsPrimitiveTypeLines, kanzi::GraphicsPrimitiveTypeLineLoop,
  kanzi::GraphicsPrimitiveTypeLineStrip, kanzi::GraphicsPrimitiveTypeTriangles, kanzi::GraphicsPrimitiveTypeTriangleStrip, kanzi::GraphicsPrimitiveTypeTriangleFan
}
 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,
  kanzi::MultisampleES2Ext, kanzi::MultisampleES2Img
}
 Multisample support code path in Renderer. 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::RendererSupportNPOTTextureFilter, 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::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::RendererSupportCount
}
 List of optionally supported renderer features. More...
 
enum  kanzi::RenderTargetMode { kanzi::RenderTargetModeNone, kanzi::RenderTargetModeInternal, kanzi::RenderTargetModeExternal }
 RenderTarget mode for Texture. More...
 
enum  kanzi::ShaderType { kanzi::ShaderTypeInvalid, kanzi::ShaderTypeVertex, kanzi::ShaderTypeFragment }
 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. More...
 
size_t kanzi::getIndexTypeStride (IndexBufferType type)
 Returns the stride of a given index type. More...
 
bool kanzi::isImplicitMultisampleSupport (Multisample multisampleSupport)
 Tell if multisample support is of implicit type. More...
 
void kanzi::swap (VertexAttribute &attribute1, VertexAttribute &attribute2)
 
void kanzi::swap (MeshVertexAttribute &attribute1, MeshVertexAttribute &attribute2)
 
void kanzi::swap (ShaderVertexAttribute &attribute1, ShaderVertexAttribute &attribute2)
 
FixedString kanzi::toFixedString (VertexAttribute::Semantic semantic)
 Returns human readable string for semantic. More...
 
optional< VertexAttribute::Semantic > kanzi::toVertexAttributeSemantic (unsigned int kzbVertexAttributeSemantic)
 Converts KZB vertex attribute semantic to runtime VertexAttribute::Semantic. More...
 

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.