<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>Crystal Space 1.2.1: csRenderContext Class Reference (Crystal Space 1.2.1 Public API Reference)</title> <link href="tabs.css" rel="stylesheet" type="text/css"> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <table border="0" cellpadding="0" cellspacing="0" width="100%" class="head"> <tr height="59"> <td class="head" width="202" valign="bottom" style="padding-left:0;"><a href="http://www.crystalspace3d.org/"><img src="csblur.png" width="236" height="59" alt="CrystalSpace" border="0"></a></td> <td class="head"><h2>Public API Reference</h2></td> </tr> <tr height="11"> <td colspan="2" class="headshadow" valign="top" style="padding-left:0;"><img src="csblurb.png" width="236" height="11" alt="" border="0"></td> </tr> </table> <div class="content"> <!-- Generated by Doxygen 1.5.3 --> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="classes.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="classes.html"><span>Alphabetical List</span></a></li> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <h1>csRenderContext Class Reference<br> <small> [<a class="el" href="group__engine3d__views.html">Views & Cameras</a>]</small> </h1><!-- doxytag: class="csRenderContext" -->This structure keeps track of the current render context. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="rview_8h-source.html">iengine/rview.h</a>></code> <p> <p> <a href="classcsRenderContext-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderContext.html#42ccb2da75df9fa0bd7728e7433abb6b">added_fog_info</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">If the following variable is true then a fog_info was added in this recursion level. <a href="#42ccb2da75df9fa0bd7728e7433abb6b"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsPlane3.html">csPlane3</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderContext.html#5b778dcdd9319f3843fb18950a720a09">clip_plane</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">This variable holds the plane of the portal through which the camera is looking. <a href="#5b778dcdd9319f3843fb18950a720a09"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsPlane3.html">csPlane3</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderContext.html#c4a69722d547ba68968ef88ba574736a">clip_planes</a> [7]</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A set of clip planes for this context in world space. <a href="#c4a69722d547ba68968ef88ba574736a"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e">uint32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderContext.html#834a81e2d8e7a1464119c9761cb61533">clip_planes_mask</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A frustum masks which indicates which planes of clip_planes are used. <a href="#834a81e2d8e7a1464119c9761cb61533"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e">uint32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderContext.html#c2e373a2cd5f351b6aee976afba77c22">context_id</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">This unique id can be used to check if you are still in the same render context. <a href="#c2e373a2cd5f351b6aee976afba77c22"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderContext.html#acf6c947536bcd120977f09e8752475f">do_clip_frustum</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">If true then we have to clip all objects to the portal frustum (either in 2D or 3D). <a href="#acf6c947536bcd120977f09e8752475f"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderContext.html#ddf1984f1df42eac1ad832ccc943d2d0">do_clip_plane</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">If true then we clip all objects to 'clip_plane'. <a href="#ddf1984f1df42eac1ad832ccc943d2d0"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderContext.html#1cd92922778b30ff20de6245789bc8dc">draw_rec_level</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A number indicating the recursion level we are in. <a href="#1cd92922778b30ff20de6245789bc8dc"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsFogInfo.html">csFogInfo</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderContext.html#d5f96d76f1849ecab40cace602234a92">fog_info</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Every fogged sector we encountered results in an extra structure in the following list. <a href="#d5f96d76f1849ecab40cace602234a92"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="19d7837bd614d778a4150a9fefe028b7"></a><!-- doxytag: member="csRenderContext::frustum" ref="19d7837bd614d778a4150a9fefe028b7" args="[5]" --> <a class="el" href="classcsPlane3.html">csPlane3</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderContext.html#19d7837bd614d778a4150a9fefe028b7">frustum</a> [5]</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsRef.html">csRef</a>< <a class="el" href="structiCamera.html">iCamera</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderContext.html#cc5aee7432f9006c810797a804e61447">icamera</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The current camera. <a href="#cc5aee7432f9006c810797a804e61447"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsRef.html">csRef</a>< <a class="el" href="structiClipper2D.html">iClipper2D</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderContext.html#a8ace48e7c6328791d5a0ee10ecac53e">iview</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The 2D polygon describing how everything drawn inside should be clipped. <a href="#a8ace48e7c6328791d5a0ee10ecac53e"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structiPortal.html">iPortal</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderContext.html#87bc44b77bd319d27334c3459ead2c62">last_portal</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The last portal we traversed through (or 0 if first sector). <a href="#87bc44b77bd319d27334c3459ead2c62"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsRenderContext.html">csRenderContext</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderContext.html#41278f9c6be634b9342ffda6055b4223">previous</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A pointer back to the previous render context. <a href="#41278f9c6be634b9342ffda6055b4223"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structiSector.html">iSector</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderContext.html#1418864cb432e02f9d52f3943918272e">previous_sector</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The previous sector (or 0 if the first sector). <a href="#1418864cb432e02f9d52f3943918272e"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structiSector.html">iSector</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderContext.html#87d909ae622c5925a3be1e2f607ecfe8">this_sector</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">This sector. <a href="#87d909ae622c5925a3be1e2f607ecfe8"></a><br></td></tr> <tr><td colspan="2"><br><h2>Friends</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6c71c6cf3849c8bf0f772f3c4fd6a2dc"></a><!-- doxytag: member="csRenderContext::csRenderView" ref="6c71c6cf3849c8bf0f772f3c4fd6a2dc" args="" --> class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRenderContext.html#6c71c6cf3849c8bf0f772f3c4fd6a2dc">csRenderView</a></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> This structure keeps track of the current render context. <p> It is used by <a class="el" href="structiRenderView.html" title="This interface represents all information needed to render some object in a current...">iRenderView</a>. When recursing through a portal a new render context will be created and set in place of the old one. <p>Definition at line <a class="el" href="rview_8h-source.html#l00089">89</a> of file <a class="el" href="rview_8h-source.html">rview.h</a>.</p> <hr><h2>Member Data Documentation</h2> <a class="anchor" name="42ccb2da75df9fa0bd7728e7433abb6b"></a><!-- doxytag: member="csRenderContext::added_fog_info" ref="42ccb2da75df9fa0bd7728e7433abb6b" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classcsRenderContext.html#42ccb2da75df9fa0bd7728e7433abb6b">csRenderContext::added_fog_info</a> </td> </tr> </table> </div> <div class="memdoc"> <p> If the following variable is true then a fog_info was added in this recursion level. <p> <p>Definition at line <a class="el" href="rview_8h-source.html#l00154">154</a> of file <a class="el" href="rview_8h-source.html">rview.h</a>.</p> </div> </div><p> <a class="anchor" name="5b778dcdd9319f3843fb18950a720a09"></a><!-- doxytag: member="csRenderContext::clip_plane" ref="5b778dcdd9319f3843fb18950a720a09" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsPlane3.html">csPlane3</a> <a class="el" href="classcsRenderContext.html#5b778dcdd9319f3843fb18950a720a09">csRenderContext::clip_plane</a> </td> </tr> </table> </div> <div class="memdoc"> <p> This variable holds the plane of the portal through which the camera is looking. <p> <p>Definition at line <a class="el" href="rview_8h-source.html#l00120">120</a> of file <a class="el" href="rview_8h-source.html">rview.h</a>.</p> </div> </div><p> <a class="anchor" name="c4a69722d547ba68968ef88ba574736a"></a><!-- doxytag: member="csRenderContext::clip_planes" ref="c4a69722d547ba68968ef88ba574736a" args="[7]" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsPlane3.html">csPlane3</a> <a class="el" href="classcsRenderContext.html#c4a69722d547ba68968ef88ba574736a">csRenderContext::clip_planes</a>[7] </td> </tr> </table> </div> <div class="memdoc"> <p> A set of clip planes for this context in world space. <p> <p>Definition at line <a class="el" href="rview_8h-source.html#l00105">105</a> of file <a class="el" href="rview_8h-source.html">rview.h</a>.</p> </div> </div><p> <a class="anchor" name="834a81e2d8e7a1464119c9761cb61533"></a><!-- doxytag: member="csRenderContext::clip_planes_mask" ref="834a81e2d8e7a1464119c9761cb61533" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e">uint32</a> <a class="el" href="classcsRenderContext.html#834a81e2d8e7a1464119c9761cb61533">csRenderContext::clip_planes_mask</a> </td> </tr> </table> </div> <div class="memdoc"> <p> A frustum masks which indicates which planes of clip_planes are used. <p> <p>Definition at line <a class="el" href="rview_8h-source.html#l00107">107</a> of file <a class="el" href="rview_8h-source.html">rview.h</a>.</p> </div> </div><p> <a class="anchor" name="c2e373a2cd5f351b6aee976afba77c22"></a><!-- doxytag: member="csRenderContext::context_id" ref="c2e373a2cd5f351b6aee976afba77c22" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e">uint32</a> <a class="el" href="classcsRenderContext.html#c2e373a2cd5f351b6aee976afba77c22">csRenderContext::context_id</a> </td> </tr> </table> </div> <div class="memdoc"> <p> This unique id can be used to check if you are still in the same render context. <p> Checking on pointers is not safe since render contexts are reused so a different render context can result in the same pointer. <p>Definition at line <a class="el" href="rview_8h-source.html#l00168">168</a> of file <a class="el" href="rview_8h-source.html">rview.h</a>.</p> </div> </div><p> <a class="anchor" name="acf6c947536bcd120977f09e8752475f"></a><!-- doxytag: member="csRenderContext::do_clip_frustum" ref="acf6c947536bcd120977f09e8752475f" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classcsRenderContext.html#acf6c947536bcd120977f09e8752475f">csRenderContext::do_clip_frustum</a> </td> </tr> </table> </div> <div class="memdoc"> <p> If true then we have to clip all objects to the portal frustum (either in 2D or 3D). <p> 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. <p>Definition at line <a class="el" href="rview_8h-source.html#l00142">142</a> of file <a class="el" href="rview_8h-source.html">rview.h</a>.</p> </div> </div><p> <a class="anchor" name="ddf1984f1df42eac1ad832ccc943d2d0"></a><!-- doxytag: member="csRenderContext::do_clip_plane" ref="ddf1984f1df42eac1ad832ccc943d2d0" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classcsRenderContext.html#ddf1984f1df42eac1ad832ccc943d2d0">csRenderContext::do_clip_plane</a> </td> </tr> </table> </div> <div class="memdoc"> <p> If true then we clip all objects to 'clip_plane'. <p> 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. <p>Definition at line <a class="el" href="rview_8h-source.html#l00132">132</a> of file <a class="el" href="rview_8h-source.html">rview.h</a>.</p> </div> </div><p> <a class="anchor" name="1cd92922778b30ff20de6245789bc8dc"></a><!-- doxytag: member="csRenderContext::draw_rec_level" ref="1cd92922778b30ff20de6245789bc8dc" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="classcsRenderContext.html#1cd92922778b30ff20de6245789bc8dc">csRenderContext::draw_rec_level</a> </td> </tr> </table> </div> <div class="memdoc"> <p> A number indicating the recursion level we are in. <p> Starts with 0. Whenever the engine goes through a portal this number increases. Returning from a portal decreases the number again. <p>Definition at line <a class="el" href="rview_8h-source.html#l00161">161</a> of file <a class="el" href="rview_8h-source.html">rview.h</a>.</p> </div> </div><p> <a class="anchor" name="d5f96d76f1849ecab40cace602234a92"></a><!-- doxytag: member="csRenderContext::fog_info" ref="d5f96d76f1849ecab40cace602234a92" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsFogInfo.html">csFogInfo</a>* <a class="el" href="classcsRenderContext.html#d5f96d76f1849ecab40cace602234a92">csRenderContext::fog_info</a> </td> </tr> </table> </div> <div class="memdoc"> <p> Every fogged sector we encountered results in an extra structure in the following list. <p> This is only used if we are doing vertex based fog. <p>Definition at line <a class="el" href="rview_8h-source.html#l00148">148</a> of file <a class="el" href="rview_8h-source.html">rview.h</a>.</p> </div> </div><p> <a class="anchor" name="cc5aee7432f9006c810797a804e61447"></a><!-- doxytag: member="csRenderContext::icamera" ref="cc5aee7432f9006c810797a804e61447" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsRef.html">csRef</a><<a class="el" href="structiCamera.html">iCamera</a>> <a class="el" href="classcsRenderContext.html#cc5aee7432f9006c810797a804e61447">csRenderContext::icamera</a> </td> </tr> </table> </div> <div class="memdoc"> <p> The current camera. <p> <p>Definition at line <a class="el" href="rview_8h-source.html#l00098">98</a> of file <a class="el" href="rview_8h-source.html">rview.h</a>.</p> </div> </div><p> <a class="anchor" name="a8ace48e7c6328791d5a0ee10ecac53e"></a><!-- doxytag: member="csRenderContext::iview" ref="a8ace48e7c6328791d5a0ee10ecac53e" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsRef.html">csRef</a><<a class="el" href="structiClipper2D.html">iClipper2D</a>> <a class="el" href="classcsRenderContext.html#a8ace48e7c6328791d5a0ee10ecac53e">csRenderContext::iview</a> </td> </tr> </table> </div> <div class="memdoc"> <p> The 2D polygon describing how everything drawn inside should be clipped. <p> <p>Definition at line <a class="el" href="rview_8h-source.html#l00100">100</a> of file <a class="el" href="rview_8h-source.html">rview.h</a>.</p> </div> </div><p> <a class="anchor" name="87bc44b77bd319d27334c3459ead2c62"></a><!-- doxytag: member="csRenderContext::last_portal" ref="87bc44b77bd319d27334c3459ead2c62" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structiPortal.html">iPortal</a>* <a class="el" href="classcsRenderContext.html#87bc44b77bd319d27334c3459ead2c62">csRenderContext::last_portal</a> </td> </tr> </table> </div> <div class="memdoc"> <p> The last portal we traversed through (or 0 if first sector). <p> <p>Definition at line <a class="el" href="rview_8h-source.html#l00110">110</a> of file <a class="el" href="rview_8h-source.html">rview.h</a>.</p> </div> </div><p> <a class="anchor" name="41278f9c6be634b9342ffda6055b4223"></a><!-- doxytag: member="csRenderContext::previous" ref="41278f9c6be634b9342ffda6055b4223" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsRenderContext.html">csRenderContext</a>* <a class="el" href="classcsRenderContext.html#41278f9c6be634b9342ffda6055b4223">csRenderContext::previous</a> </td> </tr> </table> </div> <div class="memdoc"> <p> A pointer back to the previous render context. <p> <p>Definition at line <a class="el" href="rview_8h-source.html#l00095">95</a> of file <a class="el" href="rview_8h-source.html">rview.h</a>.</p> </div> </div><p> <a class="anchor" name="1418864cb432e02f9d52f3943918272e"></a><!-- doxytag: member="csRenderContext::previous_sector" ref="1418864cb432e02f9d52f3943918272e" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structiSector.html">iSector</a>* <a class="el" href="classcsRenderContext.html#1418864cb432e02f9d52f3943918272e">csRenderContext::previous_sector</a> </td> </tr> </table> </div> <div class="memdoc"> <p> The previous sector (or 0 if the first sector). <p> <p>Definition at line <a class="el" href="rview_8h-source.html#l00112">112</a> of file <a class="el" href="rview_8h-source.html">rview.h</a>.</p> </div> </div><p> <a class="anchor" name="87d909ae622c5925a3be1e2f607ecfe8"></a><!-- doxytag: member="csRenderContext::this_sector" ref="87d909ae622c5925a3be1e2f607ecfe8" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structiSector.html">iSector</a>* <a class="el" href="classcsRenderContext.html#87d909ae622c5925a3be1e2f607ecfe8">csRenderContext::this_sector</a> </td> </tr> </table> </div> <div class="memdoc"> <p> This sector. <p> <p>Definition at line <a class="el" href="rview_8h-source.html#l00114">114</a> of file <a class="el" href="rview_8h-source.html">rview.h</a>.</p> </div> </div><p> <hr>The documentation for this class was generated from the following file:<ul> <li>iengine/<a class="el" href="rview_8h-source.html">rview.h</a></ul> <hr size="1"><address><small>Generated for Crystal Space 1.2.1 by <a href="http://www.doxygen.org/index.html">doxygen</a> 1.5.3 </small></address> </div></body> </html>