日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Directx8 学习笔记

發(fā)布時間:2023/12/14 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Directx8 学习笔记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
DirectX8.0 入門編程 ?

DirectX8.0 入門程序

編譯一個dx8.0的窗口

程序在WINPXSP1 + VC6.0下編譯通過。

#include <d3d8.h>

LPDIRECT3D8 g_pD3D =NULL;
LPDIRECT3DDEVICE8 g_pd3dDevice =NULL;

HRESULT InitD3D(HWND hWnd) {
if(NULL ==(g_pD3D = Direct3DCreate8(D3D_SDK_VERSION)))
return E_FAIL;
D3DDISPLAYMODE d3ddm;
if(FAILED(g_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT,&d3ddm)))
return E_FAIL;

D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory(&d3dpp,sizeof(d3dpp));
d3dpp.Windowed=TRUE;
d3dpp.SwapEffect=D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat=d3ddm.Format;

if(FAILED(g_pD3D->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp,
&g_pd3dDevice))) {

return E_FAIL;
}

return S_OK;
}

VOID Cleanup() {
if(g_pd3dDevice!=NULL)
g_pd3dDevice->Release();
if(g_pD3D!=NULL)
g_pD3D->Release();
}

void Render() {
if(NULL==g_pd3dDevice)
return;
g_pd3dDevice->Clear(0,
NULL,
D3DCLEAR_TARGET,
D3DCOLOR_XRGB(0,0,255),
1.0f,
0);

g_pd3dDevice->BeginScene();
g_pd3dDevice->EndScene();
g_pd3dDevice->Present(NULL,
NULL,
NULL,
NULL);


}

LRESULT WINAPI MsgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
switch(msg) {
case WM_DESTROY:
PostQuitMessage(0);
return 0;

case WM_PAINT:
Render();
ValidateRect(hWnd,NULL);
return 0;
}
return DefWindowProc(hWnd,msg,wParam,lParam);
}

int WINAPI WinMain(HINSTANCE hInst,HINSTANCE,LPSTR,INT) {
WNDCLASSEX wc={sizeof(WNDCLASSEX),
CS_CLASSDC,
MsgProc,
0L,
0L,
GetModuleHandle(NULL),
NULL,
NULL,
NULL,
NULL,
"D3D Tutorial",
NULL};

RegisterClassEx(&wc);
HWND hWnd = CreateWindow("D3D Tutorial",
"D3D 教學(xué)",
WS_OVERLAPPEDWINDOW,
100,
100,
300,
300,
GetDesktopWindow(),
NULL,
wc.hInstance,
NULL);

if(SUCCEEDED(InitD3D(hWnd))) {
ShowWindow(hWnd,SW_SHOWDEFAULT);
UpdateWindow(hWnd);

MSG msg;
while(GetMessage(&msg,NULL,0,0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}

Cleanup();
UnregisterClass("D3D Tutorial",wc.hInstance);
return 0;

}

總結(jié)

以上是生活随笔為你收集整理的Directx8 学习笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。