|
LPDIRECT3D9 g_pD3D=0;
LPDIRECT3DDEVICE9 g_pd3dDevice=0;
bool init_d3d9()
{
//---------------------------------------------------------------------------
// d3d9 init
//---------------------------------------------------------------------------
if(NULL==(g_pD3D=Direct3DCreate9(D3D_SDK_VERSION))){
return false;
}
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.SwapEffect=D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferCount=1;
d3dpp.Flags=D3DPRESENTFLAG_LOCKABLE_BACKBUFFER;
d3dpp.Windowed=true;
d3dpp.BackBufferFormat=D3DFMT_A8R8G8B8;
d3dpp.BackBufferWidth=Form1->Panel2->Width;
d3dpp.BackBufferHeight=Form1->Panel2->Height;
if(FAILED(g_pD3D->CreateDevice(
D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,
Form1->Panel2->Handle,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,&d3dpp,&g_pd3dDevice))){
return false;
}
g_pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,true);
g_pd3dDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);
g_pd3dDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
g_pd3dDevice->SetTextureStageState(0,D3DTSS_TEXCOORDINDEX, 0);
g_pd3dDevice->SetTextureStageState(0,D3DTSS_COLORARG1, D3DTA_TEXTURE);
g_pd3dDevice->SetTextureStageState(0,D3DTSS_COLORARG2, D3DTA_DIFFUSE);
g_pd3dDevice->SetTextureStageState(0,D3DTSS_COLOROP, D3DTOP_MODULATE);
g_pd3dDevice->SetTextureStageState(0,D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
g_pd3dDevice->SetTextureStageState(0,D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
g_pd3dDevice->SetTextureStageState(0,D3DTSS_ALPHAOP, D3DTOP_MODULATE);
ShowMessage("ok");
return true;
}
제가 테스트로 쓰던거...
윤.ian 님이 쓰신 글 :
: 패널에 direct x 디바이스를 넣고 싶은데 어떻게 하나요?
|