|
Kanzi Graphics Engine
|
Specifies a user renderer. More...
#include "kzu_renderer_types.h"#include <user/effect_system/stereoscopic_rendering/kzu_stereoscopic_rendering.h>#include <user/common/kzu_user.h>#include <core/util/collection/kzc_dynamic_array.h>#include <core/util/color/kzc_color.h>#include <system/debug/kzs_error.h>#include <system/wrappers/kzs_opengl_base.h>#include <system/kzs_header.h>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 KzcDynamicArray * | kzuRendererGetTransformedObjectList (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 KzuResourceManager * | kzuRendererGetResourceManager (const struct KzuRenderer *renderer) |
| Gets renderer resource manager. More... | |
| struct KzuPropertyQuery * | kzuRendererGetPropertyQuery (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 KzuMaterial * | kzuRendererGetDefaultMaterial (const struct KzuRenderer *renderer) |
| Returns default material from renderer. More... | |
| struct KzuMaterial * | kzuRendererGetErrorMaterial (const struct KzuRenderer *renderer) |
| Returns error material from renderer. More... | |
| struct KzuMaterial * | kzuRendererGetTexturedMaterial (const struct KzuRenderer *renderer) |
| Gets textured material from renderer. More... | |
| struct KzuMaterial * | kzuRendererGetSolidColorMaterial (const struct KzuRenderer *renderer) |
| Returns solid color material. More... | |
| struct KzuMaterial * | kzuRendererGetOpaqueSolidColorMaterial (const struct KzuRenderer *renderer) |
| Returns opaque solid color material. More... | |
| struct KzuMaterial * | kzuRendererGetDebugLightMaterial (const struct KzuRenderer *renderer) |
| Returns debug light material. More... | |
| struct KzuMaterial * | kzuRendererGetLayerTexturedMaterial (const struct KzuRenderer *renderer) |
| Returns layer material from renderer. More... | |
| struct KzuMaterial * | kzuRendererGetLayerTexturedOpaqueMaterial (const struct KzuRenderer *renderer) |
| Returns layer opaque material from renderer. More... | |
| struct KzuMaterial * | kzuRendererGetLayerTexturedBackgroundMaterial (const struct KzuRenderer *renderer) |
| Returns layer material from renderer. More... | |
| struct KzuMaterial * | kzuRendererGetLayerTexturedBackgroundOpaqueMaterial (const struct KzuRenderer *renderer) |
| Returns layer opaque material from renderer. More... | |
| struct KzuMaterial * | kzuRendererGetLayerCompositionMaterial (const struct KzuRenderer *renderer) |
| Returns layer composition material from renderer. More... | |
| struct KzuMaterial * | kzuRendererGetLayerCompositionOpaqueMaterial (const struct KzuRenderer *renderer) |
| Returns layer opaque composition material from renderer. More... | |
| struct KzuMaterial * | kzuRendererGetLayerBackgroundMaterial (const struct KzuRenderer *renderer) |
| Returns layer background material from renderer. More... | |
| struct KzuMaterial * | kzuRendererGetLayerBackgroundOpaqueMaterial (const struct KzuRenderer *renderer) |
| Returns layer opaque background material from renderer. More... | |
| struct KzuMaterial * | kzuRendererGetLayerBackgroundTexturedMaterial (const struct KzuRenderer *renderer) |
| Returns layer textured background material from renderer. More... | |
| struct KzuMaterial * | kzuRendererGetLayerBackgroundTexturedOpaqueMaterial (const struct KzuRenderer *renderer) |
| Returns layer opaque textured background material from renderer. More... | |
| struct KzuMaterial * | kzuRendererGetTransitionLayerMaterial (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... | |
| kzFloat * | kzuRendererGetMeshVertexCombiningArray (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 KzuObjectSource * | kzuRendererGetRenderPassInputObjectSourceOverride (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 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. 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 KzuCanvas * | kzuRendererGetActiveCanvas (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 KzcRenderer * | kzuRendererGetCoreRenderer (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... | |
| kzFloat * | kzuRendererGetFloatBuffer (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... | |
| void * | kzuRendererGetOverrideMaterialCallbackUserData (const struct KzuRenderer *renderer) |
| Gets override material callback user data from renderer. More... | |
| struct KzcMemoryManager * | kzuRendererGetQuickMemoryManager (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... | |
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.
| #define KZU_RENDERER_FLOAT_BUFFER_LENGTH |
Length of float buffer, that is used for dynamic data of vertex arrays.
| 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.
Callback prototype for setActiveFrameBuffer.
| 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.
| 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.
| out_x | Viewport X coordinate in relative / absolute coordinates. KZ_NULL if not needed. |
| out_y | Viewport Y coordinate in relative / absolute coordinates. KZ_NULL if not needed. |
| out_width | Viewport Width in relative / absolute coordinates. KZ_NULL if not needed. |
| out_height | Viewport Height in relative / absolute coordinates. KZ_NULL if not needed. |
| out_relative | Is 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,
| limits | Size of the available rendering area, for example X and Y sizes taken from a window. |
| out_x | Viewport X coordinate in absolute (pixel) coordinates. |
| out_y | Viewport Y coordinate in absolute (pixel) coordinates. |
| out_width | Viewport Width in absolute (pixel) coordinates. |
| out_height | Viewport 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.