Kanzi Graphics Engine
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
kzu_renderer.h File Reference

Specifies a user renderer. More...

Macros

#define KZU_RENDERER_FLOAT_BUFFER_LENGTH
 Length of float buffer, that is used for dynamic data of vertex arrays. More...
 

Typedefs

typedef kzsError(* KzuRendererOverrideMaterialCallback )(const struct KzuTransformedObjectNode *transformedObjectNode, struct KzuMaterial *material, kzUint cluster, void *userData, struct KzuMaterial **out_material)
 Callback function for override materials. More...
 
typedef kzsError(* KzuRendererApplyObjectFunction )(struct KzuTransformedObjectNode *transformedObjectNode, struct KzuRenderer *renderer)
 Function pointer for applying specific type of object for rendering. More...
 
typedef void(* KzuRendererFrameBufferCallback )(kzUint frameBufferHandle)
 Callback prototype for setActiveFrameBuffer. More...
 

Functions

kzsError kzuRendererCreate (const struct KzcMemoryManager *memoryManager, kzUint quickMemorySize, struct KzuUIDomain *uiDomain, kzBool createDefaultMaterials, struct KzuRenderer **out_renderer)
 Creates user renderer. More...
 
kzsError kzuRendererDelete (struct KzuRenderer *renderer)
 Deletes user renderer. More...
 
kzsError kzuRendererSetDefaultMaterials (struct KzuRenderer *renderer, struct KzuMaterial *defaultMaterial, struct KzuMaterial *solidColorMaterial, struct KzuMaterial *opaqueSolidColorMaterial, struct KzuMaterial *errorMaterial, struct KzuMaterial *texturedMaterial, struct KzuMaterial *debugLightMaterial, struct KzuMaterial *layerTexturedMaterial, struct KzuMaterial *layerTexturedOpaqueMaterial, struct KzuMaterial *layerTexturedBackgroundMaterial, struct KzuMaterial *layerTexturedBackgroundOpaqueMaterial, struct KzuMaterial *layerCompositionMaterial, struct KzuMaterial *layerCompositionOpaqueMaterial, struct KzuMaterial *layerBackgroundMaterial, struct KzuMaterial *layerBackgroundOpaqueMaterial, struct KzuMaterial *layerBackgroundTexturedMaterial, struct KzuMaterial *layerBackgroundTexturedOpaqueMaterial, struct KzuMaterial *transitionLayerMaterial, kzBool owndedByRenderer)
 Sets default materials for renderer. More...
 
kzsError kzuRendererLoadDefaultMaterials (struct KzuRenderer *renderer, const struct KzuUIDomain *uiDomain)
 Load default materials from project, then set them. More...
 
void kzuRendererSetLogging (struct KzuRenderer *renderer, kzBool logging)
 Enables or disables debug log writing. More...
 
void kzuRendererSetCollectingStatisticsEnabled (struct KzuRenderer *renderer, kzBool enabled)
 Enables or disables gathering rendering statistics. More...
 
kzBool kzuRendererIsCollectingStatisticsEnabled (const struct KzuRenderer *renderer)
 Returns KZ_TRUE if gathering rendering statistics is enabled, KZ_FALSE otherwise. More...
 
kzsError kzuRendererReset (const struct KzuRenderer *renderer)
 Resets renderer, that is, puts it to initial state. More...
 
kzsError kzuRendererResetFrame (struct KzuRenderer *renderer)
 Resets user renderer for frame, that is, clear property stack and core renderer per-frame variables. More...
 
void kzuRendererEndFrame (struct KzuRenderer *renderer)
 Ends a frame. More...
 
kzUint kzuRendererGetFrameCount (const struct KzuRenderer *renderer)
 Gets number of frames rendered by renderer. More...
 
kzsError kzuRendererResetPass (struct KzuRenderer *renderer)
 Resets pass for renderer, that is, per-render pass specific properties, such as lighting. More...
 
kzsError kzuRendererPrintInfo (const struct KzuRenderer *renderer)
 Ends frame for renderer. More...
 
kzsError kzuRendererApplyLight (const struct KzuRenderer *renderer, const struct KzuLightNode *lightNode, const struct KzcMatrix4x4 *worldTransformation)
 Adds light property to rendering pipeline. More...
 
kzsError kzuRendererApplyRenderable (struct KzuTransformedObjectNode *transformedObjectNode, struct KzuRenderer *renderer)
 Applies renderable object for rendering. More...
 
kzsError kzuRendererApplyMeshObject (struct KzuRenderer *renderer, const struct KzuTransformedObjectNode *transformedObjectNode, struct KzcMatrix4x4 *worldTransformation)
 Applies mesh object (2D & 3D) down in rendering pipeline, to core renderer. More...
 
void kzuRendererSetTransformedObjectList (struct KzuRenderer *renderer, struct KzcDynamicArray *transformedObjectList)
 Sets transformed object list for renderer, used for fetching bones for mesh. More...
 
struct KzcDynamicArraykzuRendererGetTransformedObjectList (const struct KzuRenderer *renderer)
 Gets transformed object list from renderer. More...
 
kzsError kzuRendererDrawBuffers (struct KzuRenderer *renderer, struct KzuMesh *mesh, const struct KzuObjectNode *baseNode, kzUint cluster, const struct KzuMaterial *material)
 Applies transformation and draws vertex and index buffers with current settings. More...
 
kzsError kzuRendererResolveBatchQueue (struct KzuRenderer *renderer)
 Resolves renderer batch queue, if there's such (queue generated by batch sorting). More...
 
void kzuRendererSetSortByShader (struct KzuRenderer *renderer, kzBool sortByShader)
 Sets renderer sort by shader enabled. More...
 
kzBool kzuRendererIsSortByShader (const struct KzuRenderer *renderer)
 Returns if sort by shader is enabled. More...
 
struct KzuResourceManagerkzuRendererGetResourceManager (const struct KzuRenderer *renderer)
 Gets renderer resource manager. More...
 
struct KzuPropertyQuerykzuRendererGetPropertyQuery (const struct KzuRenderer *renderer)
 Gets renderer property query. More...
 
kzsError kzuRendererApplyMaterial (struct KzuRenderer *renderer, const struct KzuMaterial *material)
 Applies material to renderer, attaches the shader and uniforms. More...
 
kzsError kzuRendererApplyCameraNode (const struct KzuRenderer *renderer, const struct KzuTransformedObjectNode *transformedCameraNode, kzFloat viewportX, kzFloat viewportY, kzFloat viewportWidth, kzFloat viewportHeight)
 Applies camera node to renderer, containing projection and camera matrices. More...
 
struct KzuMaterialkzuRendererGetDefaultMaterial (const struct KzuRenderer *renderer)
 Returns default material from renderer. More...
 
struct KzuMaterialkzuRendererGetErrorMaterial (const struct KzuRenderer *renderer)
 Returns error material from renderer. More...
 
struct KzuMaterialkzuRendererGetTexturedMaterial (const struct KzuRenderer *renderer)
 Gets textured material from renderer. More...
 
struct KzuMaterialkzuRendererGetSolidColorMaterial (const struct KzuRenderer *renderer)
 Returns solid color material. More...
 
struct KzuMaterialkzuRendererGetOpaqueSolidColorMaterial (const struct KzuRenderer *renderer)
 Returns opaque solid color material. More...
 
struct KzuMaterialkzuRendererGetDebugLightMaterial (const struct KzuRenderer *renderer)
 Returns debug light material. More...
 
struct KzuMaterialkzuRendererGetLayerTexturedMaterial (const struct KzuRenderer *renderer)
 Returns layer material from renderer. More...
 
struct KzuMaterialkzuRendererGetLayerTexturedOpaqueMaterial (const struct KzuRenderer *renderer)
 Returns layer opaque material from renderer. More...
 
struct KzuMaterialkzuRendererGetLayerTexturedBackgroundMaterial (const struct KzuRenderer *renderer)
 Returns layer material from renderer. More...
 
struct KzuMaterialkzuRendererGetLayerTexturedBackgroundOpaqueMaterial (const struct KzuRenderer *renderer)
 Returns layer opaque material from renderer. More...
 
struct KzuMaterialkzuRendererGetLayerCompositionMaterial (const struct KzuRenderer *renderer)
 Returns layer composition material from renderer. More...
 
struct KzuMaterialkzuRendererGetLayerCompositionOpaqueMaterial (const struct KzuRenderer *renderer)
 Returns layer opaque composition material from renderer. More...
 
struct KzuMaterialkzuRendererGetLayerBackgroundMaterial (const struct KzuRenderer *renderer)
 Returns layer background material from renderer. More...
 
struct KzuMaterialkzuRendererGetLayerBackgroundOpaqueMaterial (const struct KzuRenderer *renderer)
 Returns layer opaque background material from renderer. More...
 
struct KzuMaterialkzuRendererGetLayerBackgroundTexturedMaterial (const struct KzuRenderer *renderer)
 Returns layer textured background material from renderer. More...
 
struct KzuMaterialkzuRendererGetLayerBackgroundTexturedOpaqueMaterial (const struct KzuRenderer *renderer)
 Returns layer opaque textured background material from renderer. More...
 
struct KzuMaterialkzuRendererGetTransitionLayerMaterial (const struct KzuRenderer *renderer)
 Returns layer material used to render transition layers in their multitexturing transition phase. More...
 
void kzuRendererSetClearColorOverride (struct KzuRenderer *renderer, const struct KzcColorRGBA *colorRGBA)
 Sets clear color override for rendering. More...
 
kzBool kzuRendererGetClearColorOverride (const struct KzuRenderer *renderer, struct KzcColorRGBA *out_colorRGBA)
 Gets clear color override from renderer. More...
 
void kzuRendererSetCullFaceOverride (struct KzuRenderer *renderer, kzBool enabled, enum KzuCullMode overriddenCullMode)
 Sets cull mode override. More...
 
kzBool kzuRendererGetCullFaceOverride (const struct KzuRenderer *renderer, enum KzuCullMode *out_overriddenCullMode)
 Returns cull face override. More...
 
void kzuRendererSetClearColorBufferOverride (struct KzuRenderer *renderer, kzBool enabled)
 Sets clear color buffer override for renderer. More...
 
kzBool kzuRendererGetClearColorBufferOverride (const struct KzuRenderer *renderer)
 Returns if clear color buffer override is set. More...
 
void kzuRendererSetDisableColorWrite (struct KzuRenderer *renderer, kzBool setDisabled)
 Sets color write disabled, overrides render pass settings. More...
 
kzBool kzuRendererIsColorWriteDisabled (const struct KzuRenderer *renderer)
 Returns if color write is disabled. More...
 
kzsError kzuRendererCreateMeshVertexCombiningArray (struct KzuRenderer *renderer)
 Create vertex combining array from quick memory manager. More...
 
void kzuRendererSetMeshVertexCombiningEnabled (struct KzuRenderer *renderer, kzBool enabled)
 Sets vertex array combine enabled. More...
 
kzBool kzuRendererIsMeshVertexCombiningEnabled (const struct KzuRenderer *renderer)
 Returns if vertex array combine is enabled. More...
 
void kzuRendererAddMeshVertexCombiningArrayVertices (struct KzuRenderer *renderer, const kzFloat *vertices, kzUint vertexCount)
 Adds vertices for vertex combining. More...
 
kzFloatkzuRendererGetMeshVertexCombiningArray (const struct KzuRenderer *renderer, kzUint *out_vertexCount)
 Gets vertices from vertex combining. More...
 
void kzuRendererSetRenderPassInputObjectSourceOverride (struct KzuRenderer *renderer, struct KzuObjectSource *overrideObjectSource)
 Sets render pass input object source override. More...
 
struct KzuObjectSourcekzuRendererGetRenderPassInputObjectSourceOverride (const struct KzuRenderer *renderer)
 Gets render pass input object source override. More...
 
void kzuRendererSetForcedMaterial (struct KzuRenderer *renderer, struct KzuMaterial *material)
 Sets forced material for rendering, none of the properties are inherited from the object node. More...
 
void kzuRendererSetOverrideMaterial (struct KzuRenderer *renderer, struct KzuMaterial *material)
 Sets current override material, which is used instead of all default materials. More...
 
kzsError kzuRendererGetOverrideClusterMaterial (const struct KzuRenderer *renderer, const struct KzuTransformedObjectNode *transformedObjectNode, struct KzuMaterial *clusterMaterial, kzUint clusterIndex, kzBool *out_overridden, struct KzuMaterial **out_material)
 If object node's material is overridden, sets out_overridden to KZ_TRUE and the overriding material to out_material. More...
 
struct KzuMaterialkzuRendererGetValidMaterial (const struct KzuRenderer *renderer, struct KzuMaterial *material)
 Returns the given material if it is valid, otherwise either renderer's default material or error material. More...
 
kzBool kzuRendererIsDefaultLayerMaterial (const struct KzuRenderer *renderer, const struct KzuMaterial *material)
 Tells if given material is a default layer material. More...
 
void kzuRendererSetActiveCanvas (struct KzuRenderer *renderer, const struct KzuCanvas *canvas)
 Sets active canvas for renderer. More...
 
struct KzuCanvaskzuRendererGetActiveCanvas (const struct KzuRenderer *renderer)
 Gets active canvas from renderer. More...
 
void kzuRendererSetViewport (struct KzuRenderer *renderer, kzFloat x, kzFloat y, kzFloat width, kzFloat height, kzBool relative)
 Sets viewport for renderer. More...
 
void kzuRendererGetViewport (const struct KzuRenderer *renderer, kzFloat *out_x, kzFloat *out_y, kzFloat *out_width, kzFloat *out_height, kzBool *out_relative)
 Gets viewport from renderer. More...
 
void kzuRendererGetAdjustedViewport (const struct KzuRenderer *renderer, const struct KzcVector2 *limits, kzFloat *out_x, kzFloat *out_y, kzFloat *out_width, kzFloat *out_height)
 Gets adjusted viewport from renderer. More...
 
void kzuRendererGetAdjustedViewportFromCanvas (const struct KzuRenderer *renderer, const struct KzuCanvas *canvas, kzFloat *out_x, kzFloat *out_y, kzFloat *out_width, kzFloat *out_height)
 As kzuRendererGetAdjustedViewport, but get viewport limits from canvas. More...
 
void kzuRendererSetSubRectangleProjection (struct KzuRenderer *renderer, kzFloat x, kzFloat y, kzFloat width, kzFloat height)
 Turn on sub-rectangle of what would be the normal projection with given relative parameters. More...
 
void kzuRendererDisableSubRectangleProjection (struct KzuRenderer *renderer)
 Disable sub-rectangle of projection. More...
 
kzFloat kzuRendererGetInheritedAspectRatioMultiplier (const struct KzuRenderer *renderer)
 Get the multiplier to inherited aspect ratio. More...
 
void kzuRendererGetAdjustedScissor (const struct KzuRenderer *renderer, kzBool scissorEnabled, const struct KzcVector4 *scissorArea, kzBool *out_scissorEnabled, struct KzcVector4 *out_adjustedScissorArea)
 Gets adjusted scissor from renderer. More...
 
struct KzcRendererkzuRendererGetCoreRenderer (const struct KzuRenderer *renderer)
 Returns core renderer from user renderer. More...
 
void kzuRendererSetBoundingBoxVisualizationEnabled (struct KzuRenderer *renderer, kzBool enabled)
 Sets bounding box visualization enabled / disabled. More...
 
kzBool kzuRendererIsBoundingBoxVisualizationEnabled (const struct KzuRenderer *renderer)
 Returns if bounding box visualization is enabled. More...
 
void kzuRendererSetSkeletonVisualizationEnabled (struct KzuRenderer *renderer, kzBool enabled)
 Sets skeleton visualization enabled / disabled. More...
 
kzBool kzuRendererIsSkeletonVisualizationEnabled (const struct KzuRenderer *renderer)
 Returns if skeleton visualization is enabled. More...
 
kzFloatkzuRendererGetFloatBuffer (const struct KzuRenderer *renderer)
 Returns float buffer from renderer. More...
 
kzsError kzuRendererSetOverrideMaterialCallback (struct KzuRenderer *renderer, KzuRendererOverrideMaterialCallback callbackFunction, void *userData)
 Set override material callback. More...
 
KzuRendererOverrideMaterialCallback kzuRendererGetOverrideMaterialCallback (const struct KzuRenderer *renderer)
 Gets override material callback from renderer, KZ_NULL if not enabled. More...
 
voidkzuRendererGetOverrideMaterialCallbackUserData (const struct KzuRenderer *renderer)
 Gets override material callback user data from renderer. More...
 
struct KzcMemoryManagerkzuRendererGetQuickMemoryManager (const struct KzuRenderer *renderer)
 Returns a quick memory manager of the renderer. More...
 
void kzuRendererSetFrameBufferCallback (struct KzuRenderer *renderer, KzuRendererFrameBufferCallback callbackFunction)
 Sets callback function for setActiveFrameBuffer. More...
 
void kzuRendererEnableStereoscopic (struct KzuRenderer *renderer, enum KzuStereoscopicRenderingMode mode, kzUint pass, kzBool flipped, kzFloat eyeDistance, kzFloat focalDistance)
 Enables stereoscopic rendering. More...
 
void kzuRendererDisableStereoscopic (struct KzuRenderer *renderer)
 Disables stereoscopic rendering. More...
 
void kzuRendererGetStereoscopic (const struct KzuRenderer *renderer, kzBool *out_enabled, enum KzuStereoscopicRenderingMode *out_mode, kzUint *out_pass, kzBool *out_flipped)
 Gets stereoscopic properties from renderer. More...
 
void kzuRendererGetStereoscopicEyeProperties (const struct KzuRenderer *renderer, kzFloat *out_eyeDistance, kzFloat *out_focalDistance)
 Gets stereoscopic eye properties from renderer. More...
 
kzsError kzuRendererAddBatchToQueue (const struct KzuRenderer *renderer, struct KzuTransformedObjectNode *objectNode, struct KzuMesh *mesh, kzUint clusterIndex, const struct KzuMaterial *material, const struct KzcMatrix4x4 *transformation)
 Adds batch to batch queue. More...
 

Detailed Description

Specifies a user renderer.

Renderer is the core component for assigning lights, meshes, cameras, skin animations etc. to lower level rendering.

Copyright 2008-2019 by Rightware. All rights reserved.

Macro Definition Documentation

#define KZU_RENDERER_FLOAT_BUFFER_LENGTH

Length of float buffer, that is used for dynamic data of vertex arrays.

Typedef Documentation

typedef kzsError(* KzuRendererOverrideMaterialCallback)(const struct KzuTransformedObjectNode *transformedObjectNode, struct KzuMaterial *material, kzUint cluster, void *userData, struct KzuMaterial **out_material)

Callback function for override materials.

typedef kzsError(* KzuRendererApplyObjectFunction)(struct KzuTransformedObjectNode *transformedObjectNode, struct KzuRenderer *renderer)

Function pointer for applying specific type of object for rendering.

typedef void(* KzuRendererFrameBufferCallback)(kzUint frameBufferHandle)

Callback prototype for setActiveFrameBuffer.

Function Documentation

kzsError kzuRendererCreate ( const struct KzcMemoryManager memoryManager,
kzUint  quickMemorySize,
struct KzuUIDomain uiDomain,
kzBool  createDefaultMaterials,
struct KzuRenderer **  out_renderer 
)

Creates user renderer.

kzsError kzuRendererDelete ( struct KzuRenderer renderer)

Deletes user renderer.

kzsError kzuRendererSetDefaultMaterials ( struct KzuRenderer renderer,
struct KzuMaterial defaultMaterial,
struct KzuMaterial solidColorMaterial,
struct KzuMaterial opaqueSolidColorMaterial,
struct KzuMaterial errorMaterial,
struct KzuMaterial texturedMaterial,
struct KzuMaterial debugLightMaterial,
struct KzuMaterial layerTexturedMaterial,
struct KzuMaterial layerTexturedOpaqueMaterial,
struct KzuMaterial layerTexturedBackgroundMaterial,
struct KzuMaterial layerTexturedBackgroundOpaqueMaterial,
struct KzuMaterial layerCompositionMaterial,
struct KzuMaterial layerCompositionOpaqueMaterial,
struct KzuMaterial layerBackgroundMaterial,
struct KzuMaterial layerBackgroundOpaqueMaterial,
struct KzuMaterial layerBackgroundTexturedMaterial,
struct KzuMaterial layerBackgroundTexturedOpaqueMaterial,
struct KzuMaterial transitionLayerMaterial,
kzBool  owndedByRenderer 
)

Sets default materials for renderer.

Parameters
ownedByRenderer- indicates if materials will be owned and deleted by renderer.
kzsError kzuRendererLoadDefaultMaterials ( struct KzuRenderer renderer,
const struct KzuUIDomain uiDomain 
)

Load default materials from project, then set them.

Will not replace materials that already exist.

void kzuRendererSetLogging ( struct KzuRenderer renderer,
kzBool  logging 
)

Enables or disables debug log writing.

void kzuRendererSetCollectingStatisticsEnabled ( struct KzuRenderer renderer,
kzBool  enabled 
)

Enables or disables gathering rendering statistics.

kzBool kzuRendererIsCollectingStatisticsEnabled ( const struct KzuRenderer renderer)

Returns KZ_TRUE if gathering rendering statistics is enabled, KZ_FALSE otherwise.

kzsError kzuRendererReset ( const struct KzuRenderer renderer)

Resets renderer, that is, puts it to initial state.

kzsError kzuRendererResetFrame ( struct KzuRenderer renderer)

Resets user renderer for frame, that is, clear property stack and core renderer per-frame variables.

void kzuRendererEndFrame ( struct KzuRenderer renderer)

Ends a frame.

kzUint kzuRendererGetFrameCount ( const struct KzuRenderer renderer)

Gets number of frames rendered by renderer.

kzsError kzuRendererResetPass ( struct KzuRenderer renderer)

Resets pass for renderer, that is, per-render pass specific properties, such as lighting.

kzsError kzuRendererPrintInfo ( const struct KzuRenderer renderer)

Ends frame for renderer.

kzsError kzuRendererApplyLight ( const struct KzuRenderer renderer,
const struct KzuLightNode lightNode,
const struct KzcMatrix4x4 worldTransformation 
)

Adds light property to rendering pipeline.

Lights should be reset each pass by calling kzuRendererResetPass.

kzsError kzuRendererApplyRenderable ( struct KzuTransformedObjectNode transformedObjectNode,
struct KzuRenderer renderer 
)

Applies renderable object for rendering.

Called from render pass.

kzsError kzuRendererApplyMeshObject ( struct KzuRenderer renderer,
const struct KzuTransformedObjectNode transformedObjectNode,
struct KzcMatrix4x4 worldTransformation 
)

Applies mesh object (2D & 3D) down in rendering pipeline, to core renderer.

void kzuRendererSetTransformedObjectList ( struct KzuRenderer renderer,
struct KzcDynamicArray transformedObjectList 
)

Sets transformed object list for renderer, used for fetching bones for mesh.

struct KzcDynamicArray* kzuRendererGetTransformedObjectList ( const struct KzuRenderer renderer)

Gets transformed object list from renderer.

kzsError kzuRendererDrawBuffers ( struct KzuRenderer renderer,
struct KzuMesh mesh,
const struct KzuObjectNode baseNode,
kzUint  cluster,
const struct KzuMaterial material 
)

Applies transformation and draws vertex and index buffers with current settings.

kzsError kzuRendererResolveBatchQueue ( struct KzuRenderer renderer)

Resolves renderer batch queue, if there's such (queue generated by batch sorting).

void kzuRendererSetSortByShader ( struct KzuRenderer renderer,
kzBool  sortByShader 
)

Sets renderer sort by shader enabled.

kzBool kzuRendererIsSortByShader ( const struct KzuRenderer renderer)

Returns if sort by shader is enabled.

struct KzuResourceManager* kzuRendererGetResourceManager ( const struct KzuRenderer renderer)

Gets renderer resource manager.

struct KzuPropertyQuery* kzuRendererGetPropertyQuery ( const struct KzuRenderer renderer)

Gets renderer property query.

kzsError kzuRendererApplyMaterial ( struct KzuRenderer renderer,
const struct KzuMaterial material 
)

Applies material to renderer, attaches the shader and uniforms.

kzsError kzuRendererApplyCameraNode ( const struct KzuRenderer renderer,
const struct KzuTransformedObjectNode transformedCameraNode,
kzFloat  viewportX,
kzFloat  viewportY,
kzFloat  viewportWidth,
kzFloat  viewportHeight 
)

Applies camera node to renderer, containing projection and camera matrices.

struct KzuMaterial* kzuRendererGetDefaultMaterial ( const struct KzuRenderer renderer)

Returns default material from renderer.

struct KzuMaterial* kzuRendererGetErrorMaterial ( const struct KzuRenderer renderer)

Returns error material from renderer.

struct KzuMaterial* kzuRendererGetTexturedMaterial ( const struct KzuRenderer renderer)

Gets textured material from renderer.

struct KzuMaterial* kzuRendererGetSolidColorMaterial ( const struct KzuRenderer renderer)

Returns solid color material.

Uses color property "Emissive" to specify solid color.

struct KzuMaterial* kzuRendererGetOpaqueSolidColorMaterial ( const struct KzuRenderer renderer)

Returns opaque solid color material.

Uses color property "Emissive" to specify solid color.

struct KzuMaterial* kzuRendererGetDebugLightMaterial ( const struct KzuRenderer renderer)

Returns debug light material.

Uses color property "Emissive" to specify rendering color.

struct KzuMaterial* kzuRendererGetLayerTexturedMaterial ( const struct KzuRenderer renderer)

Returns layer material from renderer.

struct KzuMaterial* kzuRendererGetLayerTexturedOpaqueMaterial ( const struct KzuRenderer renderer)

Returns layer opaque material from renderer.

struct KzuMaterial* kzuRendererGetLayerTexturedBackgroundMaterial ( const struct KzuRenderer renderer)

Returns layer material from renderer.

struct KzuMaterial* kzuRendererGetLayerTexturedBackgroundOpaqueMaterial ( const struct KzuRenderer renderer)

Returns layer opaque material from renderer.

struct KzuMaterial* kzuRendererGetLayerCompositionMaterial ( const struct KzuRenderer renderer)

Returns layer composition material from renderer.

struct KzuMaterial* kzuRendererGetLayerCompositionOpaqueMaterial ( const struct KzuRenderer renderer)

Returns layer opaque composition material from renderer.

struct KzuMaterial* kzuRendererGetLayerBackgroundMaterial ( const struct KzuRenderer renderer)

Returns layer background material from renderer.

struct KzuMaterial* kzuRendererGetLayerBackgroundOpaqueMaterial ( const struct KzuRenderer renderer)

Returns layer opaque background material from renderer.

struct KzuMaterial* kzuRendererGetLayerBackgroundTexturedMaterial ( const struct KzuRenderer renderer)

Returns layer textured background material from renderer.

struct KzuMaterial* kzuRendererGetLayerBackgroundTexturedOpaqueMaterial ( const struct KzuRenderer renderer)

Returns layer opaque textured background material from renderer.

struct KzuMaterial* kzuRendererGetTransitionLayerMaterial ( const struct KzuRenderer renderer)

Returns layer material used to render transition layers in their multitexturing transition phase.

void kzuRendererSetClearColorOverride ( struct KzuRenderer renderer,
const struct KzcColorRGBA colorRGBA 
)

Sets clear color override for rendering.

KZ_NULL to colorRGBA to disable.

kzBool kzuRendererGetClearColorOverride ( const struct KzuRenderer renderer,
struct KzcColorRGBA out_colorRGBA 
)

Gets clear color override from renderer.

Returns KZ_TRUE if override enabled.

void kzuRendererSetCullFaceOverride ( struct KzuRenderer renderer,
kzBool  enabled,
enum KzuCullMode  overriddenCullMode 
)

Sets cull mode override.

kzBool kzuRendererGetCullFaceOverride ( const struct KzuRenderer renderer,
enum KzuCullMode out_overriddenCullMode 
)

Returns cull face override.

void kzuRendererSetClearColorBufferOverride ( struct KzuRenderer renderer,
kzBool  enabled 
)

Sets clear color buffer override for renderer.

kzBool kzuRendererGetClearColorBufferOverride ( const struct KzuRenderer renderer)

Returns if clear color buffer override is set.

void kzuRendererSetDisableColorWrite ( struct KzuRenderer renderer,
kzBool  setDisabled 
)

Sets color write disabled, overrides render pass settings.

kzBool kzuRendererIsColorWriteDisabled ( const struct KzuRenderer renderer)

Returns if color write is disabled.

kzsError kzuRendererCreateMeshVertexCombiningArray ( struct KzuRenderer renderer)

Create vertex combining array from quick memory manager.

After this vertices added with kzuRendererAddMeshVertexCombiningArrayVertices will be combined into one big single mesh.

void kzuRendererSetMeshVertexCombiningEnabled ( struct KzuRenderer renderer,
kzBool  enabled 
)

Sets vertex array combine enabled.

kzBool kzuRendererIsMeshVertexCombiningEnabled ( const struct KzuRenderer renderer)

Returns if vertex array combine is enabled.

void kzuRendererAddMeshVertexCombiningArrayVertices ( struct KzuRenderer renderer,
const kzFloat vertices,
kzUint  vertexCount 
)

Adds vertices for vertex combining.

kzFloat* kzuRendererGetMeshVertexCombiningArray ( const struct KzuRenderer renderer,
kzUint out_vertexCount 
)

Gets vertices from vertex combining.

void kzuRendererSetRenderPassInputObjectSourceOverride ( struct KzuRenderer renderer,
struct KzuObjectSource overrideObjectSource 
)

Sets render pass input object source override.

KZ_NULL to not override.

struct KzuObjectSource* kzuRendererGetRenderPassInputObjectSourceOverride ( const struct KzuRenderer renderer)

Gets render pass input object source override.

void kzuRendererSetForcedMaterial ( struct KzuRenderer renderer,
struct KzuMaterial material 
)

Sets forced material for rendering, none of the properties are inherited from the object node.

void kzuRendererSetOverrideMaterial ( struct KzuRenderer renderer,
struct KzuMaterial material 
)

Sets current override material, which is used instead of all default materials.

Setting material to KZ_NULL disables overrides.

kzsError kzuRendererGetOverrideClusterMaterial ( const struct KzuRenderer renderer,
const struct KzuTransformedObjectNode transformedObjectNode,
struct KzuMaterial clusterMaterial,
kzUint  clusterIndex,
kzBool out_overridden,
struct KzuMaterial **  out_material 
)

If object node's material is overridden, sets out_overridden to KZ_TRUE and the overriding material to out_material.

Otherwise sets out_overridden to KZ_FALSE.

struct KzuMaterial* kzuRendererGetValidMaterial ( const struct KzuRenderer renderer,
struct KzuMaterial material 
)

Returns the given material if it is valid, otherwise either renderer's default material or error material.

kzBool kzuRendererIsDefaultLayerMaterial ( const struct KzuRenderer renderer,
const struct KzuMaterial material 
)

Tells if given material is a default layer material.

void kzuRendererSetActiveCanvas ( struct KzuRenderer renderer,
const struct KzuCanvas canvas 
)

Sets active canvas for renderer.

struct KzuCanvas* kzuRendererGetActiveCanvas ( const struct KzuRenderer renderer)

Gets active canvas from renderer.

void kzuRendererSetViewport ( struct KzuRenderer renderer,
kzFloat  x,
kzFloat  y,
kzFloat  width,
kzFloat  height,
kzBool  relative 
)

Sets viewport for renderer.

void kzuRendererGetViewport ( const struct KzuRenderer renderer,
kzFloat out_x,
kzFloat out_y,
kzFloat out_width,
kzFloat out_height,
kzBool out_relative 
)

Gets viewport from renderer.

Parameters
out_xViewport X coordinate in relative / absolute coordinates. KZ_NULL if not needed.
out_yViewport Y coordinate in relative / absolute coordinates. KZ_NULL if not needed.
out_widthViewport Width in relative / absolute coordinates. KZ_NULL if not needed.
out_heightViewport Height in relative / absolute coordinates. KZ_NULL if not needed.
out_relativeIs this window relative (absolute if not). KZ_NULL if not needed.
void kzuRendererGetAdjustedViewport ( const struct KzuRenderer renderer,
const struct KzcVector2 limits,
kzFloat out_x,
kzFloat out_y,
kzFloat out_width,
kzFloat out_height 
)

Gets adjusted viewport from renderer.

Adjusted viewport calculates real viewport size according to window size,

Parameters
limitsSize of the available rendering area, for example X and Y sizes taken from a window.
out_xViewport X coordinate in absolute (pixel) coordinates.
out_yViewport Y coordinate in absolute (pixel) coordinates.
out_widthViewport Width in absolute (pixel) coordinates.
out_heightViewport Height in absolute (pixel) coordinates.
void kzuRendererGetAdjustedViewportFromCanvas ( const struct KzuRenderer renderer,
const struct KzuCanvas canvas,
kzFloat out_x,
kzFloat out_y,
kzFloat out_width,
kzFloat out_height 
)

As kzuRendererGetAdjustedViewport, but get viewport limits from canvas.

void kzuRendererSetSubRectangleProjection ( struct KzuRenderer renderer,
kzFloat  x,
kzFloat  y,
kzFloat  width,
kzFloat  height 
)

Turn on sub-rectangle of what would be the normal projection with given relative parameters.

void kzuRendererDisableSubRectangleProjection ( struct KzuRenderer renderer)

Disable sub-rectangle of projection.

kzFloat kzuRendererGetInheritedAspectRatioMultiplier ( const struct KzuRenderer renderer)

Get the multiplier to inherited aspect ratio.

void kzuRendererGetAdjustedScissor ( const struct KzuRenderer renderer,
kzBool  scissorEnabled,
const struct KzcVector4 scissorArea,
kzBool out_scissorEnabled,
struct KzcVector4 out_adjustedScissorArea 
)

Gets adjusted scissor from renderer.

struct KzcRenderer* kzuRendererGetCoreRenderer ( const struct KzuRenderer renderer)

Returns core renderer from user renderer.

void kzuRendererSetBoundingBoxVisualizationEnabled ( struct KzuRenderer renderer,
kzBool  enabled 
)

Sets bounding box visualization enabled / disabled.

kzBool kzuRendererIsBoundingBoxVisualizationEnabled ( const struct KzuRenderer renderer)

Returns if bounding box visualization is enabled.

void kzuRendererSetSkeletonVisualizationEnabled ( struct KzuRenderer renderer,
kzBool  enabled 
)

Sets skeleton visualization enabled / disabled.

kzBool kzuRendererIsSkeletonVisualizationEnabled ( const struct KzuRenderer renderer)

Returns if skeleton visualization is enabled.

kzFloat* kzuRendererGetFloatBuffer ( const struct KzuRenderer renderer)

Returns float buffer from renderer.

Float buffer contains maximum of KZU_RENDERER_FLOAT_BUFFER_LENGTH elements, and it's used for dynamic vertex arrays.

kzsError kzuRendererSetOverrideMaterialCallback ( struct KzuRenderer renderer,
KzuRendererOverrideMaterialCallback  callbackFunction,
void userData 
)

Set override material callback.

Pass KZ_NULL to disable.

KzuRendererOverrideMaterialCallback kzuRendererGetOverrideMaterialCallback ( const struct KzuRenderer renderer)

Gets override material callback from renderer, KZ_NULL if not enabled.

void* kzuRendererGetOverrideMaterialCallbackUserData ( const struct KzuRenderer renderer)

Gets override material callback user data from renderer.

struct KzcMemoryManager* kzuRendererGetQuickMemoryManager ( const struct KzuRenderer renderer)

Returns a quick memory manager of the renderer.

void kzuRendererSetFrameBufferCallback ( struct KzuRenderer renderer,
KzuRendererFrameBufferCallback  callbackFunction 
)

Sets callback function for setActiveFrameBuffer.

Called each time engine changes framebuffer.

void kzuRendererEnableStereoscopic ( struct KzuRenderer renderer,
enum KzuStereoscopicRenderingMode  mode,
kzUint  pass,
kzBool  flipped,
kzFloat  eyeDistance,
kzFloat  focalDistance 
)

Enables stereoscopic rendering.

void kzuRendererDisableStereoscopic ( struct KzuRenderer renderer)

Disables stereoscopic rendering.

void kzuRendererGetStereoscopic ( const struct KzuRenderer renderer,
kzBool out_enabled,
enum KzuStereoscopicRenderingMode out_mode,
kzUint out_pass,
kzBool out_flipped 
)

Gets stereoscopic properties from renderer.

If out_enabled, out_mode, out_pass or out_flipped is KZ_NULL, they're not used.

void kzuRendererGetStereoscopicEyeProperties ( const struct KzuRenderer renderer,
kzFloat out_eyeDistance,
kzFloat out_focalDistance 
)

Gets stereoscopic eye properties from renderer.

If KZ_NULL, not used.

kzsError kzuRendererAddBatchToQueue ( const struct KzuRenderer renderer,
struct KzuTransformedObjectNode objectNode,
struct KzuMesh mesh,
kzUint  clusterIndex,
const struct KzuMaterial material,
const struct KzcMatrix4x4 transformation 
)

Adds batch to batch queue.