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

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

我參與的團隊

最新隨筆

搜索

  •  

積分與排名

  • 積分 - 373511
  • 排名 - 67

最新評論

閱讀排行榜

評論排行榜

13行,#define?D3DFVF_CUSTOMVERTEX?(D3DFVF_XYZRHW?|?D3DFVF_DIFFUSE)是使用變換過的頂點格式,意思是在執行渲染流水線的過程中,不作頂點變換。換言之,可以直接用屏幕象素的單位大小來定義頂點的坐標。再換言之,就是說用這種頂點格式,可以簡單的實現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?設備
??9 D3DCAPS9?g_Caps? = ? {(D3DDEVTYPE) 0 } ;???? // ?D3D?的帽子
?10 LPDIRECT3DVERTEXBUFFER9?g_pVB? = ? 0 ;???? // ?頂點緩沖區
?11
?12 // ?頂點定義,使用變換過的頂點坐標格式
?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 // ?初始化頂點緩沖區
?27 HRESULT?InitVB()
?28 {
?29 ???? // ?創建頂點緩沖區
?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 ???? // ?鎖定緩沖區
?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?設備
?55 HRESULT?InitD3D(HWND?hWnd)
?56 {
?57 ???? // ?創建?D3D?Driver
?58 ???? if (NULL? == ?(g_pD3D? = ?Direct3DCreate9(D3D_SDK_VERSION)))
?59 ???? {
?60 ????????D3DErr( " 無法創建Direct3D9設備 " );
?61 ???????? return ?E_FAIL;
?62 ????}

?63 ???? // ?獲取當前顯示模式
?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 ???? // ?填充參數
?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?帽子時發生錯誤 " );
?88 ???????? return ?E_FAIL;
?89 ????}

?90
?91 ???? // ?創建D3D設備
?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( " 創建D3D設備時發生錯誤 " );
103 ???????? return ?E_FAIL;
104 ????}

105
106 ???? // ?創建頂點緩沖區
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 ???? // ?創建窗口
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?設備
173 ???? if (SUCCEEDED(InitD3D(hWnd)))
174 ???? {
175 ???????? // ?消息處理循環
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| 亚洲精品视频啊美女在线直播| 欧美一区三区三区高中清蜜桃| 亚洲视频综合| 亚洲欧美日韩成人| 亚洲欧美日韩综合| 久久精品主播| 免费日韩视频| 欧美精品v日韩精品v韩国精品v | 亚洲香蕉视频| 羞羞色国产精品| 久久综合色88| 亚洲日本在线观看| 99riav国产精品| 亚洲欧美日韩中文在线制服| 久久国产夜色精品鲁鲁99| 久久久综合激的五月天| 欧美激情一区二区三区全黄| 国产精品欧美激情| 亚洲电影av在线| 午夜欧美精品| 亚洲国产成人高清精品| 亚洲专区国产精品| 欧美 日韩 国产精品免费观看| 欧美日本在线看| 国产一区二区三区四区在线观看| 亚洲精品一线二线三线无人区| 亚洲欧美日韩综合| 欧美大胆成人| 欧美一区二区三区视频免费| 欧美人与禽猛交乱配| 国内精品久久久久久影视8| 亚洲精品影视| 老牛嫩草一区二区三区日本| 中文一区在线| 欧美另类极品videosbest最新版本| 国产情侣久久| 在线亚洲一区观看| 亚洲第一成人在线| 久久精品久久99精品久久| 国产精品av久久久久久麻豆网| 亚洲福利视频一区二区| 欧美在线播放一区| 一个色综合导航| 欧美日韩国产大片| 亚洲精品社区| 亚洲黄色有码视频| 欧美成人免费全部| 亚洲人成亚洲人成在线观看图片| 久久久久久久综合色一本| 亚洲欧美视频| 国产日韩欧美a| 久久国产黑丝| 香蕉成人伊视频在线观看| 国产精品日韩| 欧美一区二区黄| 亚洲欧美日韩中文在线制服| 国产精品揄拍500视频| 欧美一区二区黄| 午夜精品一区二区三区在线视| 国产精品美女主播| 亚洲一区二区毛片| 欧美极品一区| 亚洲精品影院| 亚洲日本电影| 欧美日韩在线播放三区| 在线视频你懂得一区二区三区| 亚洲欧洲在线免费| 欧美日韩国产bt| 亚洲中字黄色| 性色av一区二区三区在线观看| 国产日产欧产精品推荐色| 欧美在线综合视频| 欧美在线视频一区二区三区| 韩日精品视频| 免费亚洲一区二区| 欧美日本一道本在线视频| 亚洲免费视频观看| 亚洲视频在线一区| 黄色精品一区二区| 亚洲国产精品福利| 欧美私人啪啪vps| 久久久www成人免费无遮挡大片 | 欧美日韩国产影院| 亚洲欧美日韩一区| 久久免费视频网| 一本久久a久久免费精品不卡| 一区二区欧美在线观看| 国产婷婷一区二区| 亚洲第一网站免费视频| 国产精品区免费视频| 免费看精品久久片| 欧美日韩在线不卡一区| 久久久久久9999| 欧美激情综合在线| 久久激情视频| 欧美美女视频| 久久综合一区| 国产精品日本一区二区| 牛牛国产精品| 国产女优一区| 亚洲人永久免费| 国产亚洲成人一区| 日韩视频在线一区| 伊人一区二区三区久久精品| 亚洲欧洲日韩在线| 国产一区深夜福利| 中文网丁香综合网| 亚洲精品中文字幕有码专区| 亚洲一区二区三区视频播放| 亚洲欧洲综合| 久久福利毛片| 欧美亚洲一区二区在线| 欧美日韩高清不卡| 欧美激情一区二区三区| 国产一区清纯| 午夜精品久久久99热福利| 亚洲午夜羞羞片| 欧美区亚洲区| 亚洲黄色成人网| 91久久久国产精品| 久久久在线视频| 久久99伊人| 99re6热在线精品视频播放速度| 欧美在线精品免播放器视频| 亚洲午夜精品国产| 欧美成人按摩| 欧美电影资源| 亚洲第一精品电影| 久久国产婷婷国产香蕉| 久久精品青青大伊人av| 国产精品揄拍500视频| 亚洲一级在线观看| 亚洲一区二区三区三| 欧美欧美在线| 99精品99| 欧美亚洲专区| 国产美女一区二区| 欧美在线亚洲| 欧美99久久| 亚洲精品一区在线观看| 欧美另类高清视频在线| 最新精品在线| 亚洲午夜精品久久| 国产精品毛片va一区二区三区| 99国产精品视频免费观看| 亚洲小少妇裸体bbw| 国产精品免费区二区三区观看| 亚洲影音先锋| 久久先锋资源| 最新亚洲电影| 欧美日韩国产一级| 亚洲一区二区三区欧美 | 亚洲日本在线观看| 亚洲永久精品国产| 国模精品一区二区三区| 久久综合婷婷| 一区二区日本视频| 久久久91精品国产一区二区三区 | 久久久久综合一区二区三区| 韩国在线一区| 欧美日韩国产成人在线观看| 亚洲永久字幕| 欧美国产大片| 亚洲男人的天堂在线| 国产欧美日韩视频一区二区| 久久久久久久一区| 亚洲美女淫视频| 久久久久一本一区二区青青蜜月| 亚洲电影毛片| 国产精品夜夜嗨| 欧美国产精品日韩| 小嫩嫩精品导航| 亚洲人体偷拍| 老司机精品久久| 亚洲一区精彩视频| 亚洲国产精品成人综合| 国产精品男gay被猛男狂揉视频| 久久久人成影片一区二区三区| 一本一本a久久| 亚洲成色精品| 久久女同精品一区二区| 宅男在线国产精品| 亚洲国产精品第一区二区三区| 国产精品一区二区女厕厕| 欧美精品久久久久久久久久| 久久精品成人| 亚洲视频久久| 日韩天堂在线观看| 欧美激情一区二区三区高清视频| 久久久www成人免费无遮挡大片| 欧美jizz19性欧美| 性欧美videos另类喷潮| 99pao成人国产永久免费视频| 韩国一区二区三区美女美女秀| 欧美网站在线| 欧美日韩一区免费| 欧美日本韩国一区| 欧美激情一区二区在线| 麻豆精品视频在线|