19,468
社区成员
发帖
与我相关
我的任务
分享
struct CUSTOMVERTEX3
{
FLOAT x, y, z;
DWORD color;
FLOAT u, v;
};
#define D3DFVF_CUSTOMVERTEX3 (D3DFVF_XYZ|D3DFVF_DIFFUSE |D3DFVF_TEX1)
// 关闭光照
g_pd3dDevice->SetRenderState( D3DRS_LIGHTING, FALSE );
//加载纹理我擦!
if( FAILED( D3DXCreateTextureFromFileEx( g_pd3dDevice, "111.bmp",800,600,1,0, D3DFMT_UNKNOWN, D3DPOOL_MANAGED,D3DX_DEFAULT,D3DX_DEFAULT, NULL,NULL,NULL,
&g_pTexture_bj) ) )
{
MessageBox(NULL, "Could not find 111.bmp", "fail", MB_OK);
return E_FAIL;
}
HRESULT InitVB()
{
CUSTOMVERTEX vertices[] =
{
{ 0.0f,0.0f,0.0f,D3DCOLOR_XRGB(255,255,255),0.0f, 0.0f},
{ 800.0f,0.0f,0.0f,D3DCOLOR_XRGB(255,255,255),1.0f,0.0f},
{ 0.0f,600.0f,0.0f,D3DCOLOR_XRGB(255,255,255),0.0f,1.0f},
{ 0.0f,600.0f,0.0f,D3DCOLOR_XRGB(255,255,255),0.0f,1.0f},
{ 800.0f,0.0f,0.0f,D3DCOLOR_XRGB(255,255,255),1.0f,0.0f},
{ 800.0f,600.0f,0.0f,D3DCOLOR_XRGB(255,255,255),1.0f,1.0f},
};
//顶点缓冲区
g_pd3dDevice->CreateVertexBuffer(
6*sizeof(CUSTOMVERTEX),
0,
D3DFVF_CUSTOMVERTEX,
D3DPOOL_DEFAULT,
&g_pVB,
NULL
);
void* pVertices; //把顶点写进顶点缓冲区
g_pVB->Lock( 0, sizeof(vertices), (void**)&pVertices, 0 );
memcpy( pVertices, vertices, sizeof(vertices) );
g_pVB->Unlock();
}
//正交投影
D3DXMatrixOrthoLH(&proj, 1280, 720, 0.1f, 1000.0f);
g_pd3dDevice->SetTransform(D3DTS_PROJECTION, &proj);
//显示部分
g_pd3dDevice->SetTexture(0, g_pTex01 );
g_pd3dDevice->SetFVF(D3DFVF_CUSTOMVERTEX );
g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX) );
g_pd3dDevice->DrawPrimitive(D3DPT_TRIANGLELIST,0,2);
这些都是关键部分