TalanSoft Toolkits  201707
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Groups Pages
Modules | Classes | Macros | Typedefs | Enumerations | Functions
niPainter

Detailed Description

Modules

 niPainter Utils
 

Classes

struct  iPainter
 Painter interface. More...
 
struct  iPainterVisibilityTestSink
 Painter visibility test sink. More...
 
struct  iPainterDrawSet
 Painter draw set. More...
 
struct  sLightShadowMap
 
struct  sLightDesc
 Light description structure. More...
 
struct  iPainterLight
 Painter light interface. More...
 
struct  iPainterObject
 Painter object interface. More...
 
struct  iPainterPostProcessBloom
 Bloom post process. More...
 
struct  iPainterRenderContextSink
 Painter render context sink. {DispatchWrapper}. More...
 
struct  iPainterRenderContext
 Painter render context interface. More...
 
struct  iPainterRenderPath
 Painter render path interface. More...
 
struct  iPainterShaderCacheSink
 Shader cache sink. More...
 
struct  iPainterShader
 Cached shader. More...
 
struct  iPainterShaderCompilerSink
 Shader compiler {DispatchWrapper}. More...
 
struct  iPainterShaderCache
 Shader cache interface. More...
 
struct  iPainterShadowCache
 
struct  iPainterStates
 Painter states interface. More...
 
struct  iViz
 Viz interface. More...
 
struct  iVizCamera
 Viz camera interface. More...
 
struct  iVizCell
 Viz cell interface. More...
 
struct  iVizObject
 Viz object. More...
 
struct  iVizShape
 Viz shape interface. More...
 
struct  iVizSink
 Viz sink. {DispatchWrapper}. More...
 

Macros

#define ePainterShaderFlags_PainterRT(RT)
 
#define ePainterShaderFlags_GetPainterRT(FLAGS)
 

Typedefs

typedef tU32 tLightFlags
 Light flags type. More...
 
typedef tInterfaceCVec
< iPainterLight > 
tPainterLightCVec
 Painter light vector. More...
 
typedef tU32 tPainterObjectFlags
 Painter channel flags type. More...
 
typedef tInterfaceCVec
< iPainterObject > 
tPainterObjectCVec
 Painter object vector. More...
 
typedef tU32 tPainterRenderPathCapsFlags
 Painter render path capabilitites flags type. More...
 
typedef tU32 tPainterShaderFlags
 Standard painter shader flags type. More...
 
typedef SinkList
< iPainterShaderCacheSink > 
tPainterShaderCacheSinkLst
 Shader cache sink list. More...
 
typedef tInterfaceCVec
< iVizObject > 
tVizObjectCVec
 VizObject vector container. More...
 
typedef tU32 tVizCullingFlags
 Viz culling flags type. More...
 

Enumerations

enum  ePainterTexture {
  ePainterTexture_Noise,
  ePainterTexture_White,
  ePainterTexture_Last,
  ePainterTexture_ForceDWORD
}
 Painter preloaded textures. More...
 
enum  ePainterDrawSetSort {
  ePainterDrawSetSort_None,
  ePainterDrawSetSort_Eye,
  ePainterDrawSetSort_NearPlane,
  ePainterDrawSetSort_Z,
  ePainterDrawSetSort_ForceDWORD
}
 Painter draw set object sorting. More...
 
enum  eLightType {
  eLightType_Ambient,
  eLightType_Directional,
  eLightType_Point,
  eLightType_Spot,
  eLightType_ForceDWORD
}
 Light types. More...
 
enum  eLightFlags {
  eLightFlags_Static,
  eLightFlags_CastShadows,
  eLightFlags_Attenuation,
  eLightFlags_Specular,
  eLightFlags_PBL,
  eLightFlags_Emissive,
  eLightFlags_Ambient,
  eLightFlags_ForceDWORD
}
 Light flags. More...
 
enum  eLightInternalFlags {
  eLightInternalFlags_Disabled,
  eLightInternalFlags_ForceDWORD
}
 Light internal flags. More...
 
enum  eLightShadowFilter {
  eLightShadowFilter_None,
  eLightShadowFilter_Noise,
  eLightShadowFilter_Blur,
  eLightShadowFilter_ForceDWORD
}
 Light shadow filter. More...
 
enum  ePainterChannel {
  ePainterChannel_Setup,
  ePainterChannel_Background,
  ePainterChannel_Regular,
  ePainterChannel_Debug,
  ePainterChannel_EditMode,
  ePainterChannel_Foreground,
  ePainterChannel_PostProcess,
  ePainterChannel_2D,
  ePainterChannel_Last,
  ePainterChannel_ForceDWORD
}
 Painter channels. More...
 
enum  ePainterObjectFlags {
  ePainterObjectFlags_Setup,
  ePainterObjectFlags_Background,
  ePainterObjectFlags_Regular,
  ePainterObjectFlags_Debug,
  ePainterObjectFlags_EditMode,
  ePainterObjectFlags_Foreground,
  ePainterObjectFlags_PostProcess,
  ePainterObjectFlags_2D,
  ePainterObjectFlags_All,
  ePainterObjectFlags_ForceDWORD
}
 Painter object flags. More...
 
enum  ePainterRenderMode {
  ePainterRenderMode_BaseSolid,
  ePainterRenderMode_BaseTranslucent,
  ePainterRenderMode_DepthOnly,
  ePainterRenderMode_ShadowMap,
  ePainterRenderMode_Occlusion,
  ePainterRenderMode_Debug,
  ePainterRenderMode_Final,
  ePainterRenderMode_ForceDWORD
}
 Painter render mode. More...
 
enum  ePainterRenderPathCapsFlags {
  ePainterRenderPathCapsFlags_Instance,
  ePainterRenderPathCapsFlags_Lights,
  ePainterRenderPathCapsFlags_ShadowCache,
  ePainterRenderPathCapsFlags_HDR,
  ePainterRenderPathCapsFlags_Bloom,
  ePainterRenderPathCapsFlags_Occlusion,
  ePainterRenderPathCapsFlags_NoFixedDepth,
  ePainterRenderPathCapsFlags_OptionalLights,
  ePainterRenderPathCapsFlags_ForceDWORD
}
 Painter render path capabilities flags. More...
 
enum  ePainterShaderFlags {
  ePainterShaderFlags_Fast,
  ePainterShaderFlags_WaitCompiler,
  ePainterShaderFlags_FogExp,
  ePainterShaderFlags_AlphaTest,
  ePainterShaderFlags_WorldSpace,
  ePainterShaderFlags_Instance,
  ePainterShaderFlags_DepthOnly,
  ePainterShaderFlags_Viewport,
  ePainterShaderFlags_Quad,
  ePainterShaderFlags_QuadFiltering,
  ePainterShaderFlags_QuadGeometry,
  ePainterShaderFlags_ForceDWORD
}
 Standard painter shader flags. More...
 
enum  ePainterQuality {
  ePainterQuality_Low,
  ePainterQuality_Medium,
  ePainterQuality_High,
  ePainterQuality_ForceDWORD
}
 Painter effects quality. More...
 
enum  ePainterHDRGlareType {
  ePainterHDRGlareType_None,
  ePainterHDRGlareType_Camera,
  ePainterHDRGlareType_Natural,
  ePainterHDRGlareType_CheapLens,
  ePainterHDRGlareType_AfterImage,
  ePainterHDRGlareType_CrossScreen,
  ePainterHDRGlareType_CrossScreenSpectral,
  ePainterHDRGlareType_SnowCross,
  ePainterHDRGlareType_SnowCrossSpectral,
  ePainterHDRGlareType_SunnyCross,
  ePainterHDRGlareType_SunnyCrossSpectral,
  ePainterHDRGlareType_CameraVerticalLits,
  ePainterHDRGlareType_CameraHorizontalLits,
  ePainterHDRGlareType_Last,
  ePainterHDRGlareType_ForceDWORD
}
 Painter HDR glare type. More...
 
enum  ePainterHDRToneMapping {
  ePainterHDRToneMapping_None,
  ePainterHDRToneMapping_Linear,
  ePainterHDRToneMapping_Reinhard,
  ePainterHDRToneMapping_Reinhard2,
  ePainterHDRToneMapping_AdaptiveLog,
  ePainterHDRToneMapping_ForceDOWRD
}
 Painter HDR tone map operator. More...
 
enum  eVizMode {
  eVizMode_Auto,
  eVizMode_Hardware,
  eVizMode_Software,
  eVizMode_Frustum,
  eVizMode_ForceDWORD
}
 Viz mode. More...
 
enum  eVizShapeType {
  eVizShapeType_AABB,
  eVizShapeType_OOBB,
  eVizShapeType_Sphere,
  eVizShapeType_Mesh,
  eVizShapeType_ForceDWORD
}
 Viz shape type. More...
 
enum  eVizCullingFlags {
  eVizCullingFlags_Frustum,
  eVizCullingFlags_Occlusion,
  eVizCullingFlags_PrepareResend,
  eVizCullingFlags_Resend,
  eVizCullingFlags_Optimize,
  eVizCullingFlags_DepthPass,
  eVizCullingFlags_ForceDWORD
}
 Viz culling flags. More...
 
enum  eVizMaterial {
  eVizMaterial_DepthTest,
  eVizMaterial_DepthOnly,
  eVizMaterial_Last,
  eVizMaterial_ForceDWORD
}
 Viz materials. More...
 
enum  eVizTestEvent {
  eVizTestEvent_Begin,
  eVizTestEvent_End,
  eVizTestEvent_FlushDrawDepthOnly,
  eVizTestEvent_ForceDWORD
}
 Viz test event. More...
 
enum  eVizObjectEvent {
  eVizObjectEvent_Visible,
  eVizObjectEvent_DrawDepthOnly,
  eVizObjectEvent_RemovalSuggested,
  eVizObjectEvent_ForceDWORD
}
 Viz object event. More...
 

Functions

iUnknown * New_niPainter_Painter (const Var &avarA, const Var &avarB)
 
iUnknown * New_niPainter_Viz (const ni::Var &avarA, const ni::Var &avarB)
 

Macro Definition Documentation

#define ePainterShaderFlags_PainterRT (   RT)
#define ePainterShaderFlags_GetPainterRT (   FLAGS)

Typedef Documentation

typedef tU32 tLightFlags

Light flags type.

See also
eLightFlags
typedef tInterfaceCVec<iPainterLight> tPainterLightCVec

Painter light vector.

typedef tU32 tPainterObjectFlags

Painter channel flags type.

typedef tInterfaceCVec<iPainterObject> tPainterObjectCVec

Painter object vector.

typedef tU32 tPainterRenderPathCapsFlags

Painter render path capabilitites flags type.

typedef tU32 tPainterShaderFlags

Standard painter shader flags type.

typedef SinkList<iPainterShaderCacheSink> tPainterShaderCacheSinkLst

Shader cache sink list.

typedef tInterfaceCVec<iVizObject> tVizObjectCVec

VizObject vector container.

typedef tU32 tVizCullingFlags

Viz culling flags type.

Enumeration Type Documentation

enum ePainterTexture

Painter preloaded textures.

Enumerator
ePainterTexture_Noise 
ePainterTexture_White 
ePainterTexture_Last 
ePainterTexture_ForceDWORD 
enum ePainterDrawSetSort

Painter draw set object sorting.

Enumerator
ePainterDrawSetSort_None 

Don't sort the objects.

ePainterDrawSetSort_Eye 

(Default) Sort the objects by their distance to the camera position.

ePainterDrawSetSort_NearPlane 

Sort the objects by their planar distance to the camera's near plan.

ePainterDrawSetSort_Z 

Sort the objects by their z position.

ePainterDrawSetSort_ForceDWORD 
enum eLightType

Light types.

Enumerator
eLightType_Ambient 

Ambient light.

eLightType_Directional 

Directional light.

eLightType_Point 

Point light.

eLightType_Spot 

Spot light.

eLightType_ForceDWORD 
enum eLightFlags

Light flags.

Enumerator
eLightFlags_Static 

The light is static.

eLightFlags_CastShadows 

The light cast shadows.

eLightFlags_Attenuation 

The light's intensity is attenuated over its range.

eLightFlags_Specular 

The light make specular highlights.

eLightFlags_PBL 

The light is using physically accurate units and attenuation.

eLightFlags_Emissive 

The light applies the material's emissive color after the lighting computation.

eLightFlags_Ambient 

The light applies the material's ambient color to the lighting computation.

eLightFlags_ForceDWORD 
enum eLightInternalFlags

Light internal flags.

Enumerator
eLightInternalFlags_Disabled 

The light uses a scaling factor.

eLightInternalFlags_ForceDWORD 
enum eLightShadowFilter

Light shadow filter.

Enumerator
eLightShadowFilter_None 

No filtering.

eLightShadowFilter_Noise 

Noisy shadow filter.

eLightShadowFilter_Blur 

Blur shadow filter.

eLightShadowFilter_ForceDWORD 
enum ePainterChannel

Painter channels.

Enumerator
ePainterChannel_Setup 

Rendering setup.

Remarks
Only base solid rendering mode.
ePainterChannel_Background 

Background rendering.

Remarks
Only base solid rendering mode.
ePainterChannel_Regular 

Regular rendering.

ePainterChannel_Debug 

Debug-only rendering.

ePainterChannel_EditMode 

Edit mode rendering.

Remarks
Only base solid rendering mode.
ePainterChannel_Foreground 

Foreground/overlay rendering.

Remarks
Only base solid rendering mode.
ePainterChannel_PostProcess 

Post process rendering.

Remarks
BaseSolid after rendering the solid objects, BaseTranslucent after rendering the translucent objects, Final after rendering the foreground objects.
The post process channel is sorted with Zero has position in PaintBegin().
ePainterChannel_2D 

2D rendering.

Remarks
Only base solid rendering mode.
ePainterChannel_Last 

Last valid channel.

ePainterChannel_ForceDWORD 
enum ePainterObjectFlags

Painter object flags.

Enumerator
ePainterObjectFlags_Setup 

Setup rendering.

ePainterObjectFlags_Background 

Background rendering.

ePainterObjectFlags_Regular 

Regular rendering.

ePainterObjectFlags_Debug 

Debug rendering.

ePainterObjectFlags_EditMode 

Edit mode rendering.

ePainterObjectFlags_Foreground 

Foreground/overlay rendering.

ePainterObjectFlags_PostProcess 

Post process rendering.

ePainterObjectFlags_2D 

2D rendering.

ePainterObjectFlags_All 

All channels flag.

ePainterObjectFlags_ForceDWORD 
enum ePainterRenderMode

Painter render mode.

Enumerator
ePainterRenderMode_BaseSolid 

Base solid rendering.

ePainterRenderMode_BaseTranslucent 

Base translucent rendering.

ePainterRenderMode_DepthOnly 

Depth only rendering.

ePainterRenderMode_ShadowMap 

Shadow map rendering.

ePainterRenderMode_Occlusion 

Occlusion depth rendering.

Remarks
To render depth-only occlusion write shapes.
ePainterRenderMode_Debug 

Debug rendering.

ePainterRenderMode_Final 

Final rendering.

ePainterRenderMode_ForceDWORD 
enum ePainterRenderPathCapsFlags

Painter render path capabilities flags.

Enumerator
ePainterRenderPathCapsFlags_Instance 

Instanced rendering.

ePainterRenderPathCapsFlags_Lights 

Use the specified lights.

ePainterRenderPathCapsFlags_ShadowCache 

Shadow cache usage/rendering.

ePainterRenderPathCapsFlags_HDR 

HDR rendering.

ePainterRenderPathCapsFlags_Bloom 

Handles bloom rendering, PaintScene wont do any bloom rendering automatically.

ePainterRenderPathCapsFlags_Occlusion 

Handles viztest/occlusion rendering.

ePainterRenderPathCapsFlags_NoFixedDepth 

Uses shaders, cant use fixed depth rendering.

ePainterRenderPathCapsFlags_OptionalLights 

Optionally use the specified lights.

ePainterRenderPathCapsFlags_ForceDWORD 
enum ePainterShaderFlags

Standard painter shader flags.

Remarks
These should be set appropriatly by the user.
Enumerator
ePainterShaderFlags_Fast 

Use a 'fast' shader, reducing rendering quality if necessary.

ePainterShaderFlags_WaitCompiler 

Wait for shader compilation, aka don't queue compilation in thread.

ePainterShaderFlags_FogExp 

Apply exponential fog in the shader.

ePainterShaderFlags_AlphaTest 

Alpha test in the shader.

ePainterShaderFlags_WorldSpace 

World space rendering.

ePainterShaderFlags_Instance 

Instance rendering.

ePainterShaderFlags_DepthOnly 

Depth only rendering.

ePainterShaderFlags_Viewport 

Rendering using a different than fullscreen viewport.

ePainterShaderFlags_Quad 

Rendering a 2d quad.

ePainterShaderFlags_QuadFiltering 

Rendering a 2d quad and requiring for four additional filtering offets.

ePainterShaderFlags_QuadGeometry 

Rendering a 2d quad using a projected geometry to define a precise outline.

ePainterShaderFlags_ForceDWORD 
enum ePainterQuality

Painter effects quality.

Enumerator
ePainterQuality_Low 

Low quality effects, lower resolution RT.

ePainterQuality_Medium 

Medium quality effects, normal resolution RT.

ePainterQuality_High 

High quality effects, high resolution RT.

ePainterQuality_ForceDWORD 
enum ePainterHDRGlareType

Painter HDR glare type.

Enumerator
ePainterHDRGlareType_None 
ePainterHDRGlareType_Camera 
ePainterHDRGlareType_Natural 
ePainterHDRGlareType_CheapLens 
ePainterHDRGlareType_AfterImage 
ePainterHDRGlareType_CrossScreen 
ePainterHDRGlareType_CrossScreenSpectral 
ePainterHDRGlareType_SnowCross 
ePainterHDRGlareType_SnowCrossSpectral 
ePainterHDRGlareType_SunnyCross 
ePainterHDRGlareType_SunnyCrossSpectral 
ePainterHDRGlareType_CameraVerticalLits 
ePainterHDRGlareType_CameraHorizontalLits 
ePainterHDRGlareType_Last 
ePainterHDRGlareType_ForceDWORD 
enum ePainterHDRToneMapping

Painter HDR tone map operator.

Enumerator
ePainterHDRToneMapping_None 
ePainterHDRToneMapping_Linear 
ePainterHDRToneMapping_Reinhard 
ePainterHDRToneMapping_Reinhard2 
ePainterHDRToneMapping_AdaptiveLog 
ePainterHDRToneMapping_ForceDOWRD 
enum eVizMode

Viz mode.

Enumerator
eVizMode_Auto 

Auto-detect, prefer hardware.

Remarks
This value is to be used as B parameter of ni::CreateInstance.
eVizMode_Hardware 

Uses hardware occlusion.

eVizMode_Software 

Uses software occlusion.

eVizMode_Frustum 

Does only frustum culling.

eVizMode_ForceDWORD 
enum eVizShapeType

Viz shape type.

Enumerator
eVizShapeType_AABB 

Axis aligned bouning box shape.

eVizShapeType_OOBB 

Object oriented bounding box shape.

eVizShapeType_Sphere 

Sphere shape.

eVizShapeType_Mesh 

Mesh shape.

eVizShapeType_ForceDWORD 
enum eVizCullingFlags

Viz culling flags.

Enumerator
eVizCullingFlags_Frustum 

Enable view frustum culling.

eVizCullingFlags_Occlusion 

Enable occlusion culling (note that eVizCullingFlags_Frustum and eVizCullingFlags_DepthPass get automatically enabled if this is set).

eVizCullingFlags_PrepareResend 

Prepare to resend the results of this query. (DEBUG feature)

eVizCullingFlags_Resend 

Resend the results of the previous query (without re-resolving the visibility). (DEBUG feature)

eVizCullingFlags_Optimize 

allow visibility query to spend additional time for optimizing future queries

eVizCullingFlags_DepthPass 

Reports a depth pass for visible objects which have IsOccluder flag enabled.

eVizCullingFlags_ForceDWORD 
enum eVizMaterial

Viz materials.

Enumerator
eVizMaterial_DepthTest 

Material used to do depth testing.

eVizMaterial_DepthOnly 

Default depth-only rendering material.

eVizMaterial_Last 
eVizMaterial_ForceDWORD 
enum eVizTestEvent

Viz test event.

Enumerator
eVizTestEvent_Begin 

Visibility test began.

eVizTestEvent_End 

Visibility test ended.

eVizTestEvent_FlushDrawDepthOnly 

Draw the depth only pass if queued during eVizObjectEvent_DrawDepthOnly.

eVizTestEvent_ForceDWORD 
enum eVizObjectEvent

Viz object event.

Enumerator
eVizObjectEvent_Visible 

The specified object is visible.

eVizObjectEvent_DrawDepthOnly 

Draw or queue the depth-only pass of the specified object.

Remarks
This event 'MUST' be handled for the hardware occlusion culling to work.
eVizObjectEvent_RemovalSuggested 

Removal of the specified object is suggested.

eVizObjectEvent_ForceDWORD 

Function Documentation

ni::iUnknown * New_niPainter_Painter ( const Var &  avarA,
const Var &  avarB 
)
ni::iUnknown * New_niPainter_Viz ( const ni::Var avarA,
const ni::Var avarB 
)