<html> <head> <title>OgreD3D9RenderWindow.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>OgreD3D9RenderWindow.h</h1><a href="OgreD3D9RenderWindow_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 __D3D9RENDERWINDOW_H__</span> 00026 <span class="preprocessor"></span><span class="preprocessor">#define __D3D9RENDERWINDOW_H__</span> 00027 <span class="preprocessor"></span> 00028 <span class="preprocessor">#include "<a class="code" href="OgreD3D9Prerequisites_8h.html">OgreD3D9Prerequisites.h</a>"</span> 00029 <span class="preprocessor">#include "<a class="code" href="OgreRenderWindow_8h.html">OgreRenderWindow.h</a>"</span> 00030 <span class="preprocessor">#include "<a class="code" href="OgreD3D9Driver_8h.html">OgreD3D9Driver.h</a>"</span> 00031 00032 <span class="keyword">namespace </span>Ogre 00033 { <a name="l00034"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html">00034</a> <span class="keyword">class </span><a class="code" href="classOgre_1_1D3D9RenderWindow.html">D3D9RenderWindow</a> : <span class="keyword">public</span> <a class="code" href="classOgre_1_1RenderWindow.html">RenderWindow</a> 00035 { 00036 <span class="keyword">public</span>: 00043 <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa0">D3D9RenderWindow</a>(HINSTANCE instance, <a class="code" href="classOgre_1_1D3D9Driver.html">D3D9Driver</a> *driver, LPDIRECT3DDEVICE9 deviceIfSwapChain = 0); 00044 <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa1">~D3D9RenderWindow</a>(); 00045 <span class="keywordtype">void</span> <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa2">create</a>(<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, 00046 <span class="keywordtype">bool</span> fullScreen, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a62">NameValuePairList</a> *miscParams); 00047 <span class="keywordtype">void</span> <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa3">destroy</a>(<span class="keywordtype">void</span>); <a name="l00048"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa4">00048</a> <span class="keywordtype">bool</span> <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa4">isActive</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mActive; } <a name="l00049"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa5">00049</a> <span class="keywordtype">bool</span> <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa5">isClosed</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mClosed; } <a name="l00050"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa6">00050</a> <span class="keywordtype">void</span> <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa6">reposition</a>( <span class="keywordtype">int</span> left, <span class="keywordtype">int</span> top ) {} 00051 <span class="keywordtype">void</span> <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa7">resize</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> width, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> height ); 00052 <span class="keywordtype">void</span> <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa8">swapBuffers</a>( <span class="keywordtype">bool</span> waitForVSync = <span class="keyword">true</span> ); <a name="l00053"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa9">00053</a> HWND <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa9">getWindowHandle</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mHWnd; } 00054 <a name="l00055"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa10">00055</a> <a class="code" href="classOgre_1_1D3D9Driver.html">D3D9Driver</a>* <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa10">getDirectD3DDriver</a>() { <span class="keywordflow">return</span> mDriver; } <a name="l00056"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa11">00056</a> LPDIRECT3DDEVICE9 <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa11">getD3DDevice</a>() { <span class="keywordflow">return</span> mpD3DDevice; } 00057 00058 <span class="keywordtype">void</span> <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa12">getCustomAttribute</a>( <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>& name, <span class="keywordtype">void</span>* pData ); 00061 <span class="keywordtype">void</span> <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa13">writeContentsToFile</a>(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>& filename); <a name="l00062"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa14">00062</a> <span class="keywordtype">bool</span> <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa14">requiresTextureFlipping</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">false</span>; } 00063 00064 <span class="comment">// Method for dealing with resize / move & 3d library</span> 00065 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa15">WindowMovedOrResized</a>(<span class="keywordtype">void</span>); 00066 <a name="l00067"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa16">00067</a> <span class="keywordtype">bool</span> <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa16">isReady</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mReady; } <a name="l00068"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa17">00068</a> <span class="keywordtype">void</span> <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa17">setReady</a>(<span class="keywordtype">bool</span> set) { mReady = set; } <a name="l00069"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa18">00069</a> <span class="keywordtype">void</span> <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa18">setActive</a>(<span class="keywordtype">bool</span> set) { mActive = set; } <a name="l00071"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa19">00071</a> D3DPRESENT_PARAMETERS* <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa19">getPresentationParameters</a>(<span class="keywordtype">void</span>) 00072 { <span class="keywordflow">return</span> &<a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowp9">md3dpp</a>; } 00074 <span class="keywordtype">void</span> <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa20">update</a>(<span class="keywordtype">void</span>); 00075 00078 <span class="keywordtype">void</span> <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowa21">createD3DResources</a>(<span class="keywordtype">void</span>); 00079 00080 <span class="keyword">protected</span>: <a name="l00081"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowp0">00081</a> HINSTANCE mInstance; <span class="comment">// Process instance</span> <a name="l00082"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowp1">00082</a> <a class="code" href="classOgre_1_1D3D9Driver.html">D3D9Driver</a> *mDriver; <span class="comment">// D3D9 driver</span> <a name="l00083"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowp2">00083</a> HWND mHWnd; <span class="comment">// Win32 Window handle</span> <a name="l00084"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowp3">00084</a> <span class="keywordtype">bool</span> mActive; <span class="comment">// Is active i.e. visible</span> <a name="l00085"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowp4">00085</a> <span class="keywordtype">bool</span> mReady; <span class="comment">// Is ready i.e. available for update</span> <a name="l00086"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowp5">00086</a> <span class="keywordtype">bool</span> mClosed; <a name="l00087"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowp6">00087</a> <span class="keywordtype">bool</span> <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowp6">mIsSwapChain</a>; <span class="comment">// Is this a secondary window?</span> 00088 00089 <span class="keyword">static</span> LRESULT CALLBACK <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowf0">WndProc</a>( 00090 HWND hWnd, 00091 UINT uMsg, 00092 WPARAM wParam, 00093 LPARAM lParam ); 00094 00095 <span class="comment">// -------------------------------------------------------</span> 00096 <span class="comment">// DirectX-specific</span> 00097 <span class="comment">// -------------------------------------------------------</span> 00098 00099 <span class="comment">// Pointer to the 3D device - window 'owns' this if !mIsSwapChain</span> <a name="l00100"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowp7">00100</a> LPDIRECT3DDEVICE9 mpD3DDevice; 00101 <span class="comment">// Pointer to swap chain, only valid if mIsSwapChain</span> <a name="l00102"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowp8">00102</a> LPDIRECT3DSWAPCHAIN9 <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowp8">mpSwapChain</a>; <a name="l00103"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowp9">00103</a> D3DPRESENT_PARAMETERS <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowp9">md3dpp</a>; <a name="l00104"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowp10">00104</a> LPDIRECT3DSURFACE9 <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowp10">mpRenderSurface</a>; <a name="l00105"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowp11">00105</a> LPDIRECT3DSURFACE9 <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowp11">mpRenderZBuffer</a>; <a name="l00106"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowp12">00106</a> D3DMULTISAMPLE_TYPE mFSAAType; <a name="l00107"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowp13">00107</a> DWORD mFSAAQuality; <a name="l00108"></a><a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowp14">00108</a> <span class="keywordtype">bool</span> mVSync; 00109 00110 <span class="comment">// just check if the multisampling requested is supported by the device</span> 00111 <span class="keywordtype">bool</span> <a class="code" href="classOgre_1_1D3D9RenderWindow.html#Ogre_1_1D3D9RenderWindowb0">_checkMultiSampleQuality</a>(D3DMULTISAMPLE_TYPE type, DWORD *outQuality, D3DFORMAT format, UINT adapterNum, D3DDEVTYPE deviceType, BOOL fullScreen); 00112 00113 }; 00114 } 00115 <span class="preprocessor">#endif</span> </pre></div><p> Copyright © 2000-2005 by The OGRE Team<br /> Last modified Wed Feb 23 00:19:05 2005 </p> </body> </html>