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

李錦俊(mybios)的blog

游戲開發 C++ Cocos2d-x OpenGL DirectX 數學 計算機圖形學 SQL Server

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

公告

QQ:30743734
EMain:mybios@qq.com

常用鏈接

留言簿(16)

我參與的團隊

最新隨筆

搜索

  •  

積分與排名

  • 積分 - 373519
  • 排名 - 67

最新評論

閱讀排行榜

評論排行榜

渲染之前記得g_pd3dDevice->SetIndices(g_pIB);
而且要用g_pd3dDevice->DrawIndexedPrimitive來渲染索引緩沖區

??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?設備
??9 D3DCAPS9?g_Caps? = ? {(D3DDEVTYPE) 0 } ;???? // ?D3D?的帽子
?10 LPDIRECT3DVERTEXBUFFER9?g_pVB? = ? 0 ;???? // ?頂點緩沖區
?11 LPDIRECT3DINDEXBUFFER9?g_pIB? = ? 0 ;???? // ?索引緩沖區
?12
?13 // ?頂點定義
?14 #define ?D3DFVF_CUSTOMVERTEX?(D3DFVF_XYZRHW?|?D3DFVF_DIFFUSE)
?15 struct ?CUSTOMVERTEX
?16 {
?17 ????D3DXVECTOR4?position;
?18 ????D3DCOLOR?color;
?19 }
;
?20
?21 // ?錯誤記錄
?22 void ?D3DErr(String?strMsg)
?23 {
?24 ????MessageBox( 0 ?,?strMsg.c_str()?,? " 錯誤 " ?,?MB_OK);
?25 }

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

?51 ???? else
?52 ???? {
?53 ???????? return ?E_FAIL;
?54 ????}

?55 ???? return ?S_OK;
?56 }

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

?78 ???? else
?79 ???? {
?80 ???????? return ?E_FAIL;
?81 ????}

?82 ???? return ?S_OK;
?83 }

?84
?85 // ?渲染場景
?86 void ?Render()
?87 {
?88 ???? if (g_pd3dDevice)
?89 ???? {
?90 ???????? // ?清空場景
?91 ????????g_pd3dDevice -> Clear( 0 ?,? 0 ?,?D3DCLEAR_TARGET?,?D3DCOLOR_XRGB( 0 ?,? 0 ?,? 255 )?,? 1 ?,? 0 );
?92 ???????? // ?開始渲染
?93 ???????? if (SUCCEEDED(g_pd3dDevice -> BeginScene()))
?94 ???????? {
?95 ????????????g_pd3dDevice -> SetStreamSource( 0 ?,?g_pVB?,? 0 ?,? sizeof (CUSTOMVERTEX));
?96 ????????????g_pd3dDevice -> SetIndices(g_pIB);
?97 ????????????g_pd3dDevice -> SetFVF(D3DFVF_CUSTOMVERTEX);
?98 ????????????g_pd3dDevice -> DrawIndexedPrimitive(D3DPT_TRIANGLELIST?,? 0 ?,? 0 ?,? 4 ?,? 0 ?,? 2 );
?99 ????????????g_pd3dDevice -> EndScene();
100 ????????}

101 ???????? // ?顯示
102 ????????g_pd3dDevice -> Present( 0 ?,? 0 ?,? 0 ?,? 0 );
103 ????}

104 }

105
106 // ?初始化?D3D?設備
107 HRESULT?InitD3D(HWND?hWnd)
108 {
109 ???? // ?創建?D3D?Driver
110 ???? if (NULL? == ?(g_pD3D? = ?Direct3DCreate9(D3D_SDK_VERSION)))
111 ???? {
112 ????????D3DErr( " 無法創建Direct3D9設備 " );
113 ???????? return ?E_FAIL;
114 ????}

115 ???? // ?獲取當前顯示模式
116 ????D3DDISPLAYMODE?d3ddm;
117 ???? if (FAILED(g_pD3D -> GetAdapterDisplayMode(D3DADAPTER_DEFAULT?,? & d3ddm)))
118 ???? {
119 ????????D3DErr( " 無法獲取D3D顯示器模式 " );
120 ???????? return ?E_FAIL;
121 ????}

122
123 ???? // ?獲取窗口的大小
124 ????RECT?rect;
125 ????GetClientRect(hWnd?,? & rect);
126
127 ???? // ?填充參數
128 ????D3DPRESENT_PARAMETERS?d3dpp;
129 ????memset( & d3dpp?,? 0 ?,? sizeof (d3dpp));
130 ????d3dpp.BackBufferFormat? = ?d3ddm.Format;
131 ????d3dpp.BackBufferWidth? = ?rect.right? - ?rect.left;
132 ????d3dpp.BackBufferHeight? = ?rect.bottom? - ?rect.top;
133 ????d3dpp.SwapEffect? = ?D3DSWAPEFFECT_DISCARD;
134 ????d3dpp.Windowed? = ? true ;
135
136 ???? // ?獲取帽子
137 ???? if (FAILED(g_pD3D -> GetDeviceCaps(D3DADAPTER_DEFAULT?,?D3DDEVTYPE_HAL?,? & g_Caps)))
138 ???? {
139 ????????D3DErr( " 獲取D3D?帽子時發生錯誤 " );
140 ???????? return ?E_FAIL;
141 ????}

142
143 ???? // ?創建D3D設備
144 ???? if (FAILED(g_pD3D -> CreateDevice(D3DADAPTER_DEFAULT
145 ????????,?D3DDEVTYPE_HAL
146 ????????,?hWnd
147 ???????? // ?檢查是否支持硬件頂點處理
148 ????????,?g_Caps.DevCaps? & ?D3DDEVCAPS_HWTRANSFORMANDLIGHT? ? ?D3DCREATE_HARDWARE_VERTEXPROCESSING?:?D3DCREATE_SOFTWARE_VERTEXPROCESSING
149 ????????,? & d3dpp
150 ????????,? & g_pd3dDevice
151 ????????)
152 ????????))
153 ???? {
154 ????????D3DErr( " 創建D3D設備時發生錯誤 " );
155 ???????? return ?E_FAIL;
156 ????}

157
158 ???? // ?創建頂點緩沖區
159 ???? if (FAILED(InitVB()))
160 ???????? return ?E_FAIL;
161 ???? // ?創建索引緩沖區
162 ???? if (FAILED(InitIB()))
163 ???????? return ?E_FAIL;
164 ???? return ?S_OK;
165 }

166
167 // ?清空所有占用的資源
168 void ?CleanUp()
169 {
170 ????SAFE_RELEASE(g_pIB);
171 ????SAFE_RELEASE(g_pVB);
172 ????SAFE_RELEASE(g_pd3dDevice);
173 ????SAFE_RELEASE(g_pD3D);
174 }

175
176
177 // ?消息處理
178 LRESULT?WINAPI?MsgProc(HWND?hWnd?,?UINT?message?,?WPARAM?wParam?,?LPARAM?lParam)
179 {
180 ???? switch (message)
181 ???? {
182 ???? case ?WM_DESTROY:
183 ????????CleanUp();
184 ????????PostQuitMessage( 0 );
185 ???????? break ;
186 ????}

187 ???? return ?::DefWindowProc(hWnd,?message?,?wParam?,?lParam);
188 }

189
190 // ?Windows?入口
191 int ?WINAPI?WinMain(IN?HINSTANCE?hInstance,?IN?HINSTANCE?hPrevInstance,?IN?LPSTR?lpCmdLine,?IN? int ?nShowCmd?)
192 {
193 ????WNDCLASS?wndClass;
194 ????memset( & wndClass?,? 0 ?,? sizeof (wndClass));
195 ????wndClass.hInstance? = ?hInstance;
196 ????wndClass.lpszClassName? = ? " Tutorial02 " ;
197 ????wndClass.lpfnWndProc? = ?MsgProc;
198 ????RegisterClass( & wndClass);
199
200 ???? // ?創建窗口
201 ????HWND?hWnd? = ?CreateWindow( " Tutorial02 " ?,? " Tutorial02?Index?Buffer " ?
202 ????????,?WS_OVERLAPPEDWINDOW?,? 0 ?,? 0 ?,? 512 ?, 512 ?,?GetDesktopWindow()
203 ????????,? 0 ?,?wndClass.hInstance?,? 0 );
204 ???? // ?顯示窗口
205 ????ShowWindow(hWnd?,?SW_SHOWDEFAULT);
206 ????UpdateWindow(hWnd);
207
208 ???? // ?初始化?D3D?設備
209 ???? if (SUCCEEDED(InitD3D(hWnd)))
210 ???? {
211 ???????? // ?消息處理循環
212 ????????MSG?msg;
213 ????????memset( & msg?,? 0 ?,? sizeof (msg));
214 ???????? while (msg.message? != ?WM_QUIT)
215 ???????? {
216 ???????????? if (PeekMessage( & msg?,? 0 ?,? 0 ?,? 0 ?,?PM_REMOVE))
217 ???????????? {
218 ????????????????TranslateMessage( & msg);
219 ????????????????DispatchMessage( & msg);
220 ????????????}

221 ???????????? else
222 ???????????? {
223 ????????????????Render();
224 ????????????}

225 ????????}

226 ????}

227 ???? // ?清空場景
228 ????CleanUp();
229
230 ????UnregisterClass( " Tutorial02 " ?,?wndClass.hInstance);
231
232 ???? return ? 0 ;
233 }
posted on 2006-11-16 10:59 李錦俊(mybios) 閱讀(767) 評論(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>
            日韩天天综合| 亚洲一级片在线观看| 妖精视频成人观看www| 免费欧美视频| 91久久夜色精品国产九色| 亚洲美女在线视频| 国产精品国产三级国产aⅴ浪潮 | 亚洲麻豆一区| 亚洲精品日韩在线| 国产香蕉97碰碰久久人人| 久久影院午夜片一区| 欧美成人在线影院| 亚洲电影免费观看高清| 亚洲一区www| 国产亚洲午夜| 亚洲国产mv| 国产日韩欧美在线视频观看| 欧美成人一区二区三区| 欧美色欧美亚洲另类二区| 蜜臀久久99精品久久久久久9| 欧美激情亚洲一区| 欧美在线免费视屏| 欧美精品久久久久a| 欧美freesex8一10精品| 国产精品ⅴa在线观看h| 欧美不卡一卡二卡免费版| 国产亚洲二区| 日韩视频永久免费| 在线观看视频免费一区二区三区| 亚洲欧美成人网| 日韩午夜在线电影| 久久九九99视频| 欧美亚洲一级片| 欧美www在线| 久久久国产一区二区| 欧美日本网站| 91久久精品网| 在线免费观看日本一区| 亚洲自拍偷拍一区| 亚洲综合久久久久| 欧美国产亚洲精品久久久8v| 久久久99精品免费观看不卡| 国产日韩欧美精品在线| 亚洲精品一区在线观看香蕉| 在线观看精品视频| 亚洲人成网站精品片在线观看| 在线精品一区| 久久精品五月婷婷| 久久成人免费网| 国产精品亚洲激情| 亚洲免费电影在线| 亚洲乱码国产乱码精品精98午夜| 免费成人美女女| 久热精品视频在线免费观看| 国产精品亚洲综合一区在线观看| 性刺激综合网| 国产日韩精品视频一区二区三区| av成人免费观看| 久久精品理论片| 免费高清在线视频一区·| 国产三级精品三级| 亚洲永久免费av| 亚洲女与黑人做爰| 国产精品激情偷乱一区二区∴| 亚洲麻豆av| 一区二区三区自拍| 欧美高潮视频| 亚洲国产成人久久| 亚洲精品四区| 欧美激情aⅴ一区二区三区| 野花国产精品入口| 欧美激情视频一区二区三区免费 | 午夜欧美不卡精品aaaaa| 亚洲欧美伊人| 亚洲视频一二| 欧美三级网址| 亚洲视频精选| 日韩午夜在线电影| 国产精品久久精品日日| 亚洲无线一线二线三线区别av| 亚洲一区成人| 国外成人在线| 久久综合中文字幕| 亚洲国产91精品在线观看| 亚洲午夜激情| 国产精品亚洲成人| 久久久99国产精品免费| 欧美一区二区日韩| 亚洲日本一区二区| 欧美视频一区二区三区在线观看 | 国产一区二区三区高清在线观看 | 亚洲人成网站777色婷婷| 欧美日韩三区| 亚洲尤物在线视频观看| 久久精品国产77777蜜臀| 国产一区二区三区的电影| 免费视频一区二区三区在线观看| 亚洲精品日韩综合观看成人91| 亚洲欧洲日产国产综合网| 欧美亚州一区二区三区| 久久国产免费| 亚洲日本黄色| 老鸭窝毛片一区二区三区| 日韩亚洲精品在线| 国产欧美日韩精品丝袜高跟鞋 | 亚洲伦理网站| 日韩系列欧美系列| 精品成人一区二区三区四区| 欧美极品一区| 欧美一区二区三区在线看| 亚洲精品国产精品久久清纯直播 | 伊人婷婷久久| 国产精品美女久久久久av超清| 久久精品一区蜜桃臀影院| 亚洲黄色片网站| 午夜精品免费| 欧美成人四级电影| 亚洲国产91| 亚洲看片一区| 欧美国产精品久久| 91久久精品国产91性色tv| 日韩亚洲视频| 欧美一区二区三区婷婷月色 | 国产日韩精品电影| 欧美激情四色 | 韩国三级电影一区二区| 久久久免费精品视频| 99在线精品观看| 久久综合狠狠综合久久综青草| 欧美一级夜夜爽| 在线中文字幕不卡| 亚洲国产精品传媒在线观看| 国产九九视频一区二区三区| 欧美日韩视频一区二区| 快射av在线播放一区| 亚洲欧洲一区二区在线播放| 欧美成人黄色小视频| 欧美一级一区| 国产欧美日韩视频在线观看| 亚洲欧洲精品一区二区精品久久久| 久久综合九色综合欧美就去吻| 性感少妇一区| 欧美在线首页| 久久www免费人成看片高清 | 欧美一区三区二区在线观看| 欧美资源在线观看| 久久一区二区三区国产精品| 欧美一区影院| 久久av一区| 久久久蜜桃一区二区人| 久久天天狠狠| 欧美h视频在线| 亚洲国产欧美日韩精品| 亚洲国产婷婷| 日韩一级免费| 一区二区欧美日韩视频| 亚洲一区二区三区乱码aⅴ蜜桃女| 中文精品99久久国产香蕉| 亚洲午夜伦理| 先锋a资源在线看亚洲| 久久精品国产77777蜜臀| 玖玖视频精品| 欧美色图一区二区三区| 国产日产高清欧美一区二区三区| 国产午夜精品在线| 激情五月综合色婷婷一区二区| 伊人成年综合电影网| 亚洲国产婷婷| 亚洲天堂av电影| 久久精彩视频| 免费观看亚洲视频大全| 91久久中文| 亚洲在线一区二区三区| 久久久最新网址| 欧美精品日韩精品| 国产精品爽黄69| 亚洲国产日韩欧美在线99| 中文一区二区| 久久综合久久美利坚合众国| 亚洲国产成人av好男人在线观看| 亚洲一二三区在线观看| 久久久久久亚洲精品中文字幕 | 久久亚洲精品欧美| 亚洲精品久久嫩草网站秘色| 亚洲欧美日韩在线综合| 欧美 亚欧 日韩视频在线| 亚洲最黄网站| 久久偷看各类wc女厕嘘嘘偷窃| 国产精品视频网| 国产精品大片| 红桃视频欧美| 亚洲一区免费网站| 亚洲国产精品一区| 午夜亚洲伦理| 欧美午夜剧场| 日韩一区二区电影网| 老司机精品福利视频| 亚洲伊人一本大道中文字幕| 欧美韩日一区二区| 亚洲国产成人tv|