青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

李錦俊(mybios)的blog

游戲開發(fā) C++ Cocos2d-x OpenGL DirectX 數(shù)學(xué) 計(jì)算機(jī)圖形學(xué) SQL Server

  C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
  86 Posts :: 0 Stories :: 370 Comments :: 0 Trackbacks

公告

QQ:30743734
EMain:mybios@qq.com

常用鏈接

留言簿(16)

我參與的團(tuán)隊(duì)

最新隨筆

搜索

  •  

積分與排名

  • 積分 - 373511
  • 排名 - 67

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

??1 #include? < D3DX9.h >
??2 #include? < string >
??3 typedef?std:: string ?String;
??4 #define ?SAFE_RELEASE(o)?{if(o){o->Release();o?=?0;}}
??5
??6
??7 LPDIRECT3D9?g_pD3D? = ? 0 ;???????????????? // ?D3D?Driver
??8 LPDIRECT3DDEVICE9?g_pd3dDevice? = ? 0 ;???? // ?D3D?設(shè)備
??9 D3DCAPS9?g_Caps? = ? {(D3DDEVTYPE) 0 } ;???? // ?D3D?的帽子
?10 LPDIRECT3DVERTEXBUFFER9?g_pVB? = ? 0 ;???? // ?頂點(diǎn)緩沖區(qū)
?11 LPDIRECT3DINDEXBUFFER9?g_pIB? = ? 0 ;???? // ?索引緩沖區(qū)
?12
?13 // ?頂點(diǎn)定義
?14 #define ?D3DFVF_CUSTOMVERTEX?(D3DFVF_XYZ?|?D3DFVF_DIFFUSE)
?15 struct ?CUSTOMVERTEX
?16 {
?17 ????D3DXVECTOR3?position;
?18 ????D3DCOLOR?color;
?19 }
;
?20
?21 // ?錯(cuò)誤記錄
?22 void ?D3DErr(String?strMsg)
?23 {
?24 ????MessageBox( 0 ?,?strMsg.c_str()?,? " 錯(cuò)誤 " ?,?MB_OK);
?25 }

?26
?27 // ?初始化頂點(diǎn)緩沖區(qū)
?28 HRESULT?InitVB()
?29 {
?30 ???? // ?創(chuàng)建頂點(diǎn)緩沖區(qū)
?31 ???? if (FAILED(g_pd3dDevice -> CreateVertexBuffer( 6 ? * ? sizeof (CUSTOMVERTEX)?,? 0 ?,?D3DFVF_CUSTOMVERTEX?,?D3DPOOL_DEFAULT?,? & g_pVB?,? 0 )))
?32 ???????? return ?E_FAIL;
?33
?34 ????CUSTOMVERTEX? * pVertecies;
?35 ???? // ?鎖定緩沖區(qū)
?36 ???? if (SUCCEEDED(g_pVB -> Lock( 0 ?,? 6 ? * ? sizeof (CUSTOMVERTEX)?,?( void ** ) & pVertecies?,? 0 )))
?37 ???? {
?38 ????????pVertecies[ 0 ].position? = ?D3DXVECTOR3( 0 ?,? 0 ?,? 0 );
?39 ????????pVertecies[ 1 ].position? = ?D3DXVECTOR3( 0 ?,? 1 ?,? 0 );
?40 ????????pVertecies[ 2 ].position? = ?D3DXVECTOR3( 1 ?,? 0 ?,? 0 ?);
?41 ????????pVertecies[ 3 ].position? = ?D3DXVECTOR3( 1 ?,? 0 ?,? 0 ?);
?42 ????????pVertecies[ 4 ].position? = ?D3DXVECTOR3( 1 ?,? 1 ?,? 0 ?);
?43 ????????pVertecies[ 5 ].position? = ?D3DXVECTOR3( 0 ?,? 1 ?,? 0 );
?44
?45
?46 ????????pVertecies[ 0 ].color? = ?D3DCOLOR_XRGB( 255 ?,? 0 ?,? 0 );
?47 ????????pVertecies[ 1 ].color? = ?D3DCOLOR_XRGB( 0 ?,? 255 ?,? 0 );
?48 ????????pVertecies[ 2 ].color? = ?D3DCOLOR_XRGB( 0 ?,? 0 ?,? 255 );
?49 ????????pVertecies[ 3 ].color? = ?D3DCOLOR_XRGB( 0 ?,? 0 ?,? 255 );
?50 ????????pVertecies[ 4 ].color? = ?D3DCOLOR_XRGB( 255 ?,? 255 ?,? 255 );
?51 ????????pVertecies[ 5 ].color? = ?D3DCOLOR_XRGB( 0 ?,? 255 ?,? 0 );
?52
?53 ????????g_pVB -> Unlock();
?54 ????}

?55 ???? else
?56 ???? {
?57 ???????? return ?E_FAIL;
?58 ????}

?59 ???? return ?S_OK;
?60 }

?61
?62
?63 // ?初始化索引緩沖區(qū)
?64 HRESULT?InitIB()
?65 {
?66 ???? // ?創(chuàng)建頂點(diǎn)緩沖區(qū)
?67 ???? if (FAILED(g_pd3dDevice -> CreateIndexBuffer( 6 ? * ? sizeof (WORD)?,? 0 ?,?D3DFMT_INDEX16?,?D3DPOOL_DEFAULT?,? & g_pIB?,? 0 )))
?68 ???????? return ?E_FAIL;
?69
?70 ????WORD? * pIndices;
?71 ???? // ?鎖定緩沖區(qū)
?72 ???? if (SUCCEEDED(g_pIB -> Lock( 0 ?,? 6 ? * ? sizeof (WORD)?,?( void ** ) & pIndices?,? 0 )))
?73 ???? {
?74 ????????pIndices[ 0 ]? = ? 0 ;
?75 ????????pIndices[ 1 ]? = ? 1 ;
?76 ????????pIndices[ 2 ]? = ? 2 ;
?77 ????????pIndices[ 3 ]? = ? 2 ;
?78 ????????pIndices[ 4 ]? = ? 3 ;
?79 ????????pIndices[ 5 ]? = ? 1 ;
?80 ????????g_pIB -> Unlock();
?81 ????}

?82 ???? else
?83 ???? {
?84 ???????? return ?E_FAIL;
?85 ????}

?86 ???? return ?S_OK;
?87 }

?88
?89 // ?初始化模型
?90 HRESULT?InitGeometry()
?91 {
?92 ???? // ?創(chuàng)建頂點(diǎn)緩沖區(qū)
?93 ???? if (FAILED(InitVB()))
?94 ???????? return ?E_FAIL;
?95 ???? // ?創(chuàng)建索引緩沖區(qū)
?96 ???? if (FAILED(InitIB()))
?97 ???????? return ?E_FAIL;
?98 ???? return ?S_OK;
?99 }

100
101 // ?設(shè)置矩陣變換
102 void ?SetTransform()
103 {
104
105 ???? // ?世界變換
106 ????D3DXMATRIX?matWorld?,?matT1?,?matT2?,?matR;
107 ????D3DXMatrixIdentity( & matWorld);
108 ????DWORD?dwTime? = ?timeGetTime();
109 ???? // ?角度
110 ???? float ?fAngle? = ? 2 ? * ?D3DX_PI? * ?(dwTime? % ? 3000 )? / ? 3000.0f ;
111
112 ???? // ?平移到原點(diǎn)
113 ????D3DXMatrixTranslation( & matT1?,? - 0.5 ?,? - 1 ,? 0 );
114 ???? // ?Z旋轉(zhuǎn)
115 ????D3DXMatrixRotationZ( & matR?,?sin(fAngle));
116 ???? // ?移動(dòng)到原來的位置
117 ????D3DXMatrixTranslation( & matT2?,? 0.5 /* ?-?3?*?(dwTime?%?5000)?/?5000.0f */ ?,? 1 ,? 0 );
118 ???? // ?平移到原點(diǎn)再旋轉(zhuǎn)
119 ????matWorld? = ?matT1? * ?matR;
120 ???? // ?平移回原來的位置
121 ????matWorld? *= ?matT2;
122
123 ???? /*
124 ????//?放大縮小
125 ????D3DXMatrixScaling(&matWorld?,??abs(sin(2?*?D3DX_PI?*?(dwTime?%?3000)?/?3000.0f))?,?abs(sin(2?*?D3DX_PI?*?(dwTime?%?3000)?/?3000.0f))?,?0);
126 ????//?設(shè)置縮放點(diǎn)
127 ????matWorld._41?=?(1.0f?-?matWorld._11)?*?0.5;????????//?x
128 ????matWorld._42?=?(1.0f?-?matWorld._22)?*?0.5;????????//?y
129 ????matWorld._43?=?(1.0f?-?matWorld._33)?*?1.0;????????//?z
130 ???? */

131
132 ???? // ?設(shè)置世界矩陣
133 ????g_pd3dDevice -> SetTransform(D3DTS_WORLD?,? & matWorld);
134 ???? // ?視口變換
135 ????D3DXMATRIX?matView;
136 ????D3DXMatrixLookAtLH( & matView?,? & D3DXVECTOR3( 0 ?,? 0 ?,? - 5 )
137 ????????,? & D3DXVECTOR3( 0 ?,? 0 ?,? 10 )?
138 ????????,? & D3DXVECTOR3( 0 ?,? 1 ?,? 0 ));
139 ????g_pd3dDevice -> SetTransform(D3DTS_VIEW?,? & matView);
140
141 ???? // ?投影變換
142 ????D3DXMATRIX?matProj;
143 ????D3DXMatrixPerspectiveFovLH( & matProj?,?D3DX_PI? / ? 4 ?,? 512 ? / ? 512 ?,? 0 ?,? 100 );
144 ????g_pd3dDevice -> SetTransform(D3DTS_PROJECTION?,? & matProj);
145
146 ???? // ?設(shè)置視口
147 ????D3DVIEWPORT9?vp;
148 ????vp.X? = ? 0 ;
149 ????vp.Y? = ? 0 ;
150 ????vp.Width? = ? 512 ;
151 ????vp.Height? = ? 512 ;
152 ????vp.MinZ? = ? 0 ;
153 ????vp.MaxZ? = ? 1 ;
154 ????g_pd3dDevice -> SetViewport( & vp);
155 }

156
157 // ?渲染場景
158 void ?Render()
159 {
160 ???? if (g_pd3dDevice)
161 ???? {
162 ???????? // ?清空?qǐng)鼍?/span>
163 ????????g_pd3dDevice -> Clear( 0 ?,? 0 ?,?D3DCLEAR_TARGET?,?D3DCOLOR_XRGB( 0 ?,? 0 ?,? 255 )?,? 1 ?,? 0 );
164 ???????? // ?開始渲染
165 ???????? if (SUCCEEDED(g_pd3dDevice -> BeginScene()))
166 ???????? {
167 ????????????SetTransform();
168 ????????????g_pd3dDevice -> SetRenderState(?D3DRS_CULLMODE,?D3DCULL_NONE?);
169 ????????????g_pd3dDevice -> SetRenderState(D3DRS_LIGHTING?,?FALSE);
170 ????????????g_pd3dDevice -> SetStreamSource( 0 ?,?g_pVB?,? 0 ?,? sizeof (CUSTOMVERTEX));
171 ???????????? // g_pd3dDevice->SetIndices(g_pIB);
172 ????????????g_pd3dDevice -> SetFVF(D3DFVF_CUSTOMVERTEX);
173 ????????????g_pd3dDevice -> DrawPrimitive(D3DPT_TRIANGLELIST?,? 0 ?,? 2 );
174 ????????????g_pd3dDevice -> EndScene();
175 ????????}

176 ???????? // ?顯示
177 ????????g_pd3dDevice -> Present( 0 ?,? 0 ?,? 0 ?,? 0 );
178 ????}

179 }

180
181 // ?初始化?D3D?設(shè)備
182 HRESULT?InitD3D(HWND?hWnd)
183 {
184 ???? // ?創(chuàng)建?D3D?Driver
185 ???? if (NULL? == ?(g_pD3D? = ?Direct3DCreate9(D3D_SDK_VERSION)))
186 ???? {
187 ????????D3DErr( " 無法創(chuàng)建Direct3D9設(shè)備 " );
188 ???????? return ?E_FAIL;
189 ????}

190 ???? // ?獲取當(dāng)前顯示模式
191 ????D3DDISPLAYMODE?d3ddm;
192 ???? if (FAILED(g_pD3D -> GetAdapterDisplayMode(D3DADAPTER_DEFAULT?,? & d3ddm)))
193 ???? {
194 ????????D3DErr( " 無法獲取D3D顯示器模式 " );
195 ???????? return ?E_FAIL;
196 ????}

197
198 ???? // ?獲取窗口的大小
199 ????RECT?rect;
200 ????GetClientRect(hWnd?,? & rect);
201
202 ???? // ?填充參數(shù)
203 ????D3DPRESENT_PARAMETERS?d3dpp;
204 ????memset( & d3dpp?,? 0 ?,? sizeof (d3dpp));
205 ????d3dpp.BackBufferFormat? = ?d3ddm.Format;
206 ????d3dpp.BackBufferWidth? = ?rect.right? - ?rect.left;
207 ????d3dpp.BackBufferHeight? = ?rect.bottom? - ?rect.top;
208 ????d3dpp.SwapEffect? = ?D3DSWAPEFFECT_DISCARD;
209 ????d3dpp.Windowed? = ? true ;
210
211 ???? // ?獲取帽子
212 ???? if (FAILED(g_pD3D -> GetDeviceCaps(D3DADAPTER_DEFAULT?,?D3DDEVTYPE_HAL?,? & g_Caps)))
213 ???? {
214 ????????D3DErr( " 獲取D3D?帽子時(shí)發(fā)生錯(cuò)誤 " );
215 ???????? return ?E_FAIL;
216 ????}

217
218 ???? // ?創(chuàng)建D3D設(shè)備
219 ???? if (FAILED(g_pD3D -> CreateDevice(D3DADAPTER_DEFAULT
220 ????????,?D3DDEVTYPE_HAL
221 ????????,?hWnd
222 ???????? // ?檢查是否支持硬件頂點(diǎn)處理
223 ????????,?g_Caps.DevCaps? & ?D3DDEVCAPS_HWTRANSFORMANDLIGHT? ? ?D3DCREATE_HARDWARE_VERTEXPROCESSING?:?D3DCREATE_SOFTWARE_VERTEXPROCESSING
224 ????????,? & d3dpp
225 ????????,? & g_pd3dDevice
226 ????????)
227 ????????))
228 ???? {
229 ????????D3DErr( " 創(chuàng)建D3D設(shè)備時(shí)發(fā)生錯(cuò)誤 " );
230 ???????? return ?E_FAIL;
231 ????}

232
233 ???? if (FAILED(InitGeometry()))
234 ???????? return ?E_FAIL;
235 ???? return ?S_OK;
236 }

237
238 // ?清空所有占用的資源
239 void ?CleanUp()
240 {
241 ????SAFE_RELEASE(g_pIB);
242 ????SAFE_RELEASE(g_pVB);
243 ????SAFE_RELEASE(g_pd3dDevice);
244 ????SAFE_RELEASE(g_pD3D);
245 }

246
247
248 // ?消息處理
249 LRESULT?WINAPI?MsgProc(HWND?hWnd?,?UINT?message?,?WPARAM?wParam?,?LPARAM?lParam)
250 {
251 ???? switch (message)
252 ???? {
253 ???? case ?WM_DESTROY:
254 ????????CleanUp();
255 ????????PostQuitMessage( 0 );
256 ???????? break ;
257 ????}

258 ???? return ?::DefWindowProc(hWnd,?message?,?wParam?,?lParam);
259 }

260
261 // ?Windows?入口
262 int ?WINAPI?WinMain(IN?HINSTANCE?hInstance,?IN?HINSTANCE?hPrevInstance,?IN?LPSTR?lpCmdLine,?IN? int ?nShowCmd?)
263 {
264 ????WNDCLASS?wndClass;
265 ????memset( & wndClass?,? 0 ?,? sizeof (wndClass));
266 ????wndClass.hInstance? = ?hInstance;
267 ????wndClass.lpszClassName? = ? " Tutorial02 " ;
268 ????wndClass.lpfnWndProc? = ?MsgProc;
269 ????RegisterClass( & wndClass);
270
271 ???? // ?創(chuàng)建窗口
272 ????HWND?hWnd? = ?CreateWindow( " Tutorial02 " ?,? " Tutorial02?Transform " ?
273 ????????,?WS_OVERLAPPEDWINDOW?,? 0 ?,? 0 ?,? 512 ?, 512 ?,?GetDesktopWindow()
274 ????????,? 0 ?,?wndClass.hInstance?,? 0 );
275 ???? // ?顯示窗口
276 ????ShowWindow(hWnd?,?SW_SHOWDEFAULT);
277 ????UpdateWindow(hWnd);
278
279 ???? // ?初始化?D3D?設(shè)備
280 ???? if (SUCCEEDED(InitD3D(hWnd)))
281 ???? {
282 ???????? // ?消息處理循環(huán)
283 ????????MSG?msg;
284 ????????memset( & msg?,? 0 ?,? sizeof (msg));
285 ???????? while (msg.message? != ?WM_QUIT)
286 ???????? {
287 ???????????? if (PeekMessage( & msg?,? 0 ?,? 0 ?,? 0 ?,?PM_REMOVE))
288 ???????????? {
289 ????????????????TranslateMessage( & msg);
290 ????????????????DispatchMessage( & msg);
291 ????????????}

292 ???????????? else
293 ???????????? {
294 ????????????????Render();
295 ????????????}

296 ????????}

297 ????}

298 ???? // ?清空?qǐng)鼍?/span>
299 ????CleanUp();
300
301 ????UnregisterClass( " Tutorial02 " ?,?wndClass.hInstance);
302
303 ???? return ? 0 ;
304 }
posted on 2006-11-16 11:03 李錦俊(mybios) 閱讀(624) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Direct3D
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品乱码一区二区三区| 亚洲性线免费观看视频成熟| 一本色道婷婷久久欧美| 在线免费观看视频一区| 一区二区三区在线看| 在线观看欧美精品| 一本色道久久综合一区| 欧美一级播放| 久久久人人人| 91久久综合| 亚洲午夜在线观看视频在线| 性久久久久久久久久久久| 久久狠狠亚洲综合| 欧美高清视频在线播放| 国产精品视频你懂的| 激情伊人五月天久久综合| 亚洲欧洲中文日韩久久av乱码| 在线中文字幕不卡| 久久综合亚州| 99精品视频一区二区三区| 欧美在线精品一区| 欧美日韩福利| 激情五月***国产精品| 亚洲视频中文字幕| 欧美成人首页| 香蕉久久a毛片| 欧美日韩国产色视频| 国产亚洲成精品久久| 亚洲老板91色精品久久| 欧美在线日韩| 99精品欧美一区二区三区综合在线| 久久成人免费电影| 国产精品第十页| 亚洲精品综合久久中文字幕| 久久久无码精品亚洲日韩按摩| 日韩图片一区| 欧美a级大片| 极品尤物av久久免费看| 午夜精品一区二区三区四区| 亚洲欧洲日本在线| 美女精品自拍一二三四| 国产一区二区三区精品久久久| 中日韩高清电影网| 亚洲经典自拍| 欧美成黄导航| 亚洲国产日韩欧美| 美女精品网站| 久久久久成人精品免费播放动漫| 国产精品午夜电影| 午夜精品在线看| 亚洲一区图片| 国产精品腿扒开做爽爽爽挤奶网站| 亚洲乱码一区二区| 亚洲精品久久| 欧美日韩色一区| 在线一区二区三区四区五区| 亚洲精品资源| 亚洲激情视频在线| 免费在线视频一区| 91久久精品国产91性色| 亚洲电影免费观看高清完整版在线观看| 欧美在线视频一区二区三区| 国产亚洲精品一区二555| 久久精品国产久精国产爱| 午夜欧美视频| 国产中文一区二区| 久久久久久亚洲精品中文字幕| 午夜精品久久久久久久久久久久久| 国产伦精品一区二区三区照片91 | 99国产精品久久久久老师| 欧美激情视频在线播放| 亚洲网友自拍| 先锋资源久久| 一区二区三区在线视频观看| 免费观看不卡av| 免费日韩一区二区| 这里只有精品在线播放| 亚洲综合欧美日韩| 尤物在线精品| 亚洲精品国产精品国自产观看| 欧美视频一区二区三区在线观看 | 欧美一区二区三区日韩视频| 亚洲欧美日韩系列| 亚洲成在线观看| 亚洲激情第一区| 国产精品夫妻自拍| 久久亚洲国产精品一区二区| 欧美1区2区3区| 亚洲欧美日韩系列| 久久在线91| 亚洲欧美日韩国产成人精品影院| 校园春色综合网| 99这里有精品| 欧美一区二区三区视频在线观看| 亚洲黑丝在线| 亚洲欧美日韩精品一区二区| 亚洲欧洲精品一区二区精品久久久| 日韩亚洲欧美成人| 韩国精品一区二区三区| 99国产精品久久| 韩国三级电影一区二区| 一区二区高清视频| 亚洲三级视频在线观看| 先锋资源久久| 亚洲无玛一区| 免费欧美电影| 久久久久久一区| 国产精品欧美一区喷水 | 亚洲丰满少妇videoshd| 国产精品欧美一区喷水| 亚洲激情亚洲| 亚洲第一在线综合在线| 国产精品成人一区二区网站软件 | 午夜精品亚洲| 一区二区三区国产精品| 美女主播一区| 另类人畜视频在线| 国产亚洲精品资源在线26u| 亚洲精品视频在线播放| 亚洲激情第一页| 久久这里有精品15一区二区三区 | 免费在线欧美视频| 国产农村妇女精品| 在线视频免费在线观看一区二区| 亚洲精品欧美日韩| 免费一级欧美片在线观看| 久久综合九色综合欧美就去吻| 国产精品亚洲片夜色在线| 一区二区三区国产| 亚洲天堂久久| 国产精品成人播放| 亚洲色无码播放| 亚洲视频在线观看免费| 欧美日韩亚洲一区二区三区| 亚洲精品视频二区| 亚洲小视频在线观看| 欧美三日本三级少妇三2023| 亚洲最新在线视频| 亚洲一区二区三区国产| 国产精品v欧美精品v日本精品动漫 | 亚洲免费播放| 亚洲性感美女99在线| 国产精品美女诱惑| 先锋影音久久久| 猫咪成人在线观看| 亚洲精品欧美精品| 欧美激情一区二区三区全黄| 亚洲美女黄色| 欧美一级片久久久久久久| 国产亚洲欧美日韩美女| 久久免费国产精品| 亚洲黄色免费| 亚洲欧美日韩中文播放| 国产综合精品一区| 久久综合中文字幕| 一区二区三区精品国产| 久久成人人人人精品欧| 伊伊综合在线| 欧美精品综合| 午夜精品国产| 亚洲国产精品99久久久久久久久| 一区二区三区视频免费在线观看| 国产精品美女久久久久久久| 久久精品视频va| 亚洲日本成人| 久久国内精品视频| 亚洲人成人一区二区三区| 国产精品白丝jk黑袜喷水| 久久精品中文字幕一区| 亚洲另类视频| 久久综合色8888| 亚洲男人的天堂在线aⅴ视频| 国产一区二区你懂的| 欧美精品福利| 久久久国产午夜精品| 国产视频亚洲| 亚洲欧美变态国产另类| 欧美成人一区二免费视频软件| 一本色道久久综合一区| 红桃视频一区| 欧美视频一区二区三区| 久热爱精品视频线路一| 亚洲影院免费观看| 91久久线看在观草草青青| 欧美在线观看一区| 在线午夜精品| 亚洲第一精品影视| 国产视频一区在线| 国产精品igao视频网网址不卡日韩| 久久久蜜桃一区二区人| 亚洲欧美成人综合| 日韩亚洲欧美在线观看| 欧美成人久久| 久久精品国产999大香线蕉| 亚洲综合色噜噜狠狠| 日韩天堂av| 日韩视频永久免费| 亚洲高清二区| 在线成人激情黄色| 激情成人av|