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

李錦俊(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)

我參與的團隊

最新隨筆

搜索

  •  

積分與排名

  • 積分 - 373953
  • 排名 - 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) 閱讀(769) 評論(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>
            午夜免费在线观看精品视频| 一二三四社区欧美黄| 欧美日韩中文另类| 免费国产一区二区| 国产精品网站视频| 日韩小视频在线观看专区| 一区二区在线视频播放| 午夜精品一区二区在线观看 | 亚洲国产视频直播| 久久国产一二区| 欧美一区二区三区日韩| 欧美日韩国产一区二区三区| 欧美 日韩 国产一区二区在线视频 | 欧美午夜一区二区| 亚洲七七久久综合桃花剧情介绍| 国产一区二区福利| 亚洲欧美日韩国产一区二区三区 | 欧美一区二视频在线免费观看| 欧美日韩成人在线观看| 亚洲丁香婷深爱综合| 亚洲国产另类久久久精品极度| 久久国产精品电影| 久久午夜影视| 国产主播精品在线| 欧美资源在线| 久久人人97超碰精品888 | 国产精品免费电影| 亚洲私人影吧| 午夜精品亚洲一区二区三区嫩草| 欧美视频亚洲视频| 中文一区在线| 久久不见久久见免费视频1| 国产美女扒开尿口久久久| 亚洲欧美综合v| 久久久久久网站| 伊人久久综合| 欧美成人亚洲成人| 亚洲精品国产系列| 亚洲一级在线| 国产欧美日韩一区二区三区在线| 亚洲午夜小视频| 久久精品一区二区三区中文字幕| 国产亚洲欧美另类中文| 久久久精品久久久久| 母乳一区在线观看| 亚洲精品乱码久久久久久久久| 欧美国产三区| 亚洲午夜精品福利| 久久免费高清| 一本色道久久综合亚洲精品婷婷 | 一本久道久久综合狠狠爱| 欧美日韩一区在线视频| 午夜精品久久久久久久99水蜜桃| 久久精品一区二区| 亚洲人体一区| 国产精品婷婷| 欧美1级日本1级| 亚洲视频免费观看| 麻豆国产精品777777在线| 夜色激情一区二区| 国产一区99| 欧美久久电影| 欧美在线|欧美| 亚洲精品久久视频| 久久狠狠亚洲综合| 99国产精品| 黄色亚洲免费| 国产精品成人av性教育| 久久久久国产精品www | 亚洲欧洲一区二区在线播放 | 亚洲成色777777在线观看影院| 亚洲天堂av在线免费| 狠狠久久婷婷| 国产精品乱码一区二三区小蝌蚪| 久久麻豆一区二区| 午夜精品久久久久久久久久久久| 亚洲电影毛片| 久久久久久尹人网香蕉| 亚洲视频在线播放| 亚洲黄色在线| 国产亚洲欧洲一区高清在线观看 | 国产精品国产精品国产专区不蜜| 久久久国产精品一区二区中文| 亚洲美女区一区| 欧美激情视频一区二区三区不卡| 欧美一级日韩一级| 亚洲少妇最新在线视频| 亚洲第一成人在线| 国产一区在线看| 国产精品久久久久久久电影| 欧美大片一区二区三区| 久久九九免费视频| 欧美一区二区三区免费看| 一区二区免费在线播放| 亚洲经典在线看| 欧美激情成人在线视频| 久久午夜视频| 久久一区二区三区四区| 欧美一区二区三区四区在线观看地址 | 久久久久久网站| 性欧美8khd高清极品| 在线亚洲一区二区| a4yy欧美一区二区三区| 亚洲国产影院| 亚洲国内自拍| 最新精品在线| 亚洲精品视频在线看| 亚洲国产毛片完整版| 亚洲第一页在线| 亚洲高清不卡一区| 亚洲国产日韩精品| 亚洲国产人成综合网站| 亚洲动漫精品| 亚洲日本va午夜在线影院| 亚洲啪啪91| 亚洲精品视频中文字幕| 99精品欧美| 亚洲一区视频在线| 亚洲欧美精品在线观看| 欧美一区二视频| 久久精品女人天堂| 欧美1级日本1级| 欧美日韩国产精品| 国产精品久久波多野结衣| 国产精品一区久久久久| 国产一区视频在线观看免费| 尤物yw午夜国产精品视频| 亚洲国产mv| 一区二区三区精品在线| 亚洲一区二区三区精品在线 | 亚洲理伦电影| 亚洲欧美激情一区| 久久精品欧洲| 欧美美女视频| 国产视频一区二区在线观看| 韩国三级电影一区二区| 亚洲激情婷婷| 亚洲一区二区三区免费视频 | 亚洲无限乱码一二三四麻| 午夜精品一区二区三区在线视| 久久精品国产精品| 欧美激情一区二区三区四区| 国产精品初高中精品久久| 国产亚洲网站| 99热免费精品在线观看| 欧美亚洲网站| 亚洲国产日韩精品| 亚洲欧美日韩高清| 欧美v日韩v国产v| 国产女精品视频网站免费| 亚洲国产另类久久精品| 亚洲欧美国产精品专区久久| 久久久一二三| 中文国产一区| 免费一区二区三区| 国产精品视频xxxx| 最新国产成人在线观看| 欧美一区二区三区免费观看视频| 免费亚洲网站| 午夜国产不卡在线观看视频| 美女主播精品视频一二三四| 国产精品伦理| 日韩亚洲欧美一区二区三区| 久久国产欧美日韩精品| 99精品国产一区二区青青牛奶| 欧美在线三区| 国产精品免费看| av不卡在线观看| 欧美阿v一级看视频| 亚洲欧美日韩精品久久| 欧美日韩另类丝袜其他| 亚洲第一偷拍| 久久久人成影片一区二区三区观看| 亚洲伦理在线免费看| 免费在线视频一区| 国产综合精品| 欧美一区观看| 亚洲午夜电影在线观看| 欧美日本国产视频| 亚洲精品一区在线观看香蕉| 另类尿喷潮videofree| 欧美一区二区三区啪啪| 国产精品国产三级国产| 国产精品99久久久久久宅男| 亚洲国产二区| 老鸭窝毛片一区二区三区| 黄色一区二区三区四区| 久久人人97超碰人人澡爱香蕉| 午夜影视日本亚洲欧洲精品| 国产精品不卡在线| 亚洲综合大片69999| 一片黄亚洲嫩模| 欧美亚洲不卡| 亚洲欧美中文日韩在线| 亚洲香蕉成视频在线观看| 欧美三级乱人伦电影| 中文在线不卡视频| 在线一区亚洲| 国产欧美日韩激情| 久久久久久久久久久久久久一区|