csRenderContext Class Reference
[Views & Cameras]
This structure keeps track of the current render context. More...
#include <iengine/rview.h>
Public Attributes | |
bool | added_fog_info |
If the following variable is true then a fog_info was added in this recursion level. | |
csPlane3 | clip_plane |
This variable holds the plane of the portal through which the camera is looking. | |
csPlane3 | clip_planes [7] |
A set of clip planes for this context in world space. | |
uint32 | clip_planes_mask |
A frustum masks which indicates which planes of clip_planes are used. | |
uint32 | context_id |
This unique id can be used to check if you are still in the same render context. | |
bool | do_clip_frustum |
If true then we have to clip all objects to the portal frustum (either in 2D or 3D). | |
bool | do_clip_plane |
If true then we clip all objects to 'clip_plane'. | |
int | draw_rec_level |
A number indicating the recursion level we are in. | |
csFogInfo * | fog_info |
Every fogged sector we encountered results in an extra structure in the following list. | |
csRef< iCamera > | icamera |
The current camera. | |
csRef< iClipper2D > | iview |
The 2D polygon describing how everything drawn inside should be clipped. | |
iPortal * | last_portal |
The last portal we traversed through (or 0 if first sector). | |
csRenderContext * | previous |
A pointer back to the previous render context. | |
iSector * | previous_sector |
The previous sector (or 0 if the first sector). | |
iSector * | this_sector |
This sector. |
Detailed Description
This structure keeps track of the current render context.
It is used by iRenderView. When recursing through a portal a new render context will be created and set in place of the old one.
Definition at line 88 of file rview.h.
Member Data Documentation
uint32 csRenderContext::context_id |
If true then we have to clip all objects to the portal frustum (either in 2D or 3D).
Normally this is not needed but some portals require this. If do_clip_plane is true then the value of this field is also implied to be true. The top-level portal should set do_clip_frustum to true in order for all geometry to be correctly clipped to screen boundaries.
If true then we clip all objects to 'clip_plane'.
In principle one should always clip to 'clip_plane'. However, in many cases this is not required because portals mostly arrive in at the boundaries of a sector so there can actually be no objects after the portal plane. But it is possible that portals arive somewhere in the middle of a sector (for example with BSP sectors or with Things containing portals). In that case this variable will be set to true and clipping to 'clip_plane' is required.
The documentation for this class was generated from the following file:
- iengine/rview.h
Generated for Crystal Space 2.0 by doxygen 1.6.1