source: GTP/trunk/App/Demos/Illum/Envmap/doc/html/_main_8cpp.html @ 843

Revision 843, 57.0 KB checked in by szirmay, 18 years ago (diff)
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3<title>gyak: Main.cpp File Reference</title>
4<link href="doxygen.css" rel="stylesheet" type="text/css">
5</head><body>
6<!-- Generated by Doxygen 1.4.2 -->
7<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
8<div class="nav">
9<a class="el" href="dir_000000.html">D:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Szirmay</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">_Work</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">DirectX (Shaders)</a>&nbsp;/&nbsp;<a class="el" href="dir_000004.html">Progs</a>&nbsp;/&nbsp;<a class="el" href="dir_000005.html">9 EnvMap (diffuse&amp;specular)</a>&nbsp;/&nbsp;<a class="el" href="dir_000006.html">fin_EnvMap</a></div>
10<h1>Main.cpp File Reference</h1>Performs DirectX initialization via DXUT callback functions. Adds some additional helper functions to support screenshot capturing. <a href="#_details">More...</a>
11<p>
12<code>#include "dxstdafx.h"</code><br>
13<code>#include "<a class="el" href="resource_8h.html">resource.h</a>"</code><br>
14<code>#include &lt;math.h&gt;</code><br>
15<code>#include &lt;stdio.h&gt;</code><br>
16<code>#include &lt;time.h&gt;</code><br>
17<code>#include "<a class="el" href="_cube_8h.html">Cube.h</a>"</code><br>
18<code>#include "<a class="el" href="_mesh_8h.html">Mesh.h</a>"</code><br>
19<code>#include "<a class="el" href="_parameters_8h.html">Parameters.h</a>"</code><br>
20<code>#include "<a class="el" href="_env_map_8h.html">EnvMap.h</a>"</code><br>
21<table border="0" cellpadding="0" cellspacing="0">
22<tr><td></td></tr>
23<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
24<tr><td class="memItemLeft" nowrap align="right" valign="top">bool CALLBACK&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a17">IsDeviceAcceptable</a> (D3DCAPS9 *pCaps, D3DFORMAT AdapterFormat, D3DFORMAT BackBufferFormat, bool bWindowed, void *pUserContext)</td></tr>
25
26<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">DXUT callback (Rejects any devices that aren't acceptable by returning false).  <a href="#a17"></a><br></td></tr>
27<tr><td class="memItemLeft" nowrap align="right" valign="top">bool CALLBACK&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a18">ModifyDeviceSettings</a> (DXUTDeviceSettings *pDeviceSettings, const D3DCAPS9 *pCaps, void *pUserContext)</td></tr>
28
29<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">DXUT callback (Before a device is created, modifies the device settings as needed).  <a href="#a18"></a><br></td></tr>
30<tr><td class="memItemLeft" nowrap align="right" valign="top">HRESULT CALLBACK&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a19">OnCreateDevice</a> (IDirect3DDevice9 *<a class="el" href="_mesh_8cpp.html#a0">g_pd3dDevice</a>, const D3DSURFACE_DESC *pBackBufferSurfaceDesc, void *pUserContext)</td></tr>
31
32<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">DXUT callback (You should create any D3DPOOL_MANAGED resources here).  <a href="#a19"></a><br></td></tr>
33<tr><td class="memItemLeft" nowrap align="right" valign="top">HRESULT CALLBACK&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a20">OnResetDevice</a> (IDirect3DDevice9 *<a class="el" href="_mesh_8cpp.html#a0">g_pd3dDevice</a>, const D3DSURFACE_DESC *pBackBufferSurfaceDesc, void *pUserContext)</td></tr>
34
35<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">DXUT callback (You should create any D3DPOOL_DEFAULT resources here).  <a href="#a20"></a><br></td></tr>
36<tr><td class="memItemLeft" nowrap align="right" valign="top">void CALLBACK&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a21">OnFrameMove</a> (IDirect3DDevice9 *<a class="el" href="_mesh_8cpp.html#a0">g_pd3dDevice</a>, double fTime, float fElapsedTime, void *pUserContext)</td></tr>
37
38<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">DXUT callback (Handle updates to the scene).  <a href="#a21"></a><br></td></tr>
39<tr><td class="memItemLeft" nowrap align="right" valign="top">void CALLBACK&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a22">OnFrameRender</a> (IDirect3DDevice9 *<a class="el" href="_mesh_8cpp.html#a0">g_pd3dDevice</a>, double fTime, float fElapsedTime, void *pUserContext)</td></tr>
40
41<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">DXUT callback (Render the scene). Also responsible for screenshot taking.  <a href="#a22"></a><br></td></tr>
42<tr><td class="memItemLeft" nowrap align="right" valign="top">LRESULT CALLBACK&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a23">MsgProc</a> (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, bool *pbNoFurtherProcessing, void *pUserContext)</td></tr>
43
44<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">DXUT callback (Message processing).  <a href="#a23"></a><br></td></tr>
45<tr><td class="memItemLeft" nowrap align="right" valign="top">void CALLBACK&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a24">KeyboardProc</a> (UINT nChar, bool bKeyDown, bool bAltDown, void *pUserContext)</td></tr>
46
47<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">DXUT callback (Keystroke messages).  <a href="#a24"></a><br></td></tr>
48<tr><td class="memItemLeft" nowrap align="right" valign="top">void CALLBACK&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a25">OnGUIEvent</a> (UINT nEvent, int nControlID, CDXUTControl *pControl, void *pUserContext)</td></tr>
49
50<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">DXUT callback (called by the framework in case of GUI events).  <a href="#a25"></a><br></td></tr>
51<tr><td class="memItemLeft" nowrap align="right" valign="top">void CALLBACK&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a26">OnLostDevice</a> (void *pUserContext)</td></tr>
52
53<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">DXUT callback (You should release resources created in the OnResetDevice callback here).  <a href="#a26"></a><br></td></tr>
54<tr><td class="memItemLeft" nowrap align="right" valign="top">void CALLBACK&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a27">OnDestroyDevice</a> (void *pUserContext)</td></tr>
55
56<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">DXUT callback (You should release resources created in the OnCreateDevice callback here).  <a href="#a27"></a><br></td></tr>
57<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a28">InitParams</a> ()</td></tr>
58
59<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines application-specific parameters and creates GUI controls (sliders, checkboxes) for them.  <a href="#a28"></a><br></td></tr>
60<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a29">RenderText</a> ()</td></tr>
61
62<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Renders help and statistics text and displays algorithmic-specific parameters.  <a href="#a29"></a><br></td></tr>
63<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a30">SaveCameraPosition</a> (char *fileName)</td></tr>
64
65<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Writes current camera settings to file.  <a href="#a30"></a><br></td></tr>
66<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a31">LoadCameraPosition</a> (char *fileName)</td></tr>
67
68<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Loads camera settings from file.  <a href="#a31"></a><br></td></tr>
69<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a32">GenerateNewFileName</a> (int &amp;<a class="el" href="_main_8cpp.html#a12">counter</a>)</td></tr>
70
71<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generates a non-existing filename to store the screenshot in the <b>shots</b> directory.  <a href="#a32"></a><br></td></tr>
72<tr><td class="memItemLeft" nowrap align="right" valign="top">INT WINAPI&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a33">WinMain</a> (HINSTANCE, HINSTANCE, LPSTR, int)</td></tr>
73
74<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Entry point to the program.  <a href="#a33"></a><br></td></tr>
75<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a34">OnLoad</a> ()</td></tr>
76
77<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a35">OnSave</a> ()</td></tr>
78
79<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a36">OnReset</a> ()</td></tr>
80
81<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a37">Exponent</a> (float f)</td></tr>
82
83<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a38">OnChangeCubeMap</a> ()</td></tr>
84
85<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a39">OnChangeShininess</a> ()</td></tr>
86
87<tr><td class="memItemLeft" nowrap align="right" valign="top">IDirect3DTexture9 *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a40">CreateTexture</a> (int size, D3DFORMAT Format)</td></tr>
88
89<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Util function. Creates an empty texture that shall be used as render target.  <a href="#a40"></a><br></td></tr>
90<tr><td class="memItemLeft" nowrap align="right" valign="top">IDirect3DCubeTexture9 *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a41">CreateCubeTexture</a> (int size, D3DFORMAT Format)</td></tr>
91
92<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Util function. Creates an empty cubemap texture that shall be used as render target.  <a href="#a41"></a><br></td></tr>
93<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
94<tr><td class="memItemLeft" nowrap align="right" valign="top">const int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a0">WIDTH</a> = 640</td></tr>
95
96<tr><td class="memItemLeft" nowrap align="right" valign="top">const int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a1">HEIGHT</a> = 640</td></tr>
97
98<tr><td class="memItemLeft" nowrap align="right" valign="top">const int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a2">CHARBUFFER_SIZE</a> = 200</td></tr>
99
100<tr><td class="memItemLeft" nowrap align="right" valign="top">IDirect3DDevice9 *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a3">g_pd3dDevice</a></td></tr>
101
102<tr><td class="memItemLeft" nowrap align="right" valign="top">ID3DXEffect *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a4">g_pEffect</a></td></tr>
103
104<tr><td class="memItemLeft" nowrap align="right" valign="top">CDXUTDialogResourceManager&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a5">g_DialogResourceManager</a></td></tr>
105
106<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Manager for shared resources of dialogs.  <a href="#a5"></a><br></td></tr>
107<tr><td class="memItemLeft" nowrap align="right" valign="top">CD3DSettingsDlg&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a6">g_SettingsDlg</a></td></tr>
108
109<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Device settings dialog.  <a href="#a6"></a><br></td></tr>
110<tr><td class="memItemLeft" nowrap align="right" valign="top">CDXUTDialog&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a7">g_HUD</a></td></tr>
111
112<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Dialog for sample specific controls.  <a href="#a7"></a><br></td></tr>
113<tr><td class="memItemLeft" nowrap align="right" valign="top">ID3DXFont *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a8">g_pFont</a></td></tr>
114
115<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Font for drawing text.  <a href="#a8"></a><br></td></tr>
116<tr><td class="memItemLeft" nowrap align="right" valign="top">ID3DXSprite *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a9">g_pTextSprite</a></td></tr>
117
118<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sprite for batching draw text calls.  <a href="#a9"></a><br></td></tr>
119<tr><td class="memItemLeft" nowrap align="right" valign="top">IDirect3DSurface9 *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a10">g_pSaveSurface</a></td></tr>
120
121<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">surface for screenshot capturing  <a href="#a10"></a><br></td></tr>
122<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a11">bSavingScreenshot</a> = false</td></tr>
123
124<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">boolean for screenshot capturing  <a href="#a11"></a><br></td></tr>
125<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a12">counter</a> = 0</td></tr>
126
127<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">counter for screenshots (see <a class="el" href="_main_8cpp.html#a32">GenerateNewFileName()</a>)  <a href="#a12"></a><br></td></tr>
128<tr><td class="memItemLeft" nowrap align="right" valign="top">HRESULT&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a13">hr</a></td></tr>
129
130<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="class_env_map.html">EnvMap</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a14">envmapRenderer</a> = new <a class="el" href="class_env_map.html">EnvMap</a>()</td></tr>
131
132<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">problem-specific stuff  <a href="#a14"></a><br></td></tr>
133<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="class_parameters.html">Parameters</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a15">pp</a></td></tr>
134
135<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">managing parameters of the algorithm  <a href="#a15"></a><br></td></tr>
136<tr><td class="memItemLeft" nowrap align="right" valign="top">CModelViewerCamera&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_8cpp.html#a16">camera</a></td></tr>
137
138<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">camera  <a href="#a16"></a><br></td></tr>
139</table>
140<hr><a name="_details"></a><h2>Detailed Description</h2>
141Performs DirectX initialization via DXUT callback functions. Adds some additional helper functions to support screenshot capturing.
142<p>
143<ul>
144<li>Performs DirectX initialization via DXUT callback functions</li></ul>
145<p>
146<ul>
147<li>Adds some additional helper functions to support screenshot capturing.</li></ul>
148<p>
149<dl compact><dt><b>Author:</b></dt><dd>Istvan Lazanyi, TU Budapest </dd></dl>
150<dl compact><dt><b>Date:</b></dt><dd>2006-04-26 </dd></dl>
151<hr><h2>Function Documentation</h2>
152<a class="anchor" name="a41" doxytag="Main.cpp::CreateCubeTexture"></a><p>
153<table class="mdTable" cellpadding="2" cellspacing="0">
154  <tr>
155    <td class="mdRow">
156      <table cellpadding="0" cellspacing="0" border="0">
157        <tr>
158          <td class="md" nowrap valign="top">IDirect3DCubeTexture9* CreateCubeTexture           </td>
159          <td class="md" valign="top">(&nbsp;</td>
160          <td class="md" nowrap valign="top">int&nbsp;</td>
161          <td class="mdname" nowrap> <em>size</em>, </td>
162        </tr>
163        <tr>
164          <td class="md" nowrap align="right"></td>
165          <td class="md"></td>
166          <td class="md" nowrap>D3DFORMAT&nbsp;</td>
167          <td class="mdname" nowrap> <em>Format</em></td>
168        </tr>
169        <tr>
170          <td class="md"></td>
171          <td class="md">)&nbsp;</td>
172          <td class="md" colspan="2"></td>
173        </tr>
174      </table>
175    </td>
176  </tr>
177</table>
178<table cellspacing="5" cellpadding="0" border="0">
179  <tr>
180    <td>
181      &nbsp;
182    </td>
183    <td>
184
185<p>
186Util function. Creates an empty cubemap texture that shall be used as render target.
187<p>
188<dl compact><dt><b>Parameters:</b></dt><dd>
189  <table border="0" cellspacing="2" cellpadding="0">
190    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>size of the new texture </td></tr>
191    <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>format of the new texture (eg. D3DFMT_A32B32G32R32F) </td></tr>
192  </table>
193</dl>
194    </td>
195  </tr>
196</table>
197<a class="anchor" name="a40" doxytag="Main.cpp::CreateTexture"></a><p>
198<table class="mdTable" cellpadding="2" cellspacing="0">
199  <tr>
200    <td class="mdRow">
201      <table cellpadding="0" cellspacing="0" border="0">
202        <tr>
203          <td class="md" nowrap valign="top">IDirect3DTexture9* CreateTexture           </td>
204          <td class="md" valign="top">(&nbsp;</td>
205          <td class="md" nowrap valign="top">int&nbsp;</td>
206          <td class="mdname" nowrap> <em>size</em>, </td>
207        </tr>
208        <tr>
209          <td class="md" nowrap align="right"></td>
210          <td class="md"></td>
211          <td class="md" nowrap>D3DFORMAT&nbsp;</td>
212          <td class="mdname" nowrap> <em>Format</em></td>
213        </tr>
214        <tr>
215          <td class="md"></td>
216          <td class="md">)&nbsp;</td>
217          <td class="md" colspan="2"></td>
218        </tr>
219      </table>
220    </td>
221  </tr>
222</table>
223<table cellspacing="5" cellpadding="0" border="0">
224  <tr>
225    <td>
226      &nbsp;
227    </td>
228    <td>
229
230<p>
231Util function. Creates an empty texture that shall be used as render target.
232<p>
233Note that render targets (D3DUSAGE_RENDERTARGET) must be created in the default memory pool (D3DPOOL_DEFAULT). <dl compact><dt><b>Parameters:</b></dt><dd>
234  <table border="0" cellspacing="2" cellpadding="0">
235    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>size of the new texture </td></tr>
236    <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>format of the new texture (eg. D3DFMT_A32B32G32R32F) </td></tr>
237  </table>
238</dl>
239    </td>
240  </tr>
241</table>
242<a class="anchor" name="a37" doxytag="Main.cpp::Exponent"></a><p>
243<table class="mdTable" cellpadding="2" cellspacing="0">
244  <tr>
245    <td class="mdRow">
246      <table cellpadding="0" cellspacing="0" border="0">
247        <tr>
248          <td class="md" nowrap valign="top">float Exponent           </td>
249          <td class="md" valign="top">(&nbsp;</td>
250          <td class="md" nowrap valign="top">float&nbsp;</td>
251          <td class="mdname1" valign="top" nowrap> <em>f</em>          </td>
252          <td class="md" valign="top">&nbsp;)&nbsp;</td>
253          <td class="md" nowrap></td>
254        </tr>
255      </table>
256    </td>
257  </tr>
258</table>
259<table cellspacing="5" cellpadding="0" border="0">
260  <tr>
261    <td>
262      &nbsp;
263    </td>
264    <td>
265
266<p>
267    </td>
268  </tr>
269</table>
270<a class="anchor" name="a32" doxytag="Main.cpp::GenerateNewFileName"></a><p>
271<table class="mdTable" cellpadding="2" cellspacing="0">
272  <tr>
273    <td class="mdRow">
274      <table cellpadding="0" cellspacing="0" border="0">
275        <tr>
276          <td class="md" nowrap valign="top">int GenerateNewFileName           </td>
277          <td class="md" valign="top">(&nbsp;</td>
278          <td class="md" nowrap valign="top">int &amp;&nbsp;</td>
279          <td class="mdname1" valign="top" nowrap> <em>counter</em>          </td>
280          <td class="md" valign="top">&nbsp;)&nbsp;</td>
281          <td class="md" nowrap></td>
282        </tr>
283      </table>
284    </td>
285  </tr>
286</table>
287<table cellspacing="5" cellpadding="0" border="0">
288  <tr>
289    <td>
290      &nbsp;
291    </td>
292    <td>
293
294<p>
295Generates a non-existing filename to store the screenshot in the <b>shots</b> directory.
296<p>
297Generated file names are shots/000.png, shots/001.png, ...     </td>
298  </tr>
299</table>
300<a class="anchor" name="a28" doxytag="Main.cpp::InitParams"></a><p>
301<table class="mdTable" cellpadding="2" cellspacing="0">
302  <tr>
303    <td class="mdRow">
304      <table cellpadding="0" cellspacing="0" border="0">
305        <tr>
306          <td class="md" nowrap valign="top">void InitParams           </td>
307          <td class="md" valign="top">(&nbsp;</td>
308          <td class="mdname1" valign="top" nowrap>          </td>
309          <td class="md" valign="top">&nbsp;)&nbsp;</td>
310          <td class="md" nowrap></td>
311        </tr>
312      </table>
313    </td>
314  </tr>
315</table>
316<table cellspacing="5" cellpadding="0" border="0">
317  <tr>
318    <td>
319      &nbsp;
320    </td>
321    <td>
322
323<p>
324Defines application-specific parameters and creates GUI controls (sliders, checkboxes) for them.
325<p>
326Finally, loads initial values for the parameters from file called <b>.params0</b> (Reset).     </td>
327  </tr>
328</table>
329<a class="anchor" name="a17" doxytag="Main.cpp::IsDeviceAcceptable"></a><p>
330<table class="mdTable" cellpadding="2" cellspacing="0">
331  <tr>
332    <td class="mdRow">
333      <table cellpadding="0" cellspacing="0" border="0">
334        <tr>
335          <td class="md" nowrap valign="top">bool CALLBACK IsDeviceAcceptable           </td>
336          <td class="md" valign="top">(&nbsp;</td>
337          <td class="md" nowrap valign="top">D3DCAPS9 *&nbsp;</td>
338          <td class="mdname" nowrap> <em>pCaps</em>, </td>
339        </tr>
340        <tr>
341          <td class="md" nowrap align="right"></td>
342          <td class="md"></td>
343          <td class="md" nowrap>D3DFORMAT&nbsp;</td>
344          <td class="mdname" nowrap> <em>AdapterFormat</em>, </td>
345        </tr>
346        <tr>
347          <td class="md" nowrap align="right"></td>
348          <td class="md"></td>
349          <td class="md" nowrap>D3DFORMAT&nbsp;</td>
350          <td class="mdname" nowrap> <em>BackBufferFormat</em>, </td>
351        </tr>
352        <tr>
353          <td class="md" nowrap align="right"></td>
354          <td class="md"></td>
355          <td class="md" nowrap>bool&nbsp;</td>
356          <td class="mdname" nowrap> <em>bWindowed</em>, </td>
357        </tr>
358        <tr>
359          <td class="md" nowrap align="right"></td>
360          <td class="md"></td>
361          <td class="md" nowrap>void *&nbsp;</td>
362          <td class="mdname" nowrap> <em>pUserContext</em></td>
363        </tr>
364        <tr>
365          <td class="md"></td>
366          <td class="md">)&nbsp;</td>
367          <td class="md" colspan="2"></td>
368        </tr>
369      </table>
370    </td>
371  </tr>
372</table>
373<table cellspacing="5" cellpadding="0" border="0">
374  <tr>
375    <td>
376      &nbsp;
377    </td>
378    <td>
379
380<p>
381DXUT callback (Rejects any devices that aren't acceptable by returning false).
382<p>
383DXUT callback. Rejects any devices that aren't acceptable by returning false.     </td>
384  </tr>
385</table>
386<a class="anchor" name="a24" doxytag="Main.cpp::KeyboardProc"></a><p>
387<table class="mdTable" cellpadding="2" cellspacing="0">
388  <tr>
389    <td class="mdRow">
390      <table cellpadding="0" cellspacing="0" border="0">
391        <tr>
392          <td class="md" nowrap valign="top">void CALLBACK KeyboardProc           </td>
393          <td class="md" valign="top">(&nbsp;</td>
394          <td class="md" nowrap valign="top">UINT&nbsp;</td>
395          <td class="mdname" nowrap> <em>nChar</em>, </td>
396        </tr>
397        <tr>
398          <td class="md" nowrap align="right"></td>
399          <td class="md"></td>
400          <td class="md" nowrap>bool&nbsp;</td>
401          <td class="mdname" nowrap> <em>bKeyDown</em>, </td>
402        </tr>
403        <tr>
404          <td class="md" nowrap align="right"></td>
405          <td class="md"></td>
406          <td class="md" nowrap>bool&nbsp;</td>
407          <td class="mdname" nowrap> <em>bAltDown</em>, </td>
408        </tr>
409        <tr>
410          <td class="md" nowrap align="right"></td>
411          <td class="md"></td>
412          <td class="md" nowrap>void *&nbsp;</td>
413          <td class="mdname" nowrap> <em>pUserContext</em></td>
414        </tr>
415        <tr>
416          <td class="md"></td>
417          <td class="md">)&nbsp;</td>
418          <td class="md" colspan="2"></td>
419        </tr>
420      </table>
421    </td>
422  </tr>
423</table>
424<table cellspacing="5" cellpadding="0" border="0">
425  <tr>
426    <td>
427      &nbsp;
428    </td>
429    <td>
430
431<p>
432DXUT callback (Keystroke messages).
433<p>
434    </td>
435  </tr>
436</table>
437<a class="anchor" name="a31" doxytag="Main.cpp::LoadCameraPosition"></a><p>
438<table class="mdTable" cellpadding="2" cellspacing="0">
439  <tr>
440    <td class="mdRow">
441      <table cellpadding="0" cellspacing="0" border="0">
442        <tr>
443          <td class="md" nowrap valign="top">void LoadCameraPosition           </td>
444          <td class="md" valign="top">(&nbsp;</td>
445          <td class="md" nowrap valign="top">char *&nbsp;</td>
446          <td class="mdname1" valign="top" nowrap> <em>fileName</em>          </td>
447          <td class="md" valign="top">&nbsp;)&nbsp;</td>
448          <td class="md" nowrap></td>
449        </tr>
450      </table>
451    </td>
452  </tr>
453</table>
454<table cellspacing="5" cellpadding="0" border="0">
455  <tr>
456    <td>
457      &nbsp;
458    </td>
459    <td>
460
461<p>
462Loads camera settings from file.
463<p>
464Loads <a class="el" href="_main_8cpp.html#a16">camera</a> settings (world matrix and camera position) from an existing file. Useful when capturing multiple screenshots from the same view. <dl compact><dt><b>Parameters:</b></dt><dd>
465  <table border="0" cellspacing="2" cellpadding="0">
466    <tr><td valign="top"></td><td valign="top"><em>fileName</em>&nbsp;</td><td>the name of the file to load from. </td></tr>
467  </table>
468</dl>
469    </td>
470  </tr>
471</table>
472<a class="anchor" name="a18" doxytag="Main.cpp::ModifyDeviceSettings"></a><p>
473<table class="mdTable" cellpadding="2" cellspacing="0">
474  <tr>
475    <td class="mdRow">
476      <table cellpadding="0" cellspacing="0" border="0">
477        <tr>
478          <td class="md" nowrap valign="top">bool CALLBACK ModifyDeviceSettings           </td>
479          <td class="md" valign="top">(&nbsp;</td>
480          <td class="md" nowrap valign="top">DXUTDeviceSettings *&nbsp;</td>
481          <td class="mdname" nowrap> <em>pDeviceSettings</em>, </td>
482        </tr>
483        <tr>
484          <td class="md" nowrap align="right"></td>
485          <td class="md"></td>
486          <td class="md" nowrap>const D3DCAPS9 *&nbsp;</td>
487          <td class="mdname" nowrap> <em>pCaps</em>, </td>
488        </tr>
489        <tr>
490          <td class="md" nowrap align="right"></td>
491          <td class="md"></td>
492          <td class="md" nowrap>void *&nbsp;</td>
493          <td class="mdname" nowrap> <em>pUserContext</em></td>
494        </tr>
495        <tr>
496          <td class="md"></td>
497          <td class="md">)&nbsp;</td>
498          <td class="md" colspan="2"></td>
499        </tr>
500      </table>
501    </td>
502  </tr>
503</table>
504<table cellspacing="5" cellpadding="0" border="0">
505  <tr>
506    <td>
507      &nbsp;
508    </td>
509    <td>
510
511<p>
512DXUT callback (Before a device is created, modifies the device settings as needed).
513<p>
514    </td>
515  </tr>
516</table>
517<a class="anchor" name="a23" doxytag="Main.cpp::MsgProc"></a><p>
518<table class="mdTable" cellpadding="2" cellspacing="0">
519  <tr>
520    <td class="mdRow">
521      <table cellpadding="0" cellspacing="0" border="0">
522        <tr>
523          <td class="md" nowrap valign="top">LRESULT CALLBACK MsgProc           </td>
524          <td class="md" valign="top">(&nbsp;</td>
525          <td class="md" nowrap valign="top">HWND&nbsp;</td>
526          <td class="mdname" nowrap> <em>hWnd</em>, </td>
527        </tr>
528        <tr>
529          <td class="md" nowrap align="right"></td>
530          <td class="md"></td>
531          <td class="md" nowrap>UINT&nbsp;</td>
532          <td class="mdname" nowrap> <em>uMsg</em>, </td>
533        </tr>
534        <tr>
535          <td class="md" nowrap align="right"></td>
536          <td class="md"></td>
537          <td class="md" nowrap>WPARAM&nbsp;</td>
538          <td class="mdname" nowrap> <em>wParam</em>, </td>
539        </tr>
540        <tr>
541          <td class="md" nowrap align="right"></td>
542          <td class="md"></td>
543          <td class="md" nowrap>LPARAM&nbsp;</td>
544          <td class="mdname" nowrap> <em>lParam</em>, </td>
545        </tr>
546        <tr>
547          <td class="md" nowrap align="right"></td>
548          <td class="md"></td>
549          <td class="md" nowrap>bool *&nbsp;</td>
550          <td class="mdname" nowrap> <em>pbNoFurtherProcessing</em>, </td>
551        </tr>
552        <tr>
553          <td class="md" nowrap align="right"></td>
554          <td class="md"></td>
555          <td class="md" nowrap>void *&nbsp;</td>
556          <td class="mdname" nowrap> <em>pUserContext</em></td>
557        </tr>
558        <tr>
559          <td class="md"></td>
560          <td class="md">)&nbsp;</td>
561          <td class="md" colspan="2"></td>
562        </tr>
563      </table>
564    </td>
565  </tr>
566</table>
567<table cellspacing="5" cellpadding="0" border="0">
568  <tr>
569    <td>
570      &nbsp;
571    </td>
572    <td>
573
574<p>
575DXUT callback (Message processing).
576<p>
577Forwards messages to the DirectX settings window, the GUI controls or the camera, respecively.     </td>
578  </tr>
579</table>
580<a class="anchor" name="a38" doxytag="Main.cpp::OnChangeCubeMap"></a><p>
581<table class="mdTable" cellpadding="2" cellspacing="0">
582  <tr>
583    <td class="mdRow">
584      <table cellpadding="0" cellspacing="0" border="0">
585        <tr>
586          <td class="md" nowrap valign="top">void OnChangeCubeMap           </td>
587          <td class="md" valign="top">(&nbsp;</td>
588          <td class="mdname1" valign="top" nowrap>          </td>
589          <td class="md" valign="top">&nbsp;)&nbsp;</td>
590          <td class="md" nowrap></td>
591        </tr>
592      </table>
593    </td>
594  </tr>
595</table>
596<table cellspacing="5" cellpadding="0" border="0">
597  <tr>
598    <td>
599      &nbsp;
600    </td>
601    <td>
602
603<p>
604    </td>
605  </tr>
606</table>
607<a class="anchor" name="a39" doxytag="Main.cpp::OnChangeShininess"></a><p>
608<table class="mdTable" cellpadding="2" cellspacing="0">
609  <tr>
610    <td class="mdRow">
611      <table cellpadding="0" cellspacing="0" border="0">
612        <tr>
613          <td class="md" nowrap valign="top">void OnChangeShininess           </td>
614          <td class="md" valign="top">(&nbsp;</td>
615          <td class="mdname1" valign="top" nowrap>          </td>
616          <td class="md" valign="top">&nbsp;)&nbsp;</td>
617          <td class="md" nowrap></td>
618        </tr>
619      </table>
620    </td>
621  </tr>
622</table>
623<table cellspacing="5" cellpadding="0" border="0">
624  <tr>
625    <td>
626      &nbsp;
627    </td>
628    <td>
629
630<p>
631    </td>
632  </tr>
633</table>
634<a class="anchor" name="a19" doxytag="Main.cpp::OnCreateDevice"></a><p>
635<table class="mdTable" cellpadding="2" cellspacing="0">
636  <tr>
637    <td class="mdRow">
638      <table cellpadding="0" cellspacing="0" border="0">
639        <tr>
640          <td class="md" nowrap valign="top">HRESULT CALLBACK OnCreateDevice           </td>
641          <td class="md" valign="top">(&nbsp;</td>
642          <td class="md" nowrap valign="top">IDirect3DDevice9 *&nbsp;</td>
643          <td class="mdname" nowrap> <em>pd3dDevice</em>, </td>
644        </tr>
645        <tr>
646          <td class="md" nowrap align="right"></td>
647          <td class="md"></td>
648          <td class="md" nowrap>const D3DSURFACE_DESC *&nbsp;</td>
649          <td class="mdname" nowrap> <em>pBackBufferSurfaceDesc</em>, </td>
650        </tr>
651        <tr>
652          <td class="md" nowrap align="right"></td>
653          <td class="md"></td>
654          <td class="md" nowrap>void *&nbsp;</td>
655          <td class="mdname" nowrap> <em>pUserContext</em></td>
656        </tr>
657        <tr>
658          <td class="md"></td>
659          <td class="md">)&nbsp;</td>
660          <td class="md" colspan="2"></td>
661        </tr>
662      </table>
663    </td>
664  </tr>
665</table>
666<table cellspacing="5" cellpadding="0" border="0">
667  <tr>
668    <td>
669      &nbsp;
670    </td>
671    <td>
672
673<p>
674DXUT callback (You should create any D3DPOOL_MANAGED resources here).
675<p>
676Compiles the effect file (<a class="el" href="_env_map_8fx.html">EnvMap.fx</a>) and displays error message if compilation fails. Finally, forwards call to <a class="el" href="class_env_map.html#a17">EnvMap::OnCreateDevice</a>.     </td>
677  </tr>
678</table>
679<a class="anchor" name="a27" doxytag="Main.cpp::OnDestroyDevice"></a><p>
680<table class="mdTable" cellpadding="2" cellspacing="0">
681  <tr>
682    <td class="mdRow">
683      <table cellpadding="0" cellspacing="0" border="0">
684        <tr>
685          <td class="md" nowrap valign="top">void CALLBACK OnDestroyDevice           </td>
686          <td class="md" valign="top">(&nbsp;</td>
687          <td class="md" nowrap valign="top">void *&nbsp;</td>
688          <td class="mdname1" valign="top" nowrap> <em>pUserContext</em>          </td>
689          <td class="md" valign="top">&nbsp;)&nbsp;</td>
690          <td class="md" nowrap></td>
691        </tr>
692      </table>
693    </td>
694  </tr>
695</table>
696<table cellspacing="5" cellpadding="0" border="0">
697  <tr>
698    <td>
699      &nbsp;
700    </td>
701    <td>
702
703<p>
704DXUT callback (You should release resources created in the OnCreateDevice callback here).
705<p>
706Forwards call to <a class="el" href="class_env_map.html#a18">EnvMap::OnDestroyDevice</a>.     </td>
707  </tr>
708</table>
709<a class="anchor" name="a21" doxytag="Main.cpp::OnFrameMove"></a><p>
710<table class="mdTable" cellpadding="2" cellspacing="0">
711  <tr>
712    <td class="mdRow">
713      <table cellpadding="0" cellspacing="0" border="0">
714        <tr>
715          <td class="md" nowrap valign="top">void CALLBACK OnFrameMove           </td>
716          <td class="md" valign="top">(&nbsp;</td>
717          <td class="md" nowrap valign="top">IDirect3DDevice9 *&nbsp;</td>
718          <td class="mdname" nowrap> <em>g_pd3dDevice</em>, </td>
719        </tr>
720        <tr>
721          <td class="md" nowrap align="right"></td>
722          <td class="md"></td>
723          <td class="md" nowrap>double&nbsp;</td>
724          <td class="mdname" nowrap> <em>fTime</em>, </td>
725        </tr>
726        <tr>
727          <td class="md" nowrap align="right"></td>
728          <td class="md"></td>
729          <td class="md" nowrap>float&nbsp;</td>
730          <td class="mdname" nowrap> <em>fElapsedTime</em>, </td>
731        </tr>
732        <tr>
733          <td class="md" nowrap align="right"></td>
734          <td class="md"></td>
735          <td class="md" nowrap>void *&nbsp;</td>
736          <td class="mdname" nowrap> <em>pUserContext</em></td>
737        </tr>
738        <tr>
739          <td class="md"></td>
740          <td class="md">)&nbsp;</td>
741          <td class="md" colspan="2"></td>
742        </tr>
743      </table>
744    </td>
745  </tr>
746</table>
747<table cellspacing="5" cellpadding="0" border="0">
748  <tr>
749    <td>
750      &nbsp;
751    </td>
752    <td>
753
754<p>
755DXUT callback (Handle updates to the scene).
756<p>
757    </td>
758  </tr>
759</table>
760<a class="anchor" name="a22" doxytag="Main.cpp::OnFrameRender"></a><p>
761<table class="mdTable" cellpadding="2" cellspacing="0">
762  <tr>
763    <td class="mdRow">
764      <table cellpadding="0" cellspacing="0" border="0">
765        <tr>
766          <td class="md" nowrap valign="top">void CALLBACK OnFrameRender           </td>
767          <td class="md" valign="top">(&nbsp;</td>
768          <td class="md" nowrap valign="top">IDirect3DDevice9 *&nbsp;</td>
769          <td class="mdname" nowrap> <em>g_pd3dDevice</em>, </td>
770        </tr>
771        <tr>
772          <td class="md" nowrap align="right"></td>
773          <td class="md"></td>
774          <td class="md" nowrap>double&nbsp;</td>
775          <td class="mdname" nowrap> <em>fTime</em>, </td>
776        </tr>
777        <tr>
778          <td class="md" nowrap align="right"></td>
779          <td class="md"></td>
780          <td class="md" nowrap>float&nbsp;</td>
781          <td class="mdname" nowrap> <em>fElapsedTime</em>, </td>
782        </tr>
783        <tr>
784          <td class="md" nowrap align="right"></td>
785          <td class="md"></td>
786          <td class="md" nowrap>void *&nbsp;</td>
787          <td class="mdname" nowrap> <em>pUserContext</em></td>
788        </tr>
789        <tr>
790          <td class="md"></td>
791          <td class="md">)&nbsp;</td>
792          <td class="md" colspan="2"></td>
793        </tr>
794      </table>
795    </td>
796  </tr>
797</table>
798<table cellspacing="5" cellpadding="0" border="0">
799  <tr>
800    <td>
801      &nbsp;
802    </td>
803    <td>
804
805<p>
806DXUT callback (Render the scene). Also responsible for screenshot taking.
807<p>
808If a screenshot is being taken (<a class="el" href="_main_8cpp.html#a11">bSavingScreenshot</a>), sets <a class="el" href="_main_8cpp.html#a10">g_pSaveSurface</a> as the render target and saves it to a non-existent file (<a class="el" href="_main_8cpp.html#a32">GenerateNewFileName()</a>). Also saves current camera parameters (<a class="el" href="_main_8cpp.html#a30">SaveCameraPosition()</a>).<p>
809To perform actual rendering, it forwards call to <a class="el" href="class_env_map.html#a16">EnvMap::OnFrameRender</a> with current camera matrices.     </td>
810  </tr>
811</table>
812<a class="anchor" name="a25" doxytag="Main.cpp::OnGUIEvent"></a><p>
813<table class="mdTable" cellpadding="2" cellspacing="0">
814  <tr>
815    <td class="mdRow">
816      <table cellpadding="0" cellspacing="0" border="0">
817        <tr>
818          <td class="md" nowrap valign="top">void CALLBACK OnGUIEvent           </td>
819          <td class="md" valign="top">(&nbsp;</td>
820          <td class="md" nowrap valign="top">UINT&nbsp;</td>
821          <td class="mdname" nowrap> <em>nEvent</em>, </td>
822        </tr>
823        <tr>
824          <td class="md" nowrap align="right"></td>
825          <td class="md"></td>
826          <td class="md" nowrap>int&nbsp;</td>
827          <td class="mdname" nowrap> <em>nControlID</em>, </td>
828        </tr>
829        <tr>
830          <td class="md" nowrap align="right"></td>
831          <td class="md"></td>
832          <td class="md" nowrap>CDXUTControl *&nbsp;</td>
833          <td class="mdname" nowrap> <em>pControl</em>, </td>
834        </tr>
835        <tr>
836          <td class="md" nowrap align="right"></td>
837          <td class="md"></td>
838          <td class="md" nowrap>void *&nbsp;</td>
839          <td class="mdname" nowrap> <em>pUserContext</em></td>
840        </tr>
841        <tr>
842          <td class="md"></td>
843          <td class="md">)&nbsp;</td>
844          <td class="md" colspan="2"></td>
845        </tr>
846      </table>
847    </td>
848  </tr>
849</table>
850<table cellspacing="5" cellpadding="0" border="0">
851  <tr>
852    <td>
853      &nbsp;
854    </td>
855    <td>
856
857<p>
858DXUT callback (called by the framework in case of GUI events).
859<p>
860    </td>
861  </tr>
862</table>
863<a class="anchor" name="a34" doxytag="Main.cpp::OnLoad"></a><p>
864<table class="mdTable" cellpadding="2" cellspacing="0">
865  <tr>
866    <td class="mdRow">
867      <table cellpadding="0" cellspacing="0" border="0">
868        <tr>
869          <td class="md" nowrap valign="top">void OnLoad           </td>
870          <td class="md" valign="top">(&nbsp;</td>
871          <td class="mdname1" valign="top" nowrap>          </td>
872          <td class="md" valign="top">&nbsp;)&nbsp;</td>
873          <td class="md" nowrap></td>
874        </tr>
875      </table>
876    </td>
877  </tr>
878</table>
879<table cellspacing="5" cellpadding="0" border="0">
880  <tr>
881    <td>
882      &nbsp;
883    </td>
884    <td>
885
886<p>
887    </td>
888  </tr>
889</table>
890<a class="anchor" name="a26" doxytag="Main.cpp::OnLostDevice"></a><p>
891<table class="mdTable" cellpadding="2" cellspacing="0">
892  <tr>
893    <td class="mdRow">
894      <table cellpadding="0" cellspacing="0" border="0">
895        <tr>
896          <td class="md" nowrap valign="top">void CALLBACK OnLostDevice           </td>
897          <td class="md" valign="top">(&nbsp;</td>
898          <td class="md" nowrap valign="top">void *&nbsp;</td>
899          <td class="mdname1" valign="top" nowrap> <em>pUserContext</em>          </td>
900          <td class="md" valign="top">&nbsp;)&nbsp;</td>
901          <td class="md" nowrap></td>
902        </tr>
903      </table>
904    </td>
905  </tr>
906</table>
907<table cellspacing="5" cellpadding="0" border="0">
908  <tr>
909    <td>
910      &nbsp;
911    </td>
912    <td>
913
914<p>
915DXUT callback (You should release resources created in the OnResetDevice callback here).
916<p>
917    </td>
918  </tr>
919</table>
920<a class="anchor" name="a36" doxytag="Main.cpp::OnReset"></a><p>
921<table class="mdTable" cellpadding="2" cellspacing="0">
922  <tr>
923    <td class="mdRow">
924      <table cellpadding="0" cellspacing="0" border="0">
925        <tr>
926          <td class="md" nowrap valign="top">void OnReset           </td>
927          <td class="md" valign="top">(&nbsp;</td>
928          <td class="mdname1" valign="top" nowrap>          </td>
929          <td class="md" valign="top">&nbsp;)&nbsp;</td>
930          <td class="md" nowrap></td>
931        </tr>
932      </table>
933    </td>
934  </tr>
935</table>
936<table cellspacing="5" cellpadding="0" border="0">
937  <tr>
938    <td>
939      &nbsp;
940    </td>
941    <td>
942
943<p>
944    </td>
945  </tr>
946</table>
947<a class="anchor" name="a20" doxytag="Main.cpp::OnResetDevice"></a><p>
948<table class="mdTable" cellpadding="2" cellspacing="0">
949  <tr>
950    <td class="mdRow">
951      <table cellpadding="0" cellspacing="0" border="0">
952        <tr>
953          <td class="md" nowrap valign="top">HRESULT CALLBACK OnResetDevice           </td>
954          <td class="md" valign="top">(&nbsp;</td>
955          <td class="md" nowrap valign="top">IDirect3DDevice9 *&nbsp;</td>
956          <td class="mdname" nowrap> <em>g_pd3dDevice</em>, </td>
957        </tr>
958        <tr>
959          <td class="md" nowrap align="right"></td>
960          <td class="md"></td>
961          <td class="md" nowrap>const D3DSURFACE_DESC *&nbsp;</td>
962          <td class="mdname" nowrap> <em>pBackBufferSurfaceDesc</em>, </td>
963        </tr>
964        <tr>
965          <td class="md" nowrap align="right"></td>
966          <td class="md"></td>
967          <td class="md" nowrap>void *&nbsp;</td>
968          <td class="mdname" nowrap> <em>pUserContext</em></td>
969        </tr>
970        <tr>
971          <td class="md"></td>
972          <td class="md">)&nbsp;</td>
973          <td class="md" colspan="2"></td>
974        </tr>
975      </table>
976    </td>
977  </tr>
978</table>
979<table cellspacing="5" cellpadding="0" border="0">
980  <tr>
981    <td>
982      &nbsp;
983    </td>
984    <td>
985
986<p>
987DXUT callback (You should create any D3DPOOL_DEFAULT resources here).
988<p>
989Resets camera and HUD elements. Initializes <a class="el" href="_main_8cpp.html#a10">g_pSaveSurface</a> according to the current screen resolution. Then it forwards call to <a class="el" href="class_env_map.html#a19">EnvMap::OnResetDevice</a>.     </td>
990  </tr>
991</table>
992<a class="anchor" name="a35" doxytag="Main.cpp::OnSave"></a><p>
993<table class="mdTable" cellpadding="2" cellspacing="0">
994  <tr>
995    <td class="mdRow">
996      <table cellpadding="0" cellspacing="0" border="0">
997        <tr>
998          <td class="md" nowrap valign="top">void OnSave           </td>
999          <td class="md" valign="top">(&nbsp;</td>
1000          <td class="mdname1" valign="top" nowrap>          </td>
1001          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1002          <td class="md" nowrap></td>
1003        </tr>
1004      </table>
1005    </td>
1006  </tr>
1007</table>
1008<table cellspacing="5" cellpadding="0" border="0">
1009  <tr>
1010    <td>
1011      &nbsp;
1012    </td>
1013    <td>
1014
1015<p>
1016    </td>
1017  </tr>
1018</table>
1019<a class="anchor" name="a29" doxytag="Main.cpp::RenderText"></a><p>
1020<table class="mdTable" cellpadding="2" cellspacing="0">
1021  <tr>
1022    <td class="mdRow">
1023      <table cellpadding="0" cellspacing="0" border="0">
1024        <tr>
1025          <td class="md" nowrap valign="top">void RenderText           </td>
1026          <td class="md" valign="top">(&nbsp;</td>
1027          <td class="mdname1" valign="top" nowrap>          </td>
1028          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1029          <td class="md" nowrap></td>
1030        </tr>
1031      </table>
1032    </td>
1033  </tr>
1034</table>
1035<table cellspacing="5" cellpadding="0" border="0">
1036  <tr>
1037    <td>
1038      &nbsp;
1039    </td>
1040    <td>
1041
1042<p>
1043Renders help and statistics text and displays algorithmic-specific parameters.
1044<p>
1045<ul>
1046<li>Statistics: FPS value, screen resolution</li></ul>
1047<p>
1048<ul>
1049<li>Help: displays avaliable keyboard shortcuts after the user presses F1.</li></ul>
1050<p>
1051<ul>
1052<li>Algorithmic-specific parameters: describes the currently selected method and displays its most important parameters. </li></ul>
1053    </td>
1054  </tr>
1055</table>
1056<a class="anchor" name="a30" doxytag="Main.cpp::SaveCameraPosition"></a><p>
1057<table class="mdTable" cellpadding="2" cellspacing="0">
1058  <tr>
1059    <td class="mdRow">
1060      <table cellpadding="0" cellspacing="0" border="0">
1061        <tr>
1062          <td class="md" nowrap valign="top">void SaveCameraPosition           </td>
1063          <td class="md" valign="top">(&nbsp;</td>
1064          <td class="md" nowrap valign="top">char *&nbsp;</td>
1065          <td class="mdname1" valign="top" nowrap> <em>fileName</em>          </td>
1066          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1067          <td class="md" nowrap></td>
1068        </tr>
1069      </table>
1070    </td>
1071  </tr>
1072</table>
1073<table cellspacing="5" cellpadding="0" border="0">
1074  <tr>
1075    <td>
1076      &nbsp;
1077    </td>
1078    <td>
1079
1080<p>
1081Writes current camera settings to file.
1082<p>
1083Writes current <a class="el" href="_main_8cpp.html#a16">camera</a> settings (world matrix and camera position) to file. Useful when capturing multiple screenshots from the same view. <dl compact><dt><b>Parameters:</b></dt><dd>
1084  <table border="0" cellspacing="2" cellpadding="0">
1085    <tr><td valign="top"></td><td valign="top"><em>fileName</em>&nbsp;</td><td>the name of the file to be created </td></tr>
1086  </table>
1087</dl>
1088    </td>
1089  </tr>
1090</table>
1091<a class="anchor" name="a33" doxytag="Main.cpp::WinMain"></a><p>
1092<table class="mdTable" cellpadding="2" cellspacing="0">
1093  <tr>
1094    <td class="mdRow">
1095      <table cellpadding="0" cellspacing="0" border="0">
1096        <tr>
1097          <td class="md" nowrap valign="top">INT WINAPI WinMain           </td>
1098          <td class="md" valign="top">(&nbsp;</td>
1099          <td class="md" nowrap valign="top">HINSTANCE&nbsp;</td>
1100          <td class="mdname" nowrap>, </td>
1101        </tr>
1102        <tr>
1103          <td class="md" nowrap align="right"></td>
1104          <td class="md"></td>
1105          <td class="md" nowrap>HINSTANCE&nbsp;</td>
1106          <td class="mdname" nowrap>, </td>
1107        </tr>
1108        <tr>
1109          <td class="md" nowrap align="right"></td>
1110          <td class="md"></td>
1111          <td class="md" nowrap>LPSTR&nbsp;</td>
1112          <td class="mdname" nowrap>, </td>
1113        </tr>
1114        <tr>
1115          <td class="md" nowrap align="right"></td>
1116          <td class="md"></td>
1117          <td class="md" nowrap>int&nbsp;</td>
1118          <td class="mdname" nowrap></td>
1119        </tr>
1120        <tr>
1121          <td class="md"></td>
1122          <td class="md">)&nbsp;</td>
1123          <td class="md" colspan="2"></td>
1124        </tr>
1125      </table>
1126    </td>
1127  </tr>
1128</table>
1129<table cellspacing="5" cellpadding="0" border="0">
1130  <tr>
1131    <td>
1132      &nbsp;
1133    </td>
1134    <td>
1135
1136<p>
1137Entry point to the program.
1138<p>
1139Initializes everything and goes into a message processing loop. Idle time is used to render the scene.     </td>
1140  </tr>
1141</table>
1142<hr><h2>Variable Documentation</h2>
1143<a class="anchor" name="a11" doxytag="Main.cpp::bSavingScreenshot"></a><p>
1144<table class="mdTable" cellpadding="2" cellspacing="0">
1145  <tr>
1146    <td class="mdRow">
1147      <table cellpadding="0" cellspacing="0" border="0">
1148        <tr>
1149          <td class="md" nowrap valign="top">bool <a class="el" href="_main_8cpp.html#a11">bSavingScreenshot</a> = false          </td>
1150        </tr>
1151      </table>
1152    </td>
1153  </tr>
1154</table>
1155<table cellspacing="5" cellpadding="0" border="0">
1156  <tr>
1157    <td>
1158      &nbsp;
1159    </td>
1160    <td>
1161
1162<p>
1163boolean for screenshot capturing
1164<p>
1165    </td>
1166  </tr>
1167</table>
1168<a class="anchor" name="a16" doxytag="Main.cpp::camera"></a><p>
1169<table class="mdTable" cellpadding="2" cellspacing="0">
1170  <tr>
1171    <td class="mdRow">
1172      <table cellpadding="0" cellspacing="0" border="0">
1173        <tr>
1174          <td class="md" nowrap valign="top">CModelViewerCamera <a class="el" href="_main_8cpp.html#a16">camera</a>          </td>
1175        </tr>
1176      </table>
1177    </td>
1178  </tr>
1179</table>
1180<table cellspacing="5" cellpadding="0" border="0">
1181  <tr>
1182    <td>
1183      &nbsp;
1184    </td>
1185    <td>
1186
1187<p>
1188camera
1189<p>
1190    </td>
1191  </tr>
1192</table>
1193<a class="anchor" name="a2" doxytag="Main.cpp::CHARBUFFER_SIZE"></a><p>
1194<table class="mdTable" cellpadding="2" cellspacing="0">
1195  <tr>
1196    <td class="mdRow">
1197      <table cellpadding="0" cellspacing="0" border="0">
1198        <tr>
1199          <td class="md" nowrap valign="top">const int <a class="el" href="_main_8cpp.html#a2">CHARBUFFER_SIZE</a> = 200          </td>
1200        </tr>
1201      </table>
1202    </td>
1203  </tr>
1204</table>
1205<table cellspacing="5" cellpadding="0" border="0">
1206  <tr>
1207    <td>
1208      &nbsp;
1209    </td>
1210    <td>
1211
1212<p>
1213    </td>
1214  </tr>
1215</table>
1216<a class="anchor" name="a12" doxytag="Main.cpp::counter"></a><p>
1217<table class="mdTable" cellpadding="2" cellspacing="0">
1218  <tr>
1219    <td class="mdRow">
1220      <table cellpadding="0" cellspacing="0" border="0">
1221        <tr>
1222          <td class="md" nowrap valign="top">int <a class="el" href="_main_8cpp.html#a12">counter</a> = 0          </td>
1223        </tr>
1224      </table>
1225    </td>
1226  </tr>
1227</table>
1228<table cellspacing="5" cellpadding="0" border="0">
1229  <tr>
1230    <td>
1231      &nbsp;
1232    </td>
1233    <td>
1234
1235<p>
1236counter for screenshots (see <a class="el" href="_main_8cpp.html#a32">GenerateNewFileName()</a>)
1237<p>
1238    </td>
1239  </tr>
1240</table>
1241<a class="anchor" name="a14" doxytag="Main.cpp::envmapRenderer"></a><p>
1242<table class="mdTable" cellpadding="2" cellspacing="0">
1243  <tr>
1244    <td class="mdRow">
1245      <table cellpadding="0" cellspacing="0" border="0">
1246        <tr>
1247          <td class="md" nowrap valign="top"><a class="el" href="class_env_map.html">EnvMap</a>* <a class="el" href="_main_8cpp.html#a14">envmapRenderer</a> = new <a class="el" href="class_env_map.html">EnvMap</a>()          </td>
1248        </tr>
1249      </table>
1250    </td>
1251  </tr>
1252</table>
1253<table cellspacing="5" cellpadding="0" border="0">
1254  <tr>
1255    <td>
1256      &nbsp;
1257    </td>
1258    <td>
1259
1260<p>
1261problem-specific stuff
1262<p>
1263    </td>
1264  </tr>
1265</table>
1266<a class="anchor" name="a5" doxytag="Main.cpp::g_DialogResourceManager"></a><p>
1267<table class="mdTable" cellpadding="2" cellspacing="0">
1268  <tr>
1269    <td class="mdRow">
1270      <table cellpadding="0" cellspacing="0" border="0">
1271        <tr>
1272          <td class="md" nowrap valign="top">CDXUTDialogResourceManager <a class="el" href="_main_8cpp.html#a5">g_DialogResourceManager</a>          </td>
1273        </tr>
1274      </table>
1275    </td>
1276  </tr>
1277</table>
1278<table cellspacing="5" cellpadding="0" border="0">
1279  <tr>
1280    <td>
1281      &nbsp;
1282    </td>
1283    <td>
1284
1285<p>
1286Manager for shared resources of dialogs.
1287<p>
1288    </td>
1289  </tr>
1290</table>
1291<a class="anchor" name="a7" doxytag="Main.cpp::g_HUD"></a><p>
1292<table class="mdTable" cellpadding="2" cellspacing="0">
1293  <tr>
1294    <td class="mdRow">
1295      <table cellpadding="0" cellspacing="0" border="0">
1296        <tr>
1297          <td class="md" nowrap valign="top">CDXUTDialog <a class="el" href="_main_8cpp.html#a7">g_HUD</a>          </td>
1298        </tr>
1299      </table>
1300    </td>
1301  </tr>
1302</table>
1303<table cellspacing="5" cellpadding="0" border="0">
1304  <tr>
1305    <td>
1306      &nbsp;
1307    </td>
1308    <td>
1309
1310<p>
1311Dialog for sample specific controls.
1312<p>
1313    </td>
1314  </tr>
1315</table>
1316<a class="anchor" name="a3" doxytag="Main.cpp::g_pd3dDevice"></a><p>
1317<table class="mdTable" cellpadding="2" cellspacing="0">
1318  <tr>
1319    <td class="mdRow">
1320      <table cellpadding="0" cellspacing="0" border="0">
1321        <tr>
1322          <td class="md" nowrap valign="top">IDirect3DDevice9* <a class="el" href="_mesh_8cpp.html#a0">g_pd3dDevice</a>          </td>
1323        </tr>
1324      </table>
1325    </td>
1326  </tr>
1327</table>
1328<table cellspacing="5" cellpadding="0" border="0">
1329  <tr>
1330    <td>
1331      &nbsp;
1332    </td>
1333    <td>
1334
1335<p>
1336    </td>
1337  </tr>
1338</table>
1339<a class="anchor" name="a4" doxytag="Main.cpp::g_pEffect"></a><p>
1340<table class="mdTable" cellpadding="2" cellspacing="0">
1341  <tr>
1342    <td class="mdRow">
1343      <table cellpadding="0" cellspacing="0" border="0">
1344        <tr>
1345          <td class="md" nowrap valign="top">ID3DXEffect* <a class="el" href="_main_8cpp.html#a4">g_pEffect</a>          </td>
1346        </tr>
1347      </table>
1348    </td>
1349  </tr>
1350</table>
1351<table cellspacing="5" cellpadding="0" border="0">
1352  <tr>
1353    <td>
1354      &nbsp;
1355    </td>
1356    <td>
1357
1358<p>
1359    </td>
1360  </tr>
1361</table>
1362<a class="anchor" name="a8" doxytag="Main.cpp::g_pFont"></a><p>
1363<table class="mdTable" cellpadding="2" cellspacing="0">
1364  <tr>
1365    <td class="mdRow">
1366      <table cellpadding="0" cellspacing="0" border="0">
1367        <tr>
1368          <td class="md" nowrap valign="top">ID3DXFont* <a class="el" href="_main_8cpp.html#a8">g_pFont</a>          </td>
1369        </tr>
1370      </table>
1371    </td>
1372  </tr>
1373</table>
1374<table cellspacing="5" cellpadding="0" border="0">
1375  <tr>
1376    <td>
1377      &nbsp;
1378    </td>
1379    <td>
1380
1381<p>
1382Font for drawing text.
1383<p>
1384    </td>
1385  </tr>
1386</table>
1387<a class="anchor" name="a10" doxytag="Main.cpp::g_pSaveSurface"></a><p>
1388<table class="mdTable" cellpadding="2" cellspacing="0">
1389  <tr>
1390    <td class="mdRow">
1391      <table cellpadding="0" cellspacing="0" border="0">
1392        <tr>
1393          <td class="md" nowrap valign="top">IDirect3DSurface9* <a class="el" href="_main_8cpp.html#a10">g_pSaveSurface</a>          </td>
1394        </tr>
1395      </table>
1396    </td>
1397  </tr>
1398</table>
1399<table cellspacing="5" cellpadding="0" border="0">
1400  <tr>
1401    <td>
1402      &nbsp;
1403    </td>
1404    <td>
1405
1406<p>
1407surface for screenshot capturing
1408<p>
1409    </td>
1410  </tr>
1411</table>
1412<a class="anchor" name="a9" doxytag="Main.cpp::g_pTextSprite"></a><p>
1413<table class="mdTable" cellpadding="2" cellspacing="0">
1414  <tr>
1415    <td class="mdRow">
1416      <table cellpadding="0" cellspacing="0" border="0">
1417        <tr>
1418          <td class="md" nowrap valign="top">ID3DXSprite* <a class="el" href="_main_8cpp.html#a9">g_pTextSprite</a>          </td>
1419        </tr>
1420      </table>
1421    </td>
1422  </tr>
1423</table>
1424<table cellspacing="5" cellpadding="0" border="0">
1425  <tr>
1426    <td>
1427      &nbsp;
1428    </td>
1429    <td>
1430
1431<p>
1432Sprite for batching draw text calls.
1433<p>
1434    </td>
1435  </tr>
1436</table>
1437<a class="anchor" name="a6" doxytag="Main.cpp::g_SettingsDlg"></a><p>
1438<table class="mdTable" cellpadding="2" cellspacing="0">
1439  <tr>
1440    <td class="mdRow">
1441      <table cellpadding="0" cellspacing="0" border="0">
1442        <tr>
1443          <td class="md" nowrap valign="top">CD3DSettingsDlg <a class="el" href="_main_8cpp.html#a6">g_SettingsDlg</a>          </td>
1444        </tr>
1445      </table>
1446    </td>
1447  </tr>
1448</table>
1449<table cellspacing="5" cellpadding="0" border="0">
1450  <tr>
1451    <td>
1452      &nbsp;
1453    </td>
1454    <td>
1455
1456<p>
1457Device settings dialog.
1458<p>
1459    </td>
1460  </tr>
1461</table>
1462<a class="anchor" name="a1" doxytag="Main.cpp::HEIGHT"></a><p>
1463<table class="mdTable" cellpadding="2" cellspacing="0">
1464  <tr>
1465    <td class="mdRow">
1466      <table cellpadding="0" cellspacing="0" border="0">
1467        <tr>
1468          <td class="md" nowrap valign="top">const int <a class="el" href="_main_8cpp.html#a1">HEIGHT</a> = 640          </td>
1469        </tr>
1470      </table>
1471    </td>
1472  </tr>
1473</table>
1474<table cellspacing="5" cellpadding="0" border="0">
1475  <tr>
1476    <td>
1477      &nbsp;
1478    </td>
1479    <td>
1480
1481<p>
1482    </td>
1483  </tr>
1484</table>
1485<a class="anchor" name="a13" doxytag="Main.cpp::hr"></a><p>
1486<table class="mdTable" cellpadding="2" cellspacing="0">
1487  <tr>
1488    <td class="mdRow">
1489      <table cellpadding="0" cellspacing="0" border="0">
1490        <tr>
1491          <td class="md" nowrap valign="top">HRESULT <a class="el" href="_main_8cpp.html#a13">hr</a>          </td>
1492        </tr>
1493      </table>
1494    </td>
1495  </tr>
1496</table>
1497<table cellspacing="5" cellpadding="0" border="0">
1498  <tr>
1499    <td>
1500      &nbsp;
1501    </td>
1502    <td>
1503
1504<p>
1505    </td>
1506  </tr>
1507</table>
1508<a class="anchor" name="a15" doxytag="Main.cpp::pp"></a><p>
1509<table class="mdTable" cellpadding="2" cellspacing="0">
1510  <tr>
1511    <td class="mdRow">
1512      <table cellpadding="0" cellspacing="0" border="0">
1513        <tr>
1514          <td class="md" nowrap valign="top"><a class="el" href="class_parameters.html">Parameters</a> <a class="el" href="_main_8cpp.html#a15">pp</a>          </td>
1515        </tr>
1516      </table>
1517    </td>
1518  </tr>
1519</table>
1520<table cellspacing="5" cellpadding="0" border="0">
1521  <tr>
1522    <td>
1523      &nbsp;
1524    </td>
1525    <td>
1526
1527<p>
1528managing parameters of the algorithm
1529<p>
1530    </td>
1531  </tr>
1532</table>
1533<a class="anchor" name="a0" doxytag="Main.cpp::WIDTH"></a><p>
1534<table class="mdTable" cellpadding="2" cellspacing="0">
1535  <tr>
1536    <td class="mdRow">
1537      <table cellpadding="0" cellspacing="0" border="0">
1538        <tr>
1539          <td class="md" nowrap valign="top">const int <a class="el" href="_main_8cpp.html#a0">WIDTH</a> = 640          </td>
1540        </tr>
1541      </table>
1542    </td>
1543  </tr>
1544</table>
1545<table cellspacing="5" cellpadding="0" border="0">
1546  <tr>
1547    <td>
1548      &nbsp;
1549    </td>
1550    <td>
1551
1552<p>
1553    </td>
1554  </tr>
1555</table>
1556<hr size="1"><address style="align: right;"><small>Generated on Thu Apr 27 11:58:00 2006 for gyak by&nbsp;
1557<a href="http://www.doxygen.org/index.html">
1558<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.2 </small></address>
1559</body>
1560</html>
Note: See TracBrowser for help on using the repository browser.