Lib/DirectX
Indexed Primitive 구현과 Alpha Blending 사용
by KingCat
2014. 9. 22.
// 알파 블렌딩 설정
g_pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
g_pd3dDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
g_pd3dDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
HRESULT InitIB()
{
// Index Buffer 설정
MYINDEX indices[] =
{
{0, 1, 2},
{3, 2, 1}
};
if(FAILED(g_pd3dDevice->CreateIndexBuffer(2*sizeof(MYINDEX),
0,
D3DFMT_INDEX16,
D3DPOOL_DEFAULT,
&g_pIB,
NULL)))
{
return E_FAIL;
}
VOID* pIndices;
if(FAILED(g_pIB->Lock(0, sizeof(indices), (void**)&pIndices, 0)))
return E_FAIL;
memcpy(pIndices, indices, sizeof(indices));
g_pIB->Unlock();
return S_OK;
}
g_pd3dDevice->SetIndices(g_pIB);
g_pd3dDevice->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 0, 4, 0, 2); // Index Buffer로 그린다.