#include <rinfo.h>
Inherits RenderInfoClass.
Public Types | |
| enum | { RENDER_VIS , RENDER_SHADOW } |
Public Types inherited from RenderInfoClass | |
| enum | RINFO_OVERRIDE_FLAGS { RINFO_OVERRIDE_DEFAULT = 0x0000 , RINFO_OVERRIDE_FORCE_TWO_SIDED = 0x0001 , RINFO_OVERRIDE_FORCE_SORTING = 0x0002 , RINFO_OVERRIDE_ADDITIONAL_PASSES_ONLY = 0x0004 , RINFO_OVERRIDE_SHADOW_RENDERING = 0x0008 } |
Public Member Functions | |
| SpecialRenderInfoClass (CameraClass &cam, int render_type) | |
| ~SpecialRenderInfoClass (void) | |
Public Member Functions inherited from RenderInfoClass | |
| RenderInfoClass (CameraClass &cam) | |
| ~RenderInfoClass (void) | |
| void | Push_Material_Pass (MaterialPassClass *matpass) |
| void | Pop_Material_Pass (void) |
| int | Additional_Pass_Count (void) |
| MaterialPassClass * | Peek_Additional_Pass (int i) |
| void | Push_Override_Flags (RINFO_OVERRIDE_FLAGS flg) |
| void | Pop_Override_Flags (void) |
| RINFO_OVERRIDE_FLAGS & | Current_Override_Flags (void) |
Public Attributes | |
| int | RenderType |
| VisRasterizerClass * | VisRasterizer |
| BWRenderClass * | BWRenderer |
Public Attributes inherited from RenderInfoClass | |
| CameraClass & | Camera |
| float | fog_scale |
| float | fog_start |
| float | fog_end |
| float | alphaOverride |
| float | materialPassAlphaOverride |
| float | materialPassEmissiveOverride |
| LightEnvironmentClass * | light_environment |
| TexProjectClass * | Texture_Projector |
Additional Inherited Members | |
Protected Attributes inherited from RenderInfoClass | |
| MaterialPassClass * | AdditionalMaterialPassArray [MAX_ADDITIONAL_MATERIAL_PASSES] |
| unsigned | AdditionalMaterialPassCount |
| unsigned | RejectedMaterialPasses |
| RINFO_OVERRIDE_FLAGS | OverrideFlag [MAX_OVERRIDE_FLAG_LEVEL] |
| unsigned | OverrideFlagLevel |
SpecialRenderInfoClass This structure also contains a "grab-bag" of junk for use by the Special_Render function. The first use that I have for Special_Render is to implement the visibility detection algorithm where each object is rendered in such a way that I can get the 'id' of the object which generated each pixel on the screen. Another use I have planned for Special_Render is a shadow rendering mode that just draws an object in solid black from the point of view of a light source. This would just need another enum for the RenderType...
The reason for a Special_Render function is that I didn't want to pollute the main rendering pipeline with checks for these alternate rendering operations.
| SpecialRenderInfoClass::SpecialRenderInfoClass | ( | CameraClass & | cam, |
| int | render_type ) |
| BWRenderClass* SpecialRenderInfoClass::BWRenderer |
| VisRasterizerClass* SpecialRenderInfoClass::VisRasterizer |