<html> <head> <title>OgreRenderTarget.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>OgreRenderTarget.h</h1><a href="OgreRenderTarget_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://www.ogre3d.org/</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 __RenderTarget_H__</span> 00026 <span class="preprocessor"></span><span class="preprocessor">#define __RenderTarget_H__</span> 00027 <span class="preprocessor"></span> 00028 <span class="preprocessor">#include "<a class="code" href="OgrePrerequisites_8h.html">OgrePrerequisites.h</a>"</span> 00029 00030 <span class="preprocessor">#include "<a class="code" href="OgreString_8h.html">OgreString.h</a>"</span> 00031 <span class="preprocessor">#include "<a class="code" href="OgreTextureManager_8h.html">OgreTextureManager.h</a>"</span> 00032 <span class="preprocessor">#include "<a class="code" href="OgreViewport_8h.html">OgreViewport.h</a>"</span> 00033 <span class="preprocessor">#include "<a class="code" href="OgreTimer_8h.html">OgreTimer.h</a>"</span> 00034 00035 <span class="comment">/* Define the number of priority groups for the render system's render targets. */</span> 00036 <span class="preprocessor">#ifndef OGRE_NUM_RENDERTARGET_GROUPS</span> <a name="l00037"></a><a class="code" href="OgreRenderTarget_8h.html#a0">00037</a> <span class="preprocessor"></span><span class="preprocessor"> #define OGRE_NUM_RENDERTARGET_GROUPS 10</span> <a name="l00038"></a><a class="code" href="OgreRenderTarget_8h.html#a1">00038</a> <span class="preprocessor"></span><span class="preprocessor"> #define OGRE_DEFAULT_RT_GROUP 4</span> <a name="l00039"></a><a class="code" href="OgreRenderTarget_8h.html#a2">00039</a> <span class="preprocessor"></span><span class="preprocessor"> #define OGRE_REND_TO_TEX_RT_GROUP 2</span> 00040 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 00041 <span class="preprocessor"></span> 00042 <span class="keyword">namespace </span>Ogre { 00043 <a name="l00055"></a><a class="code" href="classOgre_1_1RenderTarget.html">00055</a> <span class="keyword">class </span><a class="code" href="OgrePlatform_8h.html#a13">_OgreExport</a> RenderTarget 00056 { 00057 <span class="keyword">public</span>: <a name="l00058"></a><a class="code" href="classOgre_1_1RenderTarget.html#Ogre_1_1Win32Windoww7">00058</a> <span class="keyword">enum</span> StatFlags 00059 { 00060 SF_NONE = 0, 00061 SF_FPS = 1, 00062 SF_AVG_FPS = 2, 00063 SF_BEST_FPS = 4, 00064 SF_WORST_FPS = 8, 00065 SF_TRIANGLE_COUNT = 16, 00066 SF_ALL = 0xFFFF 00067 }; 00068 <a name="l00069"></a><a class="code" href="structOgre_1_1RenderTarget_1_1FrameStats.html">00069</a> <span class="keyword">struct </span><a class="code" href="structOgre_1_1RenderTarget_1_1FrameStats.html">FrameStats</a> 00070 { <a name="l00071"></a><a class="code" href="structOgre_1_1RenderTarget_1_1FrameStats.html#Ogre_1_1RenderTarget_1_1FrameStatso0">00071</a> <span class="keywordtype">float</span> lastFPS; <a name="l00072"></a><a class="code" href="structOgre_1_1RenderTarget_1_1FrameStats.html#Ogre_1_1RenderTarget_1_1FrameStatso1">00072</a> <span class="keywordtype">float</span> avgFPS; <a name="l00073"></a><a class="code" href="structOgre_1_1RenderTarget_1_1FrameStats.html#Ogre_1_1RenderTarget_1_1FrameStatso2">00073</a> <span class="keywordtype">float</span> bestFPS; <a name="l00074"></a><a class="code" href="structOgre_1_1RenderTarget_1_1FrameStats.html#Ogre_1_1RenderTarget_1_1FrameStatso3">00074</a> <span class="keywordtype">float</span> worstFPS; <a name="l00075"></a><a class="code" href="structOgre_1_1RenderTarget_1_1FrameStats.html#Ogre_1_1RenderTarget_1_1FrameStatso4">00075</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> bestFrameTime; <a name="l00076"></a><a class="code" href="structOgre_1_1RenderTarget_1_1FrameStats.html#Ogre_1_1RenderTarget_1_1FrameStatso5">00076</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> worstFrameTime; <a name="l00077"></a><a class="code" href="structOgre_1_1RenderTarget_1_1FrameStats.html#Ogre_1_1RenderTarget_1_1FrameStatso6">00077</a> size_t triangleCount; 00078 }; 00079 00080 RenderTarget(); 00081 <span class="keyword">virtual</span> ~RenderTarget(); 00082 00084 <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>; 00085 00087 <span class="keyword">virtual</span> <span class="keywordtype">void</span> getMetrics(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>& width, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>& height, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>& colourDepth); 00088 00089 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getWidth(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00090 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getHeight(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00091 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getColourDepth(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00092 00106 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update(<span class="keywordtype">void</span>); 00107 00131 <span class="keyword">virtual</span> <a class="code" href="classOgre_1_1Viewport.html">Viewport</a>* addViewport(<a class="code" href="classOgre_1_1Camera.html">Camera</a>* cam, <span class="keywordtype">int</span> ZOrder = 0, <span class="keywordtype">float</span> left = 0.0f, <span class="keywordtype">float</span> top = 0.0f , 00132 <span class="keywordtype">float</span> width = 1.0f, <span class="keywordtype">float</span> height = 1.0f); 00133 00135 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> getNumViewports(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00136 00138 <span class="keyword">virtual</span> <a class="code" href="classOgre_1_1Viewport.html">Viewport</a>* getViewport(<span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> index); 00139 00142 <span class="keyword">virtual</span> <span class="keywordtype">void</span> removeViewport(<span class="keywordtype">int</span> ZOrder); 00143 00146 <span class="keyword">virtual</span> <span class="keywordtype">void</span> removeAllViewports(<span class="keywordtype">void</span>); 00147 00166 <span class="keyword">virtual</span> <span class="keywordtype">void</span> getStatistics(<span class="keywordtype">float</span>& lastFPS, <span class="keywordtype">float</span>& avgFPS, 00167 <span class="keywordtype">float</span>& bestFPS, <span class="keywordtype">float</span>& worstFPS) <span class="keyword">const</span>; <span class="comment">// Access to stats</span> 00168 00169 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="structOgre_1_1RenderTarget_1_1FrameStats.html">FrameStats</a>& getStatistics(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00170 00173 <span class="keyword">virtual</span> <span class="keywordtype">float</span> getLastFPS() <span class="keyword">const</span>; 00174 00177 <span class="keyword">virtual</span> <span class="keywordtype">float</span> getAverageFPS() <span class="keyword">const</span>; 00178 00181 <span class="keyword">virtual</span> <span class="keywordtype">float</span> getBestFPS() <span class="keyword">const</span>; 00182 00185 <span class="keyword">virtual</span> <span class="keywordtype">float</span> getWorstFPS() <span class="keyword">const</span>; 00186 00189 <span class="keyword">virtual</span> <span class="keywordtype">float</span> getBestFrameTime() <span class="keyword">const</span>; 00190 00193 <span class="keyword">virtual</span> <span class="keywordtype">float</span> getWorstFrameTime() <span class="keyword">const</span>; 00194 00197 <span class="keyword">virtual</span> <span class="keywordtype">void</span> resetStatistics(<span class="keywordtype">void</span>); 00198 00208 <span class="keyword">virtual</span> <span class="keywordtype">void</span> getCustomAttribute(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>& name, <span class="keywordtype">void</span>* pData); 00209 00211 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setDebugText(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>& text); 00212 00214 <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>& getDebugText() <span class="keyword">const</span>; 00215 00224 <span class="keyword">virtual</span> <span class="keywordtype">void</span> addListener(<a class="code" href="classOgre_1_1RenderTargetListener.html">RenderTargetListener</a>* listener); 00226 <span class="keyword">virtual</span> <span class="keywordtype">void</span> removeListener(<a class="code" href="classOgre_1_1RenderTargetListener.html">RenderTargetListener</a>* listener); 00228 <span class="keyword">virtual</span> <span class="keywordtype">void</span> removeAllListeners(<span class="keywordtype">void</span>); 00229 <a name="l00237"></a><a class="code" href="classOgre_1_1RenderTarget.html#Ogre_1_1Win32Windowa46">00237</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setPriority( <a class="code" href="namespaceOgre.html#a421">uchar</a> priority ) { mPriority = priority; } <a name="l00239"></a><a class="code" href="classOgre_1_1RenderTarget.html#Ogre_1_1Win32Windowa47">00239</a> <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a421">uchar</a> getPriority()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mPriority; } 00240 00243 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isActive() <span class="keyword">const</span>; 00244 00247 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setActive( <span class="keywordtype">bool</span> state ); 00248 00260 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setAutoUpdated(<span class="keywordtype">bool</span> autoupdate); 00264 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isAutoUpdated(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00265 00267 <span class="keyword">virtual</span> <span class="keywordtype">void</span> writeContentsToFile(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>& filename) = 0; 00268 00271 <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a426">String</a> writeContentsToTimestampedFile(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>& filenamePrefix, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>& filenameSuffix); 00272 00273 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> requiresTextureFlipping() <span class="keyword">const</span> = 0; 00274 00276 <span class="keyword">virtual</span> size_t getTriangleCount(<span class="keywordtype">void</span>) <span class="keyword">const</span>; 00280 <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); 00281 00282 <span class="keyword">protected</span>: <a name="l00284"></a><a class="code" href="classOgre_1_1RenderTarget.html#Ogre_1_1Win32Windowp13">00284</a> <a class="code" href="namespaceOgre.html#a426">String</a> mName; <a name="l00286"></a><a class="code" href="classOgre_1_1RenderTarget.html#Ogre_1_1Win32Windowp14">00286</a> <a class="code" href="namespaceOgre.html#a421">uchar</a> mPriority; 00287 <a name="l00288"></a><a class="code" href="classOgre_1_1RenderTarget.html#Ogre_1_1Win32Windowp15">00288</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> mWidth; <a name="l00289"></a><a class="code" href="classOgre_1_1RenderTarget.html#Ogre_1_1Win32Windowp16">00289</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> mHeight; <a name="l00290"></a><a class="code" href="classOgre_1_1RenderTarget.html#Ogre_1_1Win32Windowp17">00290</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> mColourDepth; <a name="l00291"></a><a class="code" href="classOgre_1_1RenderTarget.html#Ogre_1_1Win32Windowp18">00291</a> <span class="keywordtype">bool</span> mIsDepthBuffered; 00292 00293 <span class="comment">// Stats</span> <a name="l00294"></a><a class="code" href="classOgre_1_1RenderTarget.html#Ogre_1_1Win32Windowp19">00294</a> <a class="code" href="structOgre_1_1RenderTarget_1_1FrameStats.html">FrameStats</a> mStats; 00295 <a name="l00296"></a><a class="code" href="classOgre_1_1RenderTarget.html#Ogre_1_1Win32Windowp20">00296</a> <a class="code" href="classOgre_1_1Timer.html">Timer</a>* mTimer ; <a name="l00297"></a><a class="code" href="classOgre_1_1RenderTarget.html#Ogre_1_1Win32Windowp21">00297</a> <a class="code" href="namespaceOgre.html#a426">String</a> mDebugText; <a name="l00298"></a><a class="code" href="classOgre_1_1RenderTarget.html#Ogre_1_1Win32Windowp22">00298</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> mLastSecond; <a name="l00299"></a><a class="code" href="classOgre_1_1RenderTarget.html#Ogre_1_1Win32Windowp23">00299</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> mLastTime; <a name="l00300"></a><a class="code" href="classOgre_1_1RenderTarget.html#Ogre_1_1Win32Windowp24">00300</a> size_t mFrameCount; 00301 <a name="l00302"></a><a class="code" href="classOgre_1_1RenderTarget.html#Ogre_1_1Win32RenderTexturep21">00302</a> <span class="keywordtype">bool</span> mActive; <a name="l00303"></a><a class="code" href="classOgre_1_1RenderTarget.html#Ogre_1_1Win32Windowp25">00303</a> <span class="keywordtype">bool</span> mAutoUpdate; 00304 00305 <span class="keywordtype">void</span> updateStats(<span class="keywordtype">void</span>); 00306 <a name="l00307"></a><a class="code" href="classOgre_1_1RenderTarget.html#Ogre_1_1Win32Windowx0">00307</a> <span class="keyword">typedef</span> std::map<int, Viewport*, std::less<int> > <a class="code" href="classOgre_1_1RenderTarget.html#Ogre_1_1Win32Windowx0">ViewportList</a>; <a name="l00309"></a><a class="code" href="classOgre_1_1RenderTarget.html#Ogre_1_1Win32Windowp26">00309</a> <a class="code" href="classOgre_1_1RenderTarget.html#Ogre_1_1Win32Windowx0">ViewportList</a> mViewportList; 00310 <a name="l00311"></a><a class="code" href="classOgre_1_1RenderTarget.html#Ogre_1_1Win32Windowx1">00311</a> <span class="keyword">typedef</span> std::vector<RenderTargetListener*> <a class="code" href="classOgre_1_1RenderTarget.html#Ogre_1_1Win32Windowx1">RenderTargetListenerList</a>; <a name="l00312"></a><a class="code" href="classOgre_1_1RenderTarget.html#Ogre_1_1Win32Windowp27">00312</a> <a class="code" href="classOgre_1_1RenderTarget.html#Ogre_1_1Win32Windowx1">RenderTargetListenerList</a> mListeners; 00313 00315 <span class="keyword">virtual</span> <span class="keywordtype">void</span> firePreUpdate(<span class="keywordtype">void</span>); 00317 <span class="keyword">virtual</span> <span class="keywordtype">void</span> firePostUpdate(<span class="keywordtype">void</span>); 00319 <span class="keyword">virtual</span> <span class="keywordtype">void</span> fireViewportPreUpdate(<a class="code" href="classOgre_1_1Viewport.html">Viewport</a>* vp); 00321 <span class="keyword">virtual</span> <span class="keywordtype">void</span> fireViewportPostUpdate(<a class="code" href="classOgre_1_1Viewport.html">Viewport</a>* vp); 00322 }; 00323 00324 } <span class="comment">// Namespace</span> 00325 00326 <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>