본문 바로가기
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로 그린다.


'Lib > DirectX' 카테고리의 다른 글

DrawPrimitive  (0) 2014.09.22
Depth Buffer에 관하여  (0) 2014.09.22
DirectX 내부에서의 텍스쳐 합성  (0) 2013.12.11
회전하는 입방체 만들기  (0) 2011.11.09
Triangle 그리기  (0) 2011.11.09