All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
kanzi::Renderer3D Class Reference

Renderer is the core component for assigning lights, meshes, cameras, skin animations etc. More...

#include <kanzi/graphics_3d/renderer3d.hpp>

Public Types

typedef kzsError(* ApplyObjectFunction )(KzuTransformedObjectNode *transformedObjectNode, Renderer3D *renderer)
 Function pointer for applying specific type of object for rendering. More...
 
typedef kzsError(* OverrideMaterialCallback )(const KzuTransformedObjectNode *transformedObjectNode, Material *material, unsigned int cluster, void *userData, Material **out_material)
 Callback function for override materials. More...
 
typedef void(* FramebufferCallback )(unsigned int framebufferHandle)
 Callback prototype for setActiveFramebuffer. More...
 

Public Member Functions

 Renderer3D (const KzcMemoryManager *memoryManager, unsigned int quickMemorySize, Domain *domain)
 
 ~Renderer3D ()
 
DomaingetDomain () const
 
ShapeRenderergetShapeRenderer () const
 
void setLogging (bool logging)
 Enables or disables debug log writing. More...
 
void reset ()
 Resets renderer, that is, puts it to initial state. More...
 
void resetFrame ()
 Resets user renderer for frame, that is, clear property stack and core renderer per-frame variables. More...
 
void endFrame ()
 Ends a frame. More...
 
unsigned int getFrameCount () const
 Gets number of frames rendered by renderer. More...
 
void resetPass ()
 Resets pass for renderer, that is, per-render pass specific properties, such as lighting. More...
 
void printInfo () const
 Ends frame for renderer. More...
 
void applyLight (Light *lightNode, const KzcMatrix4x4 *worldTransformation)
 Adds light property to rendering pipeline. More...
 
void applyRenderable (KzuTransformedObjectNode *transformedObjectNode)
 Applies renderable object for rendering. More...
 
void setTransformedObjectList (KzcDynamicArray *transformedObjectList)
 Sets transformed object list for renderer, used for fetching bones for mesh. More...
 
KzcDynamicArraygetTransformedObjectList () const
 Gets transformed object list from renderer. More...
 
void drawBuffers (Mesh *mesh, Node *baseNode, unsigned int cluster, const Material *material)
 Applies transformation and draws vertex and index buffers with current settings. More...
 
void drawBuffers (Morph *morph, Node *baseNode, unsigned int cluster, const Material *material)
 
void resolveBatchQueue ()
 Resolves renderer batch queue, if there's such (queue generated by batch sorting). More...
 
void setSortByShader (bool sortByShader)
 Sets renderer sort by shader enabled. More...
 
bool isSortByShader () const
 Returns if sort by shader is enabled. More...
 
ResourceManagergetResourceManager () const
 Gets renderer resource manager. More...
 
KzuPropertyQuerygetPropertyQuery () const
 Gets renderer property query. More...
 
bool applyMaterial (const Material *material)
 Applies material to renderer, attaches the shader and uniforms. More...
 
bool applyMaterialStrict (const Material *material)
 Applies material to renderer, attaches the shader and uniforms. More...
 
void applyCameraMatrix (KzcMatrix4x4 cameraProjectionMatrix, KzcMatrix4x4 cameraTransformationMatrix, float near, float far) const
 Applies camera matrices to renderer so that they can be applied as uniforms to shaders. More...
 
MaterialSharedPtr getDebugLightMaterial ()
 Returns debug light material. More...
 
MaterialSharedPtr getDefaultMaterial ()
 Returns default material from renderer. More...
 
MaterialSharedPtr getErrorMaterial ()
 Returns error material from renderer. More...
 
MaterialSharedPtr getSolidColorMaterial ()
 Returns solid color material. More...
 
MaterialSharedPtr getTexturedMaterial ()
 Gets textured material from renderer. More...
 
void setClearColorOverride (const KzcColorRGBA *colorRGBA)
 Sets clear color override for rendering. More...
 
bool getClearColorOverride (KzcColorRGBA *out_colorRGBA) const
 Gets clear color override from renderer. More...
 
void setCullFaceOverride (bool enabled, GraphicsCullMode overriddenCullMode)
 Sets cull mode override. More...
 
bool getCullFaceOverride (GraphicsCullMode *out_overriddenCullMode) const
 Returns cull face override. More...
 
void setClearColorBufferOverride (bool enabled)
 Sets clear color buffer override for renderer. More...
 
bool getClearColorBufferOverride () const
 Returns if clear color buffer override is set. More...
 
void setDisableColorWrite (bool setDisabled)
 Sets color write disabled, overrides render pass settings. More...
 
bool isColorWriteDisabled () const
 Returns if color write is disabled. More...
 
void createMeshVertexCombiningArray ()
 Create vertex combining array from quick memory manager. More...
 
void setMeshVertexCombiningEnabled (bool enabled)
 Sets vertex array combine enabled. More...
 
bool isMeshVertexCombiningEnabled () const
 Returns if vertex array combine is enabled. More...
 
void addMeshVertexCombiningArrayVertices (const float *vertices, unsigned int vertexCount)
 Adds vertices for vertex combining. More...
 
float * getMeshVertexCombiningArray (unsigned int *out_vertexCount) const
 Gets vertices from vertex combining. More...
 
void setRenderPassInputObjectSourceOverride (FilterObjectSourceSharedPtr overrideObjectSource)
 Sets render pass input object source override. More...
 
FilterObjectSourceSharedPtr getRenderPassInputObjectSourceOverride () const
 Gets render pass input object source override. More...
 
void setForcedMaterial (Material *material)
 Sets forced material for rendering, none of the properties are inherited from the object node. More...
 
void setOverrideMaterial (Material *material)
 Sets current override material, which is used instead of all default materials. More...
 
MaterialgetOverrideClusterMaterial (const KzuTransformedObjectNode *transformedObjectNode, Material *clusterMaterial, unsigned int clusterIndex, bool &out_overridden) const
 If object node's material is overridden, sets out_overridden to KZ_TRUE and the overriding material to out_material. More...
 
MaterialgetValidMaterial (Material *material)
 Returns the given material if it is valid, otherwise either renderer's default material or error material. More...
 
void setActiveRenderTarget (const RenderTarget *renderTarget)
 Sets active render target for renderer. More...
 
const RenderTargetgetActiveRenderTarget () const
 Gets active render target from renderer. More...
 
void setViewport (float x, float y, float width, float height, bool relative)
 Sets viewport for renderer. More...
 
void getViewport (float *out_x, float *out_y, float *out_width, float *out_height, bool *out_relative) const
 Gets viewport from renderer. More...
 
void getAdjustedViewport (const KzcVector2 *limits, float *out_x, float *out_y, float *out_width, float *out_height) const
 Gets adjusted viewport from renderer. More...
 
void getAdjustedViewportFromRenderTarget (const RenderTarget &renderTarget, float *out_x, float *out_y, float *out_width, float *out_height) const
 As Renderer3DGetAdjustedViewport, but get viewport limits from render target. More...
 
void setSubRectangleProjection (float x, float y, float width, float height)
 Turn on sub-rectangle of what would be the normal projection with given relative parameters. More...
 
void disableSubRectangleProjection ()
 Disable sub-rectangle of projection. More...
 
float getInheritedAspectRatioMultiplier () const
 Get the multiplier to inherited aspect ratio. More...
 
RenderergetCoreRenderer () const
 Returns core renderer from user renderer. More...
 
void setBoundingBoxVisualizationEnabled (bool enabled)
 Sets bounding box visualization enabled / disabled. More...
 
bool isBoundingBoxVisualizationEnabled () const
 Returns if bounding box visualization is enabled. More...
 
void setSkeletonVisualizationEnabled (bool enabled)
 Sets skeleton visualization enabled / disabled. More...
 
bool isSkeletonVisualizationEnabled () const
 Returns if skeleton visualization is enabled. More...
 
float * getFloatBuffer () const
 Returns float buffer from renderer. More...
 
void setOverrideMaterialCallback (OverrideMaterialCallback callbackFunction, void *userData)
 Set override material callback. More...
 
OverrideMaterialCallback getOverrideMaterialCallback () const
 Gets override material callback from renderer, 0 if not enabled. More...
 
void * getOverrideMaterialCallbackUserData () const
 Gets override material callback user data from renderer. More...
 
void setFramebufferCallback (FramebufferCallback callbackFunction)
 Sets callback function for setActiveFrameBuffer. More...
 
void addBatchToQueue (KzuTransformedObjectNode *objectNode, Mesh *mesh, unsigned int clusterIndex, const Material *material, const KzcMatrix4x4 *transformation)
 Adds batch to batch queue. More...
 
RenderContextStackgetRenderContextStack ()
 Returns the render context stack. More...
 
void drawUntexturedLayerQuad (Vector2 renderOffset, Vector2 renderSize, const Material *material, const Matrix4x4 &worldTransformation)
 
void drawLayerQuad (Vector2 renderOffset, Vector2 renderSize, Vector2 contentOffset, Vector2 contentSize, float depth, const Matrix3x3 &renderTransform)
 
void drawLayerQuadWithMaterial (const Material *material, Vector2 renderOffset, Vector2 renderSize, Vector2 contentOffset, Vector2 contentSize, float depth, const Matrix3x3 &renderTransform)
 
void frawLayerOutlineQuad (float width, float height, const Material *material, float textureHeight, float textureOffset, const KzcColorRGBA *color, const Matrix4x4 &worldTransformation)
 
void frawViewportQuadWithTextureSpan (Vector2 offset, Vector2 limits, Material *material, TextureSharedPtr texture, Vector2 textureSpan)
 
void setSolidColor (const KzcColorRGBA *color)
 Sets solid color for rendering. More...
 
bool applySolidColorMaterial (const KzcColorRGBA *color)
 Applies a material with the given solid color for rendering. More...
 
bool applyDebugLightMaterial (const KzcColorRGBA *color)
 Applies a material with the given debug color for rendering. More...
 
void drawLayoutBox (const KzcVector3 *backBottomLeft, const KzcVector3 *frontTopRight, const KzcMatrix4x4 *transform, const KzcColorRGBA *color)
 Draws a box with the default parameters for layout visualization. More...
 
void drawBoundingVolume (const KzuBoundingVolume *boundingVolume, const KzcMatrix4x4 *worldTransformation, GraphicsFillMode fillMode)
 Draws a bounding volume. More...
 
void drawBoundingVolumeColor (const KzuBoundingVolume *boundingVolume, const KzcMatrix4x4 *worldTransformation, GraphicsFillMode fillMode, const KzcColorRGBA *color)
 Draws a bounding volume. More...
 
void drawBoundingVolumeRaw (const KzuBoundingVolume *boundingVolume, const KzcMatrix4x4 *worldTransformation, GraphicsFillMode fillMode)
 Draws a bounding volume. More...
 
void drawTransformedBoundingVolumeColor (const KzuTransformedBoundingVolume *volume, GraphicsFillMode fillMode, const KzcColorRGBA *color)
 Draws a transformed bounding volume. More...
 
void drawTransformedBoundingVolumeRaw (const KzuTransformedBoundingVolume *volume, GraphicsFillMode fillMode)
 Draws a transformed bounding volume. More...
 
void drawSelectionIndicator (const KzuBoundingVolume *boundingVolume, const KzcMatrix4x4 *worldTransformation, const KzcColorRGBA *color)
 Draws a selection indicator, resembles a bounding volume. More...
 
void drawBoxColor (const KzcVector3 *backBottomLeft, const KzcVector3 *frontTopRight, const KzcMatrix4x4 *transform, GraphicsFillMode fillMode, const KzcColorRGBA *color)
 Draws a box given by two opposing corner points. More...
 
void drawPrimitives (const float *vertexList, unsigned int vertexCount, GraphicsPrimitiveType type, const KzcMatrix4x4 *worldTransformation) const
 Draws primitives of the given type. More...
 
void drawPrimitivesNormal (const float *vertexList, const float *normalList, unsigned int vertexCount, GraphicsPrimitiveType type, const KzcMatrix4x4 *worldTransformation)
 Draws primitives of the given type. More...
 
void drawLineList (const float *lineList, unsigned int lineCount, const KzcMatrix4x4 *worldTransformation) const
 Draws a line list with current settings. More...
 
void drawPrimitiveBufferUntextured (const float *coordinateBuffer, const KzcMatrix4x4 &worldTransform, GraphicsPrimitiveType type, unsigned int count) const
 Draw primitive buffer. More...
 
void drawPrimitiveBufferTextured (const float *coordinateBuffer, const float *texCoordBuffer, const KzcMatrix4x4 &worldTransform, GraphicsPrimitiveType type, unsigned int count) const
 Draw primitive buffer. More...
 
void drawQuad (const KzcVector3 *p1, const KzcVector3 *p2, const KzcVector3 *p3, const KzcVector3 *p4, const KzcVector2 *textureSpan, const Material *material, const KzcColorRGBA *color, const KzcMatrix4x4 *worldTransformation)
 
void drawLayerQuad (const KzcVector2 *renderOffset, const KzcVector2 *renderSize, const KzcVector2 *contentOffset, const KzcVector2 *contentSize, float depth, const KzcMatrix3x3 *renderTransform)
 Render a layer quad. More...
 
void drawLayerQuadWithMaterial (const Material *material, const KzcVector2 *renderOffset, const KzcVector2 *renderSize, const KzcVector2 *contentOffset, const KzcVector2 *contentSize, float depth, const KzcMatrix3x3 *renderTransform)
 Render a layer quad. More...
 
void drawUntexturedLayerQuad (const KzcVector2 *renderOffset, const KzcVector2 *renderSize, const Material *material, const KzcMatrix4x4 *worldTransformation)
 As rendering a layer quad, but omit everything concerning texture coordinates. More...
 
void drawLayerOutlineQuad (float width, float height, const Material *material, float textureHeight, float textureOffset, const KzcColorRGBA *color, const Matrix4x4 &worldTransformation)
 
void drawViewportQuad (const KzcVector2 *offset, const KzcVector2 *limits, Material *material, TextureSharedPtr texture)
 Draws viewport quad, fills with given pattern. More...
 
void drawViewportQuadWithTextureSpan (Vector2 offset, Vector2 limits, Material *material, TextureSharedPtr texture, Vector2 textureSpan)
 
void drawViewportQuadWithTextureSpan (const KzcVector2 *offset, const KzcVector2 *limits, Material *material, TextureSharedPtr texture, const KzcVector2 *textureSpan)
 Draws viewport quad, fills with given pattern. More...
 
void applyStencilSettings (bool stencilTestEnabled, unsigned int stencilRef, unsigned int stencilMask, GraphicsCompareFunction stencilFunction, GraphicsStencilOperation stencilOperationStencilFail, GraphicsStencilOperation stencilOperationStencilPassDepthFail, GraphicsStencilOperation stencilOperationStencilPassDepthPass) const
 Applies stencil settings with overrides for rendering. More...
 
void setDefaultOrthoProjection () const
 Sets default orthogonal projection and viewport for renderer. More...
 
void drawWireframeGrid (float spacing)
 Draws a wire frame grid with default colors. More...
 
void drawBoneIdentifier (const KzcVector3 *position, const KzcMatrix4x4 *orientation)
 Draws a bone identifier. More...
 
void drawLight (const Light *lightNode, const KzcMatrix4x4 *worldTransformation)
 Draws a wire frame light symbol. More...
 
void drawEmptyObject (const KzcMatrix4x4 *worldTransformation)
 Draws an empty object symbol with wire frame lines. More...
 
void drawCamera (const Camera *cameraNode, const KzcMatrix4x4 *worldTransformation)
 Draws a wire frame camera symbol. More...
 
void drawSkeleton (const Mesh *mesh)
 Draws skeleton with wire frame lines. More...
 
void drawTrajectory (Trajectory *trajectory, const KzcMatrix4x4 *worldTransformation, const Matrix4x4 &arrangeTransform, const Vector3 &scaling)
 Draws a trajectory with wire frame lines. More...
 

Detailed Description

Renderer is the core component for assigning lights, meshes, cameras, skin animations etc.

to lower level rendering.

Member Typedef Documentation

typedef kzsError(* kanzi::Renderer3D::ApplyObjectFunction)(KzuTransformedObjectNode *transformedObjectNode, Renderer3D *renderer)

Function pointer for applying specific type of object for rendering.

typedef kzsError(* kanzi::Renderer3D::OverrideMaterialCallback)(const KzuTransformedObjectNode *transformedObjectNode, Material *material, unsigned int cluster, void *userData, Material **out_material)

Callback function for override materials.

typedef void(* kanzi::Renderer3D::FramebufferCallback)(unsigned int framebufferHandle)

Callback prototype for setActiveFramebuffer.

Constructor & Destructor Documentation

kanzi::Renderer3D::Renderer3D ( const KzcMemoryManager memoryManager,
unsigned int  quickMemorySize,
Domain domain 
)
explicit
kanzi::Renderer3D::~Renderer3D ( )

Member Function Documentation

Domain* kanzi::Renderer3D::getDomain ( ) const
ShapeRenderer* kanzi::Renderer3D::getShapeRenderer ( ) const
void kanzi::Renderer3D::setLogging ( bool  logging)

Enables or disables debug log writing.

void kanzi::Renderer3D::reset ( )

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

void kanzi::Renderer3D::resetFrame ( )

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

void kanzi::Renderer3D::endFrame ( )

Ends a frame.

unsigned int kanzi::Renderer3D::getFrameCount ( ) const

Gets number of frames rendered by renderer.

void kanzi::Renderer3D::resetPass ( )

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

void kanzi::Renderer3D::printInfo ( ) const

Ends frame for renderer.

void kanzi::Renderer3D::applyLight ( Light lightNode,
const KzcMatrix4x4 worldTransformation 
)

Adds light property to rendering pipeline.

Lights should be reset each pass by calling Renderer3DResetPass.

void kanzi::Renderer3D::applyRenderable ( KzuTransformedObjectNode transformedObjectNode)

Applies renderable object for rendering.

Called from render pass.

void kanzi::Renderer3D::setTransformedObjectList ( KzcDynamicArray transformedObjectList)

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

KzcDynamicArray* kanzi::Renderer3D::getTransformedObjectList ( ) const

Gets transformed object list from renderer.

void kanzi::Renderer3D::drawBuffers ( Mesh mesh,
Node baseNode,
unsigned int  cluster,
const Material material 
)

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

void kanzi::Renderer3D::drawBuffers ( Morph morph,
Node baseNode,
unsigned int  cluster,
const Material material 
)
void kanzi::Renderer3D::resolveBatchQueue ( )

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

void kanzi::Renderer3D::setSortByShader ( bool  sortByShader)

Sets renderer sort by shader enabled.

bool kanzi::Renderer3D::isSortByShader ( ) const

Returns if sort by shader is enabled.

ResourceManager* kanzi::Renderer3D::getResourceManager ( ) const

Gets renderer resource manager.

KzuPropertyQuery* kanzi::Renderer3D::getPropertyQuery ( ) const

Gets renderer property query.

bool kanzi::Renderer3D::applyMaterial ( const Material material)

Applies material to renderer, attaches the shader and uniforms.

bool kanzi::Renderer3D::applyMaterialStrict ( const Material material)

Applies material to renderer, attaches the shader and uniforms.

Does not allow material which shader has samplers without corresponding texture properties

void kanzi::Renderer3D::applyCameraMatrix ( KzcMatrix4x4  cameraProjectionMatrix,
KzcMatrix4x4  cameraTransformationMatrix,
float  near,
float  far 
) const

Applies camera matrices to renderer so that they can be applied as uniforms to shaders.

MaterialSharedPtr kanzi::Renderer3D::getDebugLightMaterial ( )

Returns debug light material.

Uses color property "Emissive" to specify rendering color.

MaterialSharedPtr kanzi::Renderer3D::getDefaultMaterial ( )

Returns default material from renderer.

MaterialSharedPtr kanzi::Renderer3D::getErrorMaterial ( )

Returns error material from renderer.

MaterialSharedPtr kanzi::Renderer3D::getSolidColorMaterial ( )

Returns solid color material.

Uses color property "Emissive" to specify solid color.

MaterialSharedPtr kanzi::Renderer3D::getTexturedMaterial ( )

Gets textured material from renderer.

void kanzi::Renderer3D::setClearColorOverride ( const KzcColorRGBA colorRGBA)

Sets clear color override for rendering.

0 to colorRGBA to disable.

bool kanzi::Renderer3D::getClearColorOverride ( KzcColorRGBA out_colorRGBA) const

Gets clear color override from renderer.

Returns KZ_TRUE if override enabled.

void kanzi::Renderer3D::setCullFaceOverride ( bool  enabled,
GraphicsCullMode  overriddenCullMode 
)

Sets cull mode override.

bool kanzi::Renderer3D::getCullFaceOverride ( GraphicsCullMode out_overriddenCullMode) const

Returns cull face override.

void kanzi::Renderer3D::setClearColorBufferOverride ( bool  enabled)

Sets clear color buffer override for renderer.

bool kanzi::Renderer3D::getClearColorBufferOverride ( ) const

Returns if clear color buffer override is set.

void kanzi::Renderer3D::setDisableColorWrite ( bool  setDisabled)

Sets color write disabled, overrides render pass settings.

bool kanzi::Renderer3D::isColorWriteDisabled ( ) const

Returns if color write is disabled.

void kanzi::Renderer3D::createMeshVertexCombiningArray ( )

Create vertex combining array from quick memory manager.

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

void kanzi::Renderer3D::setMeshVertexCombiningEnabled ( bool  enabled)

Sets vertex array combine enabled.

bool kanzi::Renderer3D::isMeshVertexCombiningEnabled ( ) const

Returns if vertex array combine is enabled.

void kanzi::Renderer3D::addMeshVertexCombiningArrayVertices ( const float *  vertices,
unsigned int  vertexCount 
)

Adds vertices for vertex combining.

float* kanzi::Renderer3D::getMeshVertexCombiningArray ( unsigned int *  out_vertexCount) const

Gets vertices from vertex combining.

void kanzi::Renderer3D::setRenderPassInputObjectSourceOverride ( FilterObjectSourceSharedPtr  overrideObjectSource)

Sets render pass input object source override.

0 to not override.

FilterObjectSourceSharedPtr kanzi::Renderer3D::getRenderPassInputObjectSourceOverride ( ) const

Gets render pass input object source override.

void kanzi::Renderer3D::setForcedMaterial ( Material material)

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

void kanzi::Renderer3D::setOverrideMaterial ( Material material)

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

Setting material to 0 disables overrides.

Material* kanzi::Renderer3D::getOverrideClusterMaterial ( const KzuTransformedObjectNode transformedObjectNode,
Material clusterMaterial,
unsigned int  clusterIndex,
bool &  out_overridden 
) const

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.

Material* kanzi::Renderer3D::getValidMaterial ( Material material)

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

void kanzi::Renderer3D::setActiveRenderTarget ( const RenderTarget renderTarget)

Sets active render target for renderer.

const RenderTarget* kanzi::Renderer3D::getActiveRenderTarget ( ) const

Gets active render target from renderer.

void kanzi::Renderer3D::setViewport ( float  x,
float  y,
float  width,
float  height,
bool  relative 
)

Sets viewport for renderer.

void kanzi::Renderer3D::getViewport ( float *  out_x,
float *  out_y,
float *  out_width,
float *  out_height,
bool *  out_relative 
) const

Gets viewport from renderer.

Parameters
out_xViewport X coordinate in relative / absolute coordinates. 0 if not needed.
out_yViewport Y coordinate in relative / absolute coordinates. 0 if not needed.
out_widthViewport Width in relative / absolute coordinates. 0 if not needed.
out_heightViewport Height in relative / absolute coordinates. 0 if not needed.
out_relativeIs this window relative (absolute if not). 0 if not needed.
void kanzi::Renderer3D::getAdjustedViewport ( const KzcVector2 limits,
float *  out_x,
float *  out_y,
float *  out_width,
float *  out_height 
) const

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 kanzi::Renderer3D::getAdjustedViewportFromRenderTarget ( const RenderTarget renderTarget,
float *  out_x,
float *  out_y,
float *  out_width,
float *  out_height 
) const

As Renderer3DGetAdjustedViewport, but get viewport limits from render target.

void kanzi::Renderer3D::setSubRectangleProjection ( float  x,
float  y,
float  width,
float  height 
)

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

void kanzi::Renderer3D::disableSubRectangleProjection ( )

Disable sub-rectangle of projection.

float kanzi::Renderer3D::getInheritedAspectRatioMultiplier ( ) const

Get the multiplier to inherited aspect ratio.

Renderer* kanzi::Renderer3D::getCoreRenderer ( ) const

Returns core renderer from user renderer.

void kanzi::Renderer3D::setBoundingBoxVisualizationEnabled ( bool  enabled)

Sets bounding box visualization enabled / disabled.

bool kanzi::Renderer3D::isBoundingBoxVisualizationEnabled ( ) const

Returns if bounding box visualization is enabled.

void kanzi::Renderer3D::setSkeletonVisualizationEnabled ( bool  enabled)

Sets skeleton visualization enabled / disabled.

bool kanzi::Renderer3D::isSkeletonVisualizationEnabled ( ) const

Returns if skeleton visualization is enabled.

float* kanzi::Renderer3D::getFloatBuffer ( ) const

Returns float buffer from renderer.

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

void kanzi::Renderer3D::setOverrideMaterialCallback ( OverrideMaterialCallback  callbackFunction,
void *  userData 
)

Set override material callback.

Pass 0 to disable.

OverrideMaterialCallback kanzi::Renderer3D::getOverrideMaterialCallback ( ) const

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

void* kanzi::Renderer3D::getOverrideMaterialCallbackUserData ( ) const

Gets override material callback user data from renderer.

void kanzi::Renderer3D::setFramebufferCallback ( FramebufferCallback  callbackFunction)

Sets callback function for setActiveFrameBuffer.

Called each time engine changes framebuffer.

void kanzi::Renderer3D::addBatchToQueue ( KzuTransformedObjectNode objectNode,
Mesh mesh,
unsigned int  clusterIndex,
const Material material,
const KzcMatrix4x4 transformation 
)

Adds batch to batch queue.

RenderContextStack& kanzi::Renderer3D::getRenderContextStack ( )

Returns the render context stack.

Parameters
rendererRenderer to access.
Returns
Render context stack from renderer.
void kanzi::Renderer3D::drawUntexturedLayerQuad ( Vector2  renderOffset,
Vector2  renderSize,
const Material material,
const Matrix4x4 worldTransformation 
)
void kanzi::Renderer3D::drawLayerQuad ( Vector2  renderOffset,
Vector2  renderSize,
Vector2  contentOffset,
Vector2  contentSize,
float  depth,
const Matrix3x3 renderTransform 
)
void kanzi::Renderer3D::drawLayerQuadWithMaterial ( const Material material,
Vector2  renderOffset,
Vector2  renderSize,
Vector2  contentOffset,
Vector2  contentSize,
float  depth,
const Matrix3x3 renderTransform 
)
void kanzi::Renderer3D::frawLayerOutlineQuad ( float  width,
float  height,
const Material material,
float  textureHeight,
float  textureOffset,
const KzcColorRGBA color,
const Matrix4x4 worldTransformation 
)
void kanzi::Renderer3D::frawViewportQuadWithTextureSpan ( Vector2  offset,
Vector2  limits,
Material material,
TextureSharedPtr  texture,
Vector2  textureSpan 
)
void kanzi::Renderer3D::setSolidColor ( const KzcColorRGBA color)

Sets solid color for rendering.

Has to be called after material has been applied.

bool kanzi::Renderer3D::applySolidColorMaterial ( const KzcColorRGBA color)

Applies a material with the given solid color for rendering.

Returns
true if drawing can continue, otherwise false.
bool kanzi::Renderer3D::applyDebugLightMaterial ( const KzcColorRGBA color)

Applies a material with the given debug color for rendering.

Returns
true if drawing can continue, otherwise false.
void kanzi::Renderer3D::drawLayoutBox ( const KzcVector3 backBottomLeft,
const KzcVector3 frontTopRight,
const KzcMatrix4x4 transform,
const KzcColorRGBA color 
)

Draws a box with the default parameters for layout visualization.

void kanzi::Renderer3D::drawBoundingVolume ( const KzuBoundingVolume boundingVolume,
const KzcMatrix4x4 worldTransformation,
GraphicsFillMode  fillMode 
)

Draws a bounding volume.

Uses the default color. The box is transformed with the given matrix before drawing.

void kanzi::Renderer3D::drawBoundingVolumeColor ( const KzuBoundingVolume boundingVolume,
const KzcMatrix4x4 worldTransformation,
GraphicsFillMode  fillMode,
const KzcColorRGBA color 
)

Draws a bounding volume.

Uses the given color. The box is transformed with the given matrix before drawing.

void kanzi::Renderer3D::drawBoundingVolumeRaw ( const KzuBoundingVolume boundingVolume,
const KzcMatrix4x4 worldTransformation,
GraphicsFillMode  fillMode 
)

Draws a bounding volume.

Uses the current settings. The box is transformed with the given matrix before drawing.

void kanzi::Renderer3D::drawTransformedBoundingVolumeColor ( const KzuTransformedBoundingVolume volume,
GraphicsFillMode  fillMode,
const KzcColorRGBA color 
)

Draws a transformed bounding volume.

Uses the given color.

void kanzi::Renderer3D::drawTransformedBoundingVolumeRaw ( const KzuTransformedBoundingVolume volume,
GraphicsFillMode  fillMode 
)

Draws a transformed bounding volume.

Uses the current settings.

void kanzi::Renderer3D::drawSelectionIndicator ( const KzuBoundingVolume boundingVolume,
const KzcMatrix4x4 worldTransformation,
const KzcColorRGBA color 
)

Draws a selection indicator, resembles a bounding volume.

void kanzi::Renderer3D::drawBoxColor ( const KzcVector3 backBottomLeft,
const KzcVector3 frontTopRight,
const KzcMatrix4x4 transform,
GraphicsFillMode  fillMode,
const KzcColorRGBA color 
)

Draws a box given by two opposing corner points.

Uses the given color. The box is transformed with the given matrix before drawing.

void kanzi::Renderer3D::drawPrimitives ( const float *  vertexList,
unsigned int  vertexCount,
GraphicsPrimitiveType  type,
const KzcMatrix4x4 worldTransformation 
) const

Draws primitives of the given type.

Takes vertex position data as a parameter.

void kanzi::Renderer3D::drawPrimitivesNormal ( const float *  vertexList,
const float *  normalList,
unsigned int  vertexCount,
GraphicsPrimitiveType  type,
const KzcMatrix4x4 worldTransformation 
)

Draws primitives of the given type.

Takes vertex position and normal data as parameters. When Renderer3DIsMeshVertexCombiningEnabled returns true, draws nothing but populates renderer combined vertex array.

void kanzi::Renderer3D::drawLineList ( const float *  lineList,
unsigned int  lineCount,
const KzcMatrix4x4 worldTransformation 
) const

Draws a line list with current settings.

Handles only position data.

void kanzi::Renderer3D::drawPrimitiveBufferUntextured ( const float *  coordinateBuffer,
const KzcMatrix4x4 worldTransform,
GraphicsPrimitiveType  type,
unsigned int  count 
) const

Draw primitive buffer.

Parameters
rendererRenderer to use.
coordinateBufferCoordinate buffer to bind.
worldTransformWorld transformation.
typePrimitive type to render.
countNumber of vertices to send.
void kanzi::Renderer3D::drawPrimitiveBufferTextured ( const float *  coordinateBuffer,
const float *  texCoordBuffer,
const KzcMatrix4x4 worldTransform,
GraphicsPrimitiveType  type,
unsigned int  count 
) const

Draw primitive buffer.

Parameters
rendererRenderer to use.
coordinateBufferCoordinate buffer to bind.
texCoordBufferTexture coordinate buffer to bind.
worldTransformWorld transformation.
typePrimitive type to render.
countNumber of vertices to send.
void kanzi::Renderer3D::drawQuad ( const KzcVector3 p1,
const KzcVector3 p2,
const KzcVector3 p3,
const KzcVector3 p4,
const KzcVector2 textureSpan,
const Material material,
const KzcColorRGBA color,
const KzcMatrix4x4 worldTransformation 
)
void kanzi::Renderer3D::drawLayerQuad ( const KzcVector2 renderOffset,
const KzcVector2 renderSize,
const KzcVector2 contentOffset,
const KzcVector2 contentSize,
float  depth,
const KzcMatrix3x3 renderTransform 
)

Render a layer quad.

Material used for rendering the quad must be applied prior to this call, one way or another.

Parameters
rendererRenderer to use.
renderOffsetQuad start offset.
renderSizeQuad start size.
contentOffsetTexture coordinate start offset.
contentSizeTexture corodinate size.
depthRender depth.
renderTransformRender transformation.
Returns
Error code.
void kanzi::Renderer3D::drawLayerQuadWithMaterial ( const Material material,
const KzcVector2 renderOffset,
const KzcVector2 renderSize,
const KzcVector2 contentOffset,
const KzcVector2 contentSize,
float  depth,
const KzcMatrix3x3 renderTransform 
)

Render a layer quad.

Parameters
rendererRenderer to use.
materialMaterial to be applied before rendering the quad.
renderOffsetQuad start offset.
renderSizeQuad start size.
contentOffsetTexture coordinate start offset.
contentSizeTexture corodinate size.
depthRender depth.
renderTransformRender transformation.
Returns
Error code.
void kanzi::Renderer3D::drawUntexturedLayerQuad ( const KzcVector2 renderOffset,
const KzcVector2 renderSize,
const Material material,
const KzcMatrix4x4 worldTransformation 
)

As rendering a layer quad, but omit everything concerning texture coordinates.

When Renderer3DIsMeshVertexCombiningEnabled returns true, draws nothing but populates the vertex array.

void kanzi::Renderer3D::drawLayerOutlineQuad ( float  width,
float  height,
const Material material,
float  textureHeight,
float  textureOffset,
const KzcColorRGBA color,
const Matrix4x4 worldTransformation 
)
void kanzi::Renderer3D::drawViewportQuad ( const KzcVector2 offset,
const KzcVector2 limits,
Material material,
TextureSharedPtr  texture 
)

Draws viewport quad, fills with given pattern.

If texture is non-null, use texture span from it.

void kanzi::Renderer3D::drawViewportQuadWithTextureSpan ( Vector2  offset,
Vector2  limits,
Material material,
TextureSharedPtr  texture,
Vector2  textureSpan 
)
void kanzi::Renderer3D::drawViewportQuadWithTextureSpan ( const KzcVector2 offset,
const KzcVector2 limits,
Material material,
TextureSharedPtr  texture,
const KzcVector2 textureSpan 
)

Draws viewport quad, fills with given pattern.

If textureSpan is null, it is taken from texture.

void kanzi::Renderer3D::applyStencilSettings ( bool  stencilTestEnabled,
unsigned int  stencilRef,
unsigned int  stencilMask,
GraphicsCompareFunction  stencilFunction,
GraphicsStencilOperation  stencilOperationStencilFail,
GraphicsStencilOperation  stencilOperationStencilPassDepthFail,
GraphicsStencilOperation  stencilOperationStencilPassDepthPass 
) const

Applies stencil settings with overrides for rendering.

void kanzi::Renderer3D::setDefaultOrthoProjection ( ) const

Sets default orthogonal projection and viewport for renderer.

void kanzi::Renderer3D::drawWireframeGrid ( float  spacing)

Draws a wire frame grid with default colors.

void kanzi::Renderer3D::drawBoneIdentifier ( const KzcVector3 position,
const KzcMatrix4x4 orientation 
)

Draws a bone identifier.

void kanzi::Renderer3D::drawLight ( const Light lightNode,
const KzcMatrix4x4 worldTransformation 
)

Draws a wire frame light symbol.

void kanzi::Renderer3D::drawEmptyObject ( const KzcMatrix4x4 worldTransformation)

Draws an empty object symbol with wire frame lines.

void kanzi::Renderer3D::drawCamera ( const Camera cameraNode,
const KzcMatrix4x4 worldTransformation 
)

Draws a wire frame camera symbol.

void kanzi::Renderer3D::drawSkeleton ( const Mesh mesh)

Draws skeleton with wire frame lines.

void kanzi::Renderer3D::drawTrajectory ( Trajectory trajectory,
const KzcMatrix4x4 worldTransformation,
const Matrix4x4 arrangeTransform,
const Vector3 scaling 
)

Draws a trajectory with wire frame lines.


The documentation for this class was generated from the following file: