<html> <head> <title>OgreRenderSystem.h Source File - OGRE Documentation</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link type="text/css" rel="stylesheet" href="style.css"> </head> <body> <!-- Generated by Doxygen 1.3.6 --> <div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a> | <a class="qindex" href="pages.html">Related Pages</a></div> <h1>OgreRenderSystem.h</h1><a href="OgreRenderSystem_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*</span> 00002 <span class="comment">-----------------------------------------------------------------------------</span> 00003 <span class="comment">This source file is part of OGRE</span> 00004 <span class="comment"> (Object-oriented Graphics Rendering Engine)</span> 00005 <span class="comment">For the latest info, see http://ogre.sourceforge.net/</span> 00006 <span class="comment"></span> 00007 <span class="comment">Copyright (c) 2000-2005 The OGRE Team</span> 00008 <span class="comment">Also see acknowledgements in Readme.html</span> 00009 <span class="comment"></span> 00010 <span class="comment">This program is free software; you can redistribute it and/or modify it under</span> 00011 <span class="comment">the terms of the GNU Lesser General Public License as published by the Free Software</span> 00012 <span class="comment">Foundation; either version 2 of the License, or (at your option) any later</span> 00013 <span class="comment">version.</span> 00014 <span class="comment"></span> 00015 <span class="comment">This program is distributed in the hope that it will be useful, but WITHOUT</span> 00016 <span class="comment">ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS</span> 00017 <span class="comment">FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.</span> 00018 <span class="comment"></span> 00019 <span class="comment">You should have received a copy of the GNU Lesser General Public License along with</span> 00020 <span class="comment">this program; if not, write to the Free Software Foundation, Inc., 59 Temple</span> 00021 <span class="comment">Place - Suite 330, Boston, MA 02111-1307, USA, or go to</span> 00022 <span class="comment">http://www.gnu.org/copyleft/lesser.txt.</span> 00023 <span class="comment">-----------------------------------------------------------------------------</span> 00024 <span class="comment">*/</span> 00025 <span class="preprocessor">#ifndef __RenderSystem_H_</span> 00026 <span class="preprocessor"></span><span class="preprocessor">#define __RenderSystem_H_</span> 00027 <span class="preprocessor"></span> 00028 <span class="comment">// Precompiler options</span> 00029 <span class="preprocessor">#include "<a class="code" href="OgrePrerequisites_8h.html">OgrePrerequisites.h</a>"</span> 00030 00031 <span class="preprocessor">#include "<a class="code" href="OgreString_8h.html">OgreString.h</a>"</span> 00032 00033 <span class="preprocessor">#include "<a class="code" href="OgreTextureUnitState_8h.html">OgreTextureUnitState.h</a>"</span> 00034 <span class="preprocessor">#include "<a class="code" href="OgreCommon_8h.html">OgreCommon.h</a>"</span> 00035 00036 <span class="preprocessor">#include "<a class="code" href="OgreRenderOperation_8h.html">OgreRenderOperation.h</a>"</span> 00037 <span class="preprocessor">#include "<a class="code" href="OgreRenderSystemCapabilities_8h.html">OgreRenderSystemCapabilities.h</a>"</span> 00038 <span class="preprocessor">#include "<a class="code" href="OgreRenderTarget_8h.html">OgreRenderTarget.h</a>"</span> 00039 <span class="preprocessor">#include "<a class="code" href="OgreRenderTexture_8h.html">OgreRenderTexture.h</a>"</span> 00040 <span class="preprocessor">#include "<a class="code" href="OgreFrameListener_8h.html">OgreFrameListener.h</a>"</span> 00041 <span class="preprocessor">#include "<a class="code" href="OgreConfigOptionMap_8h.html">OgreConfigOptionMap.h</a>"</span> 00042 <span class="preprocessor">#include "<a class="code" href="OgreGpuProgram_8h.html">OgreGpuProgram.h</a>"</span> 00043 <span class="preprocessor">#include "<a class="code" href="OgrePlane_8h.html">OgrePlane.h</a>"</span> 00044 00045 <span class="keyword">namespace </span>Ogre 00046 { <a name="l00047"></a><a class="code" href="namespaceOgre.html#a442">00047</a> <span class="keyword">typedef</span> std::map< String, RenderTarget * > <a class="code" href="namespaceOgre.html#a442">RenderTargetMap</a>; <a name="l00048"></a><a class="code" href="namespaceOgre.html#a443">00048</a> <span class="keyword">typedef</span> std::multimap<uchar, RenderTarget * > <a class="code" href="namespaceOgre.html#a443">RenderTargetPriorityMap</a>; 00049 00050 <span class="keyword">class </span><a class="code" href="classOgre_1_1TextureManager.html">TextureManager</a>; <a name="l00052"></a><a class="code" href="namespaceOgre.html#a669">00052</a> <span class="keyword">enum</span> <a class="code" href="namespaceOgre.html#a669">TexCoordCalcMethod</a> 00053 { 00055 <a class="code" href="namespaceOgre.html#a669a444">TEXCALC_NONE</a>, 00057 <a class="code" href="namespaceOgre.html#a669a445">TEXCALC_ENVIRONMENT_MAP</a>, 00059 <a class="code" href="namespaceOgre.html#a669a446">TEXCALC_ENVIRONMENT_MAP_PLANAR</a>, 00060 <a class="code" href="namespaceOgre.html#a669a447">TEXCALC_ENVIRONMENT_MAP_REFLECTION</a>, 00061 <a class="code" href="namespaceOgre.html#a669a448">TEXCALC_ENVIRONMENT_MAP_NORMAL</a>, 00063 <a class="code" href="namespaceOgre.html#a669a449">TEXCALC_PROJECTIVE_TEXTURE</a> 00064 }; <a name="l00066"></a><a class="code" href="namespaceOgre.html#a670">00066</a> <span class="keyword">enum</span> <a class="code" href="namespaceOgre.html#a670">StencilOperation</a> 00067 { 00069 <a class="code" href="namespaceOgre.html#a670a450">SOP_KEEP</a>, 00071 <a class="code" href="namespaceOgre.html#a670a451">SOP_ZERO</a>, 00073 <a class="code" href="namespaceOgre.html#a670a452">SOP_REPLACE</a>, 00075 <a class="code" href="namespaceOgre.html#a670a453">SOP_INCREMENT</a>, 00077 <a class="code" href="namespaceOgre.html#a670a454">SOP_DECREMENT</a>, 00079 <a class="code" href="namespaceOgre.html#a670a455">SOP_INCREMENT_WRAP</a>, 00081 <a class="code" href="namespaceOgre.html#a670a456">SOP_DECREMENT_WRAP</a>, 00083 <a class="code" href="namespaceOgre.html#a670a457">SOP_INVERT</a> 00084 }; 00085 <a name="l00087"></a><a class="code" href="namespaceOgre.html#a671">00087</a> <span class="keyword">enum</span> <a class="code" href="namespaceOgre.html#a671">FrameBufferType</a> { 00088 <a class="code" href="namespaceOgre.html#a671a458">FBT_COLOUR</a> = 0x1, 00089 <a class="code" href="namespaceOgre.html#a671a459">FBT_DEPTH</a> = 0x2, 00090 <a class="code" href="namespaceOgre.html#a671a460">FBT_STENCIL</a> = 0x4 00091 }; 00092 <a name="l00116"></a><a class="code" href="classOgre_1_1RenderSystem.html">00116</a> <span class="keyword">class </span><a class="code" href="OgrePlatform_8h.html#a13">_OgreExport</a> RenderSystem 00117 { 00118 <span class="keyword">public</span>: 00121 RenderSystem(); 00122 00125 <span class="keyword">virtual</span> ~RenderSystem(); 00126 00129 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>& getName(<span class="keywordtype">void</span>) <span class="keyword">const</span> = 0; 00130 00152 <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a114">ConfigOptionMap</a>& getConfigOptions(<span class="keywordtype">void</span>) = 0; 00153 00173 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setConfigOption(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a> &name, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a> &value) = 0; 00174 00179 <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a426">String</a> validateConfigOptions(<span class="keywordtype">void</span>) = 0; 00180 00197 <span class="keyword">virtual</span> <a class="code" href="classOgre_1_1RenderWindow.html">RenderWindow</a>* initialise(<span class="keywordtype">bool</span> autoCreateWindow, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>& windowTitle = <span class="stringliteral">"OGRE Render Window"</span>); 00198 00201 <span class="keyword">virtual</span> <span class="keywordtype">void</span> reinitialise(<span class="keywordtype">void</span>) = 0; 00202 00205 <span class="keyword">virtual</span> <span class="keywordtype">void</span> shutdown(<span class="keywordtype">void</span>); 00206 00207 00210 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setAmbientLight(<span class="keywordtype">float</span> r, <span class="keywordtype">float</span> g, <span class="keywordtype">float</span> b) = 0; 00211 00214 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setShadingType(<a class="code" href="namespaceOgre.html#a640">ShadeOptions</a> so) = 0; 00215 00221 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setLightingEnabled(<span class="keywordtype">bool</span> enabled) = 0; 00222 00229 <span class="keywordtype">void</span> setWBufferEnabled(<span class="keywordtype">bool</span> enabled); 00230 00233 <span class="keywordtype">bool</span> getWBufferEnabled(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00234 00319 <span class="keyword">virtual</span> <a class="code" href="classOgre_1_1RenderWindow.html">RenderWindow</a>* createRenderWindow(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a> &name, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> width, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> height, 00320 <span class="keywordtype">bool</span> fullScreen, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a62">NameValuePairList</a> *miscParams = 0) = 0; 00321 00356 <span class="keyword">virtual</span> <a class="code" href="classOgre_1_1RenderTexture.html">RenderTexture</a> * createRenderTexture( <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a> & name, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> width, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> height, 00357 <a class="code" href="namespaceOgre.html#a680">TextureType</a> texType = <a class="code" href="namespaceOgre.html#a680a546">TEX_TYPE_2D</a>, <a class="code" href="namespaceOgre.html#a666">PixelFormat</a> internalFormat = <a class="code" href="namespaceOgre.html#a666a382">PF_X8R8G8B8</a>, 00358 <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a62">NameValuePairList</a> *miscParams = 0 ) = 0; 00359 00361 <span class="keyword">virtual</span> <span class="keywordtype">void</span> destroyRenderWindow(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>& name); 00363 <span class="keyword">virtual</span> <span class="keywordtype">void</span> destroyRenderTexture(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>& name); 00365 <span class="keyword">virtual</span> <span class="keywordtype">void</span> destroyRenderTarget(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>& name); 00366 00369 <span class="keyword">virtual</span> <span class="keywordtype">void</span> attachRenderTarget( <a class="code" href="classOgre_1_1RenderTarget.html">RenderTarget</a> &target ); 00373 <span class="keyword">virtual</span> <a class="code" href="classOgre_1_1RenderTarget.html">RenderTarget</a> * getRenderTarget( <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a> &name ); 00379 <span class="keyword">virtual</span> <a class="code" href="classOgre_1_1RenderTarget.html">RenderTarget</a> * detachRenderTarget( <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a> &name ); 00380 00383 <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a426">String</a> getErrorDescription(<span class="keywordtype">long</span> errorNumber) <span class="keyword">const</span> = 0; 00384 00398 <span class="keywordtype">void</span> setWaitForVerticalBlank(<span class="keywordtype">bool</span> enabled); 00399 00402 <span class="keywordtype">bool</span> getWaitForVerticalBlank(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00403 00404 <span class="comment">// ------------------------------------------------------------------------</span> 00405 <span class="comment">// Internal Rendering Access</span> 00406 <span class="comment">// All methods below here are normally only called by other OGRE classes</span> 00407 <span class="comment">// They can be called by library user if required</span> 00408 <span class="comment">// ------------------------------------------------------------------------</span> 00409 00410 00414 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _useLights(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a59">LightList</a>& lights, <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> limit) = 0; 00416 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setWorldMatrix(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Matrix4.html">Matrix4</a> &m) = 0; 00418 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setWorldMatrices(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Matrix4.html">Matrix4</a>* m, <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> count); 00420 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setViewMatrix(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Matrix4.html">Matrix4</a> &m) = 0; 00422 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setProjectionMatrix(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Matrix4.html">Matrix4</a> &m) = 0; 00428 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setTextureUnitSettings(size_t texUnit, <a class="code" href="classOgre_1_1TextureUnitState.html">TextureUnitState</a>& tl); 00430 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _disableTextureUnit(size_t texUnit); 00432 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _disableTextureUnitsFrom(size_t texUnit); 00466 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setSurfaceParams(<span class="keyword">const</span> <a class="code" href="classOgre_1_1ColourValue.html">ColourValue</a> &ambient, 00467 <span class="keyword">const</span> <a class="code" href="classOgre_1_1ColourValue.html">ColourValue</a> &diffuse, <span class="keyword">const</span> <a class="code" href="classOgre_1_1ColourValue.html">ColourValue</a> &specular, 00468 <span class="keyword">const</span> <a class="code" href="classOgre_1_1ColourValue.html">ColourValue</a> &emissive, <a class="code" href="namespaceOgre.html#a420">Real</a> shininess, 00469 <a class="code" href="namespaceOgre.html#a58">TrackVertexColourType</a> tracking = <a class="code" href="namespaceOgre.html#a647a107">TVC_NONE</a>) = 0; 00486 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setTexture(size_t unit, <span class="keywordtype">bool</span> enabled, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a> &texname) = 0; 00487 00497 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setTextureCoordSet(size_t unit, size_t index) = 0; 00498 00506 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setTextureCoordCalculation(size_t unit, <a class="code" href="namespaceOgre.html#a669">TexCoordCalcMethod</a> m, 00507 <span class="keyword">const</span> <a class="code" href="classOgre_1_1Frustum.html">Frustum</a>* frustum = 0) = 0; 00508 00515 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setTextureBlendMode(size_t unit, <span class="keyword">const</span> <a class="code" href="classOgre_1_1LayerBlendModeEx.html">LayerBlendModeEx</a>& bm) = 0; 00516 00523 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setTextureUnitFiltering(size_t unit, <a class="code" href="namespaceOgre.html#a639">FilterOptions</a> minFilter, 00524 <a class="code" href="namespaceOgre.html#a639">FilterOptions</a> magFilter, <a class="code" href="namespaceOgre.html#a639">FilterOptions</a> mipFilter); 00525 00531 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setTextureUnitFiltering(size_t unit, <a class="code" href="namespaceOgre.html#a638">FilterType</a> ftype, <a class="code" href="namespaceOgre.html#a639">FilterOptions</a> filter) = 0; 00532 00534 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setTextureLayerAnisotropy(size_t unit, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> maxAnisotropy) = 0; 00535 00537 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setTextureAddressingMode(size_t unit, TextureUnitState::TextureAddressingMode tam) = 0; 00538 00543 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setTextureMatrix(size_t unit, <span class="keyword">const</span> <a class="code" href="classOgre_1_1Matrix4.html">Matrix4</a>& xform) = 0; 00544 00553 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setSceneBlending(<a class="code" href="namespaceOgre.html#a635">SceneBlendFactor</a> sourceFactor, <a class="code" href="namespaceOgre.html#a635">SceneBlendFactor</a> destFactor) = 0; 00554 00560 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setAlphaRejectSettings(<a class="code" href="namespaceOgre.html#a636">CompareFunction</a> func, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> value) = 0; 00565 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _beginFrame(<span class="keywordtype">void</span>) = 0; 00566 00567 00571 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _endFrame(<span class="keywordtype">void</span>) = 0; 00579 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setViewport(<a class="code" href="classOgre_1_1Viewport.html">Viewport</a> *vp) = 0; 00581 <span class="keyword">virtual</span> <a class="code" href="classOgre_1_1Viewport.html">Viewport</a>* _getViewport(<span class="keywordtype">void</span>); 00582 00594 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setCullingMode(<a class="code" href="namespaceOgre.html#a642">CullingMode</a> mode) = 0; 00595 00596 <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a642">CullingMode</a> _getCullingMode(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00597 00611 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setDepthBufferParams(<span class="keywordtype">bool</span> depthTest = <span class="keyword">true</span>, <span class="keywordtype">bool</span> depthWrite = <span class="keyword">true</span>, <a class="code" href="namespaceOgre.html#a636">CompareFunction</a> depthFunction = <a class="code" href="namespaceOgre.html#a636a66">CMPF_LESS_EQUAL</a>) = 0; 00612 00617 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setDepthBufferCheckEnabled(<span class="keywordtype">bool</span> enabled = <span class="keyword">true</span>) = 0; 00622 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setDepthBufferWriteEnabled(<span class="keywordtype">bool</span> enabled = <span class="keyword">true</span>) = 0; 00630 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setDepthBufferFunction(<a class="code" href="namespaceOgre.html#a636">CompareFunction</a> func = <a class="code" href="namespaceOgre.html#a636a66">CMPF_LESS_EQUAL</a>) = 0; 00638 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setColourBufferWriteEnabled(<span class="keywordtype">bool</span> red, <span class="keywordtype">bool</span> green, <span class="keywordtype">bool</span> blue, <span class="keywordtype">bool</span> alpha) = 0; 00651 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setDepthBias(<a class="code" href="namespaceOgre.html#a422">ushort</a> bias) = 0; 00663 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setFog(<a class="code" href="namespaceOgre.html#a641">FogMode</a> mode = <a class="code" href="namespaceOgre.html#a641a85">FOG_NONE</a>, <span class="keyword">const</span> <a class="code" href="classOgre_1_1ColourValue.html">ColourValue</a>& colour = ColourValue::White, <a class="code" href="namespaceOgre.html#a420">Real</a> expDensity = 1.0, <a class="code" href="namespaceOgre.html#a420">Real</a> linearStart = 0.0, <a class="code" href="namespaceOgre.html#a420">Real</a> linearEnd = 1.0) = 0; 00664 00665 00667 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _beginGeometryCount(<span class="keywordtype">void</span>); 00669 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _getFaceCount(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00671 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> _getVertexCount(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00672 00681 <span class="keyword">virtual</span> <span class="keywordtype">void</span> convertColourValue(<span class="keyword">const</span> <a class="code" href="classOgre_1_1ColourValue.html">ColourValue</a>& colour, <a class="code" href="namespaceOgre.html#a412">uint32</a>* pDest) = 0; 00682 00689 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _makeProjectionMatrix(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Radian.html">Radian</a>& fovy, <a class="code" href="namespaceOgre.html#a420">Real</a> aspect, <a class="code" href="namespaceOgre.html#a420">Real</a> nearPlane, <a class="code" href="namespaceOgre.html#a420">Real</a> farPlane, 00690 <a class="code" href="classOgre_1_1Matrix4.html">Matrix4</a>& dest, <span class="keywordtype">bool</span> forGpuProgram = <span class="keyword">false</span>) = 0; 00691 00698 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _makeProjectionMatrix(<a class="code" href="namespaceOgre.html#a420">Real</a> left, <a class="code" href="namespaceOgre.html#a420">Real</a> right, <a class="code" href="namespaceOgre.html#a420">Real</a> bottom, <a class="code" href="namespaceOgre.html#a420">Real</a> top, 00699 <a class="code" href="namespaceOgre.html#a420">Real</a> nearPlane, <a class="code" href="namespaceOgre.html#a420">Real</a> farPlane, <a class="code" href="classOgre_1_1Matrix4.html">Matrix4</a>& dest, <span class="keywordtype">bool</span> forGpuProgram = <span class="keyword">false</span>) = 0; 00706 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _makeOrthoMatrix(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Radian.html">Radian</a>& fovy, <a class="code" href="namespaceOgre.html#a420">Real</a> aspect, <a class="code" href="namespaceOgre.html#a420">Real</a> nearPlane, <a class="code" href="namespaceOgre.html#a420">Real</a> farPlane, 00707 <a class="code" href="classOgre_1_1Matrix4.html">Matrix4</a>& dest, <span class="keywordtype">bool</span> forGpuProgram = <span class="keyword">false</span>) = 0; 00708 00725 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _applyObliqueDepthProjection(<a class="code" href="classOgre_1_1Matrix4.html">Matrix4</a>& matrix, <span class="keyword">const</span> <a class="code" href="classOgre_1_1Plane.html">Plane</a>& plane, 00726 <span class="keywordtype">bool</span> forGpuProgram) = 0; 00727 00729 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _setRasterisationMode(<a class="code" href="namespaceOgre.html#a645">SceneDetailLevel</a> level) = 0; 00730 00737 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setStencilCheckEnabled(<span class="keywordtype">bool</span> enabled) = 0; 00753 <span class="comment">/*virtual bool hasHardwareStencil(void) = 0;*/</span> 00754 00790 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setStencilBufferParams(<a class="code" href="namespaceOgre.html#a636">CompareFunction</a> func = <a class="code" href="namespaceOgre.html#a636a64">CMPF_ALWAYS_PASS</a>, 00791 <a class="code" href="namespaceOgre.html#a412">uint32</a> refValue = 0, <a class="code" href="namespaceOgre.html#a412">uint32</a> mask = 0xFFFFFFFF, 00792 <a class="code" href="namespaceOgre.html#a670">StencilOperation</a> stencilFailOp = <a class="code" href="namespaceOgre.html#a670a450">SOP_KEEP</a>, 00793 <a class="code" href="namespaceOgre.html#a670">StencilOperation</a> depthFailOp = <a class="code" href="namespaceOgre.html#a670a450">SOP_KEEP</a>, 00794 <a class="code" href="namespaceOgre.html#a670">StencilOperation</a> passOp = <a class="code" href="namespaceOgre.html#a670a450">SOP_KEEP</a>, 00795 <span class="keywordtype">bool</span> twoSidedOperation = <span class="keyword">false</span>) = 0; 00796 00797 00798 00800 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setVertexDeclaration(<a class="code" href="classOgre_1_1VertexDeclaration.html">VertexDeclaration</a>* decl) = 0; 00802 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setVertexBufferBinding(<a class="code" href="classOgre_1_1VertexBufferBinding.html">VertexBufferBinding</a>* binding) = 0; 00803 00814 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setNormaliseNormals(<span class="keywordtype">bool</span> normalise) = 0; 00815 00828 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _render(<span class="keyword">const</span> <a class="code" href="classOgre_1_1RenderOperation.html">RenderOperation</a>& op); 00829 <a name="l00831"></a><a class="code" href="classOgre_1_1RenderSystem.html#Ogre_1_1RenderSystema73">00831</a> <span class="keyword">const</span> <a class="code" href="classOgre_1_1RenderSystemCapabilities.html">RenderSystemCapabilities</a>* getCapabilities(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mCapabilities; } 00832 00837 <span class="keyword">virtual</span> <span class="keywordtype">void</span> bindGpuProgram(<a class="code" href="classOgre_1_1GpuProgram.html">GpuProgram</a>* prg) = 0; 00838 00840 <span class="keyword">virtual</span> <span class="keywordtype">void</span> bindGpuProgramParameters(GpuProgramType gptype, <a class="code" href="classOgre_1_1SharedPtr.html">GpuProgramParametersSharedPtr</a> <a class="code" href="OgreGLPrerequisites_8h.html#a72">params</a>) = 0; 00845 <span class="keyword">virtual</span> <span class="keywordtype">void</span> unbindGpuProgram(GpuProgramType gptype) = 0; 00846 00849 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setClipPlanes(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a410">PlaneList</a>& clipPlanes) = 0; 00850 00852 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _initRenderTargets(<span class="keywordtype">void</span>); 00853 00857 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _notifyCameraRemoved(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Camera.html">Camera</a>* cam); 00858 00860 <span class="keyword">virtual</span> <span class="keywordtype">void</span> _updateAllRenderTargets(<span class="keywordtype">void</span>); 00861 00863 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setClipPlane (<a class="code" href="namespaceOgre.html#a422">ushort</a> index, <span class="keyword">const</span> <a class="code" href="classOgre_1_1Plane.html">Plane</a> &p); 00865 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setClipPlane (<a class="code" href="namespaceOgre.html#a422">ushort</a> index, <a class="code" href="namespaceOgre.html#a420">Real</a> A, <a class="code" href="namespaceOgre.html#a420">Real</a> B, <a class="code" href="namespaceOgre.html#a420">Real</a> C, <a class="code" href="namespaceOgre.html#a420">Real</a> D) = 0; 00867 <span class="keyword">virtual</span> <span class="keywordtype">void</span> enableClipPlane (<a class="code" href="namespaceOgre.html#a422">ushort</a> index, <span class="keywordtype">bool</span> enable) = 0; 00868 00871 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setInvertVertexWinding(<span class="keywordtype">bool</span> invert); 00883 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setScissorTest(<span class="keywordtype">bool</span> enabled, size_t left = 0, size_t top = 0, 00884 size_t right = 800, size_t bottom = 600) = 0; 00885 00893 <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearFrameBuffer(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> buffers, 00894 <span class="keyword">const</span> <a class="code" href="classOgre_1_1ColourValue.html">ColourValue</a>& colour = ColourValue::Black, 00895 <a class="code" href="namespaceOgre.html#a420">Real</a> depth = 1.0f, <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> stencil = 0) = 0; 00905 <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a420">Real</a> getHorizontalTexelOffset(<span class="keywordtype">void</span>) = 0; 00915 <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a420">Real</a> getVerticalTexelOffset(<span class="keywordtype">void</span>) = 0; 00916 00925 <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a420">Real</a> getMinimumDepthInputValue(<span class="keywordtype">void</span>) = 0; 00934 <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a420">Real</a> getMaximumDepthInputValue(<span class="keywordtype">void</span>) = 0; 00935 <span class="keyword">protected</span>: 00936 00937 <a name="l00939"></a><a class="code" href="classOgre_1_1RenderSystem.html#Ogre_1_1RenderSystemp0">00939</a> <a class="code" href="namespaceOgre.html#a442">RenderTargetMap</a> mRenderTargets; <a name="l00941"></a><a class="code" href="classOgre_1_1RenderSystem.html#Ogre_1_1RenderSystemp1">00941</a> <a class="code" href="namespaceOgre.html#a443">RenderTargetPriorityMap</a> mPrioritisedRenderTargets; <a name="l00943"></a><a class="code" href="classOgre_1_1RenderSystem.html#Ogre_1_1RenderSystemp2">00943</a> <a class="code" href="classOgre_1_1RenderTarget.html">RenderTarget</a> * mActiveRenderTarget; 00944 00945 <span class="comment">// Texture manager</span> 00946 <span class="comment">// A concrete class of this will be created and</span> 00947 <span class="comment">// made available under the TextureManager singleton,</span> 00948 <span class="comment">// managed by the RenderSystem</span> <a name="l00949"></a><a class="code" href="classOgre_1_1RenderSystem.html#Ogre_1_1RenderSystemp3">00949</a> <a class="code" href="classOgre_1_1TextureManager.html">TextureManager</a>* mTextureManager; 00950 <a name="l00952"></a><a class="code" href="classOgre_1_1RenderSystem.html#Ogre_1_1RenderSystemp4">00952</a> <a class="code" href="classOgre_1_1RenderSystemCapabilities.html">RenderSystemCapabilities</a>* mCapabilities; 00953 00954 <span class="comment">// Active viewport (dest for future rendering operations)</span> <a name="l00955"></a><a class="code" href="classOgre_1_1RenderSystem.html#Ogre_1_1RenderSystemp5">00955</a> <a class="code" href="classOgre_1_1Viewport.html">Viewport</a>* mActiveViewport; 00956 <a name="l00957"></a><a class="code" href="classOgre_1_1RenderSystem.html#Ogre_1_1RenderSystemp6">00957</a> <a class="code" href="namespaceOgre.html#a642">CullingMode</a> mCullingMode; 00958 <a name="l00959"></a><a class="code" href="classOgre_1_1RenderSystem.html#Ogre_1_1RenderSystemp7">00959</a> <span class="keywordtype">bool</span> mVSync; <a name="l00960"></a><a class="code" href="classOgre_1_1RenderSystem.html#Ogre_1_1RenderSystemp8">00960</a> <span class="keywordtype">bool</span> mWBuffer; 00961 <a name="l00962"></a><a class="code" href="classOgre_1_1RenderSystem.html#Ogre_1_1RenderSystemp9">00962</a> size_t mFaceCount; <a name="l00963"></a><a class="code" href="classOgre_1_1RenderSystem.html#Ogre_1_1RenderSystemp10">00963</a> size_t mVertexCount; 00964 <a name="l00966"></a><a class="code" href="classOgre_1_1RenderSystem.html#Ogre_1_1RenderSystemp11">00966</a> <a class="code" href="classOgre_1_1Matrix4.html">Matrix4</a> mWorldMatrices[256]; 00967 <a name="l00968"></a><a class="code" href="classOgre_1_1RenderSystem.html#Ogre_1_1RenderSystemp12">00968</a> <span class="keywordtype">bool</span> mInvertVertexWinding; 00969 00970 }; 00971 } 00972 00973 <span class="preprocessor">#endif</span> </pre></div><p> Copyright © 2000-2005 by The OGRE Team<br /> Last modified Wed Feb 23 00:19:12 2005 </p> </body> </html>