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

李錦俊(mybios)的blog

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

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

公告

QQ:30743734
EMain:mybios@qq.com

常用鏈接

留言簿(16)

我參與的團(tuán)隊

最新隨筆

搜索

  •  

積分與排名

  • 積分 - 373516
  • 排名 - 67

最新評論

閱讀排行榜

評論排行榜

13行,#define?D3DFVF_CUSTOMVERTEX?(D3DFVF_XYZRHW?|?D3DFVF_DIFFUSE)是使用變換過的頂點格式,意思是在執(zhí)行渲染流水線的過程中,不作頂點變換。換言之,可以直接用屏幕象素的單位大小來定義頂點的坐標(biāo)。再換言之,就是說用這種頂點格式,可以簡單的實現(xiàn)Overlay(不知道怎么翻譯這個單詞)

??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 ;???? // ?頂點緩沖區(qū)
?11
?12 // ?頂點定義,使用變換過的頂點坐標(biāo)格式
?13 #define ?D3DFVF_CUSTOMVERTEX?(D3DFVF_XYZRHW?|?D3DFVF_DIFFUSE)
?14 struct ?CUSTOMVERTEX
?15 {
?16 ????D3DXVECTOR4?position;
?17 ????D3DCOLOR?color;
?18 }
;
?19
?20 // ?錯誤記錄
?21 void ?D3DErr(String?strMsg)
?22 {
?23 ????MessageBox( 0 ?,?strMsg.c_str()?,? " 錯誤 " ?,?MB_OK);
?24 }

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

?47 ???? else
?48 ???? {
?49 ???????? return ?E_FAIL;
?50 ????}

?51 ???? return ?S_OK;
?52 }

?53
?54 // ?初始化?D3D?設(shè)備
?55 HRESULT?InitD3D(HWND?hWnd)
?56 {
?57 ???? // ?創(chuàng)建?D3D?Driver
?58 ???? if (NULL? == ?(g_pD3D? = ?Direct3DCreate9(D3D_SDK_VERSION)))
?59 ???? {
?60 ????????D3DErr( " 無法創(chuàng)建Direct3D9設(shè)備 " );
?61 ???????? return ?E_FAIL;
?62 ????}

?63 ???? // ?獲取當(dāng)前顯示模式
?64 ????D3DDISPLAYMODE?d3ddm;
?65 ???? if (FAILED(g_pD3D -> GetAdapterDisplayMode(D3DADAPTER_DEFAULT?,? & d3ddm)))
?66 ???? {
?67 ????????D3DErr( " 無法獲取D3D顯示器模式 " );
?68 ???????? return ?E_FAIL;
?69 ????}

?70
?71 ???? // ?獲取窗口的大小
?72 ????RECT?rect;
?73 ????GetClientRect(hWnd?,? & rect);
?74
?75 ???? // ?填充參數(shù)
?76 ????D3DPRESENT_PARAMETERS?d3dpp;
?77 ????memset( & d3dpp?,? 0 ?,? sizeof (d3dpp));
?78 ????d3dpp.BackBufferFormat? = ?d3ddm.Format;
?79 ????d3dpp.BackBufferWidth? = ?rect.right? - ?rect.left;
?80 ????d3dpp.BackBufferHeight? = ?rect.bottom? - ?rect.top;
?81 ????d3dpp.SwapEffect? = ?D3DSWAPEFFECT_DISCARD;
?82 ????d3dpp.Windowed? = ? true ;
?83
?84 ???? // ?獲取帽子
?85 ???? if (FAILED(g_pD3D -> GetDeviceCaps(D3DADAPTER_DEFAULT?,?D3DDEVTYPE_HAL?,? & g_Caps)))
?86 ???? {
?87 ????????D3DErr( " 獲取D3D?帽子時發(fā)生錯誤 " );
?88 ???????? return ?E_FAIL;
?89 ????}

?90
?91 ???? // ?創(chuàng)建D3D設(shè)備
?92 ???? if (FAILED(g_pD3D -> CreateDevice(D3DADAPTER_DEFAULT
?93 ????????,?D3DDEVTYPE_HAL
?94 ????????,?hWnd
?95 ???????? // ?檢查是否支持硬件頂點處理
?96 ????????,?g_Caps.DevCaps? & ?D3DDEVCAPS_HWTRANSFORMANDLIGHT? ? ?D3DCREATE_HARDWARE_VERTEXPROCESSING?:?D3DCREATE_SOFTWARE_VERTEXPROCESSING
?97 ????????,? & d3dpp
?98 ????????,? & g_pd3dDevice
?99 ????????)
100 ????????))
101 ???? {
102 ????????D3DErr( " 創(chuàng)建D3D設(shè)備時發(fā)生錯誤 " );
103 ???????? return ?E_FAIL;
104 ????}

105
106 ???? // ?創(chuàng)建頂點緩沖區(qū)
107 ???? if (FAILED(InitVB()))
108 ???????? return ?E_FAIL;
109 ???? return ?S_OK;
110 }

111
112 // ?清空所有占用的資源
113 void ?CleanUp()
114 {
115 ????SAFE_RELEASE(g_pVB);
116 ????SAFE_RELEASE(g_pd3dDevice);
117 ????SAFE_RELEASE(g_pD3D);
118 }

119
120 // ?渲染場景
121 void ?Render()
122 {
123 ???? if (g_pd3dDevice)
124 ???? {
125 ???????? // ?清空場景
126 ????????g_pd3dDevice -> Clear( 0 ?,? 0 ?,?D3DCLEAR_TARGET?,?D3DCOLOR_XRGB( 0 ?,? 0 ?,? 255 )?,? 1 ?,? 0 );
127 ???????? // ?開始渲染
128 ???????? if (SUCCEEDED(g_pd3dDevice -> BeginScene()))
129 ???????? {
130 ????????????g_pd3dDevice -> SetRenderState(D3DRS_LIGHTING?,?FALSE);
131 ????????????g_pd3dDevice -> SetStreamSource( 0 ?,?g_pVB?,? 0 ?,? sizeof (CUSTOMVERTEX));
132 ????????????g_pd3dDevice -> SetFVF(D3DFVF_CUSTOMVERTEX);
133 ????????????g_pd3dDevice -> DrawPrimitive(D3DPT_TRIANGLELIST?,? 0 ?,? 1 );
134 ????????????g_pd3dDevice -> EndScene();
135 ????????}

136 ???????? // ?顯示
137 ????????g_pd3dDevice -> Present( 0 ?,? 0 ?,? 0 ?,? 0 );
138 ????}

139 }

140
141 // ?消息處理
142 LRESULT?WINAPI?MsgProc(HWND?hWnd?,?UINT?message?,?WPARAM?wParam?,?LPARAM?lParam)
143 {
144 ???? switch (message)
145 ???? {
146 ???? case ?WM_DESTROY:
147 ????????CleanUp();
148 ????????PostQuitMessage( 0 );
149 ???????? break ;
150 ????}

151 ???? return ?::DefWindowProc(hWnd,?message?,?wParam?,?lParam);
152 }

153
154 // ?Windows?入口
155 int ?WINAPI?WinMain(IN?HINSTANCE?hInstance,?IN?HINSTANCE?hPrevInstance,?IN?LPSTR?lpCmdLine,?IN? int ?nShowCmd?)
156 {
157 ????WNDCLASS?wndClass;
158 ????memset( & wndClass?,? 0 ?,? sizeof (wndClass));
159 ????wndClass.hInstance? = ?hInstance;
160 ????wndClass.lpszClassName? = ? " Tutorial02 " ;
161 ????wndClass.lpfnWndProc? = ?MsgProc;
162 ????RegisterClass( & wndClass);
163
164 ???? // ?創(chuàng)建窗口
165 ????HWND?hWnd? = ?CreateWindow( " Tutorial02 " ?,? " Tutorial02?Vertex?Buffer " ?
166 ????????,?WS_OVERLAPPEDWINDOW?,? 0 ?,? 0 ?,? 512 ?, 512 ?,?GetDesktopWindow()
167 ????????,? 0 ?,?wndClass.hInstance?,? 0 );
168 ???? // ?顯示窗口
169 ????ShowWindow(hWnd?,?SW_SHOWDEFAULT);
170 ????UpdateWindow(hWnd);
171
172 ???? // ?初始化?D3D?設(shè)備
173 ???? if (SUCCEEDED(InitD3D(hWnd)))
174 ???? {
175 ???????? // ?消息處理循環(huán)
176 ????????MSG?msg;
177 ????????memset( & msg?,? 0 ?,? sizeof (msg));
178 ???????? while (msg.message? != ?WM_QUIT)
179 ???????? {
180 ???????????? if (PeekMessage( & msg?,? 0 ?,? 0 ?,? 0 ?,?PM_REMOVE))
181 ???????????? {
182 ????????????????TranslateMessage( & msg);
183 ????????????????DispatchMessage( & msg);
184 ????????????}

185 ???????????? else
186 ???????????? {
187 ????????????????Render();
188 ????????????}

189 ????????}

190 ????}

191 ???? // ?清空場景
192 ????CleanUp();
193
194 ????UnregisterClass( " Tutorial02 " ?,?wndClass.hInstance);
195
196 ???? return ? 0 ;
197 }

?

posted on 2006-11-16 10:47 李錦俊(mybios) 閱讀(714) 評論(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>
            国产精品网站在线| 亚洲国产二区| 欧美日韩一区在线观看| 午夜伦欧美伦电影理论片| 欧美天天视频| 久久综合五月| 欧美日韩一区二区三区| 国产专区欧美精品| 久久亚洲美女| 亚洲精品永久免费| 毛片av中文字幕一区二区| 精品成人a区在线观看| 久久se精品一区二区| 亚洲区第一页| 久久久999| 国产日韩欧美一区| 久久久久久国产精品mv| 亚洲欧美日韩精品| 国产美女扒开尿口久久久| 很黄很黄激情成人| 欧美一乱一性一交一视频| 久久久国产一区二区三区| 欧美一区视频| 亚洲欧美日韩第一区| 一区二区三区欧美成人| 狠狠综合久久| 欧美成人嫩草网站| 激情综合在线| 久久久久久穴| 欧美在线视频一区| 国产综合自拍| 亚洲免费视频网站| 欧美在线日韩在线| 先锋亚洲精品| 欧美色道久久88综合亚洲精品| 亚洲三级影院| 亚洲图片欧洲图片av| 亚洲午夜激情免费视频| 国产精品久久激情| 亚洲另类春色国产| 亚洲视频一区二区| 在线观看视频日韩| 中文高清一区| 亚洲免费观看高清完整版在线观看熊 | 在线成人免费观看| 蘑菇福利视频一区播放| 久久一日本道色综合久久| 91久久国产综合久久91精品网站| 欧美成在线视频| 欧美视频一区二区三区…| 欧美波霸影院| 国产日韩在线视频| 欧美日韩在线观看视频| 欧美日韩在线亚洲一区蜜芽 | aa亚洲婷婷| 亚洲欧美日韩天堂| 亚洲黄色三级| 亚洲在线一区二区三区| 永久免费毛片在线播放不卡| 亚洲精品久久久久久久久| 国产精品视频999| 亚洲三级免费| 亚洲女女女同性video| 91久久久亚洲精品| 亚洲欧美激情精品一区二区| 亚洲国产综合在线看不卡| 一区二区三区国产精华| 亚洲国产高清aⅴ视频| 黄色亚洲在线| 国产精品国产成人国产三级| 99精品欧美一区二区蜜桃免费| 国产精品二区二区三区| 久久一区二区三区四区五区| 欧美日韩一级黄| 免费日韩成人| 国产精品久久久久av免费| 欧美xx69| 韩国三级电影久久久久久| 91久久久在线| 黄网动漫久久久| 亚洲精品国产精品国自产观看浪潮 | 99精品视频网| 亚洲精品1234| 久久精品日韩一区二区三区| 亚洲综合欧美日韩| 欧美日韩国产精品成人| 亚洲国产日韩综合一区| 伊人激情综合| 久久精品色图| 久久精品亚洲乱码伦伦中文| 一区二区精品在线观看| 国产欧美日韩精品丝袜高跟鞋| 性伦欧美刺激片在线观看| 久久国产精品99国产精| 午夜伦欧美伦电影理论片| 欧美精品在线视频| 亚洲国产成人精品久久久国产成人一区| 欧美午夜剧场| 99精品国产福利在线观看免费| 亚洲电影免费观看高清完整版在线观看 | 久久婷婷国产综合尤物精品| 小嫩嫩精品导航| 久久精品视频在线播放| 国产欧美日韩一区二区三区| 亚洲欧美另类中文字幕| 午夜日韩视频| 国产日产亚洲精品| 午夜一区二区三视频在线观看| 欧美一区二区三区四区在线观看地址| 久久久久国色av免费看影院 | 999亚洲国产精| 一区二区亚洲精品国产| 日韩视频在线一区| 一区二区三区高清| 欧美区一区二区三区| 日韩图片一区| 午夜精品久久99蜜桃的功能介绍| 国产精品日韩久久久| 亚洲欧美日韩国产精品| 久久精品人人做人人爽| 有码中文亚洲精品| 欧美国产在线电影| 艳女tv在线观看国产一区| 欧美一区2区视频在线观看| 韩国精品久久久999| 欧美成人免费va影院高清| 99热这里只有精品8| 久久av一区二区三区漫画| 精品999久久久| 欧美国产日韩免费| 亚洲一区日本| 久久久夜精品| 日韩亚洲精品电影| 国产乱人伦精品一区二区| 久久国产精品久久w女人spa| 亚洲国产成人在线播放| 国产日韩欧美夫妻视频在线观看| 久久九九免费视频| 一区二区三区视频观看| 国产农村妇女毛片精品久久麻豆 | 麻豆视频一区二区| 99在线精品视频| 国产婷婷97碰碰久久人人蜜臀| 久久阴道视频| 亚洲视频在线观看视频| 久久躁狠狠躁夜夜爽| 一区二区欧美亚洲| 国内精品国产成人| 欧美日韩视频免费播放| 久久99伊人| 在线亚洲美日韩| 亚洲国产精品一区二区www在线| 在线观看一区| 国产精品网站一区| 欧美精品不卡| 久久久一区二区| 亚洲视频观看| 亚洲人屁股眼子交8| 久久久亚洲国产天美传媒修理工 | 久久久蜜桃一区二区人| 宅男精品视频| 亚洲激情一区二区| 麻豆精品91| 久久精品国产99国产精品澳门| 亚洲夜间福利| 国产欧美精品在线观看| 欧美日韩另类字幕中文| 久久综合九色九九| 免费不卡在线观看| 久久久精彩视频| 亚洲欧美成人一区二区在线电影| 亚洲激情成人| 亚洲国产欧美另类丝袜| 好看不卡的中文字幕| 国产精品一区二区你懂的| 欧美日韩免费高清一区色橹橹| 免播放器亚洲一区| 久久精品一二三| 欧美一站二站| 性色av一区二区三区在线观看| 久久一区亚洲| 美国十次成人| 久久夜色精品一区| 久久亚洲一区二区三区四区| 久久久久九九视频| 久久久7777| 亚洲一区视频| 久久久亚洲国产天美传媒修理工| 一区二区三区**美女毛片| 亚洲视频你懂的| 一个色综合av| 国产精品免费一区二区三区观看| 久久久国产精品一区二区中文| 欧美日韩一卡二卡| 日韩视频不卡| 亚洲自拍另类| 在线中文字幕一区| 午夜视频在线观看一区二区三区| 一区二区三区日韩精品| 欧美激情视频一区二区三区在线播放 |