使用定点缓存进行绘制

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
// 定义顶点结构:
struct ColorVertex
{
ColorVertex()
{
}

ColorVertex(
float x, float y, float z, D3DCOLOR c)
{
_x
= x;
_y
= y;
_z
= z;
_color
= c;
}
float _x, _y, _z;
D3DCOLOR _color;

static const DWORD FVF;
};
const DWORD ColorVertex::FVF = D3DFVF_XYZ | D3DFVF_DIFFUSE;

// 声明一个顶点缓存接口
IDirect3DVertexBuffer9 * triangle = 0 ;


// 创建顶点缓存
Device -> CreateVertexBuffer(
3 * sizeof (ColorVertex),
D3DUSAGE_WRITEONLY,
ColorVertex::FVF,
D3DPOOL_MANAGED,
& triangle,
0
);

// 访问顶点缓存内容
ColorVertex * colorVertices;
triangle
-> Lock( 0 , 0 , ( void ** ) & triangle, 0 );
colorVertices[
0 ] = ColorVertex( - 1.0f , 0.0f , 2.0f , D3DCOLOR_XRGB( 255 , 0 , 0 ));
colorVertices[
0 ] = ColorVertex( 0.0f , 1.0f , 2.0f , D3DCOLOR_XRGB( 0 , 255 , 0 ));
colorVertices[
0 ] = ColorVertex( 1.0f , 0.0f , 2.0f , D3DCOLOR_XRGB( 0 , 0 , 255 ));
triangle
-> Unlock();


// 绘制
Device -> SetFVF(ColorVertex::FVF);
Device
-> SetStreamSource( 0 , triangle, 0 , sizeof (ColorVertex));
D3DXMatrixTranslation(
& WorldMatrix, - 1.25f , 0.0f , 0.0f );
Device
-> SetTransform(D3DTS_WORLD, & WorldMatrix);
Device
-> SetRenderState(D3DRS_SHADEMODE, D3DSHADE_FLAT);
Device
-> DrawPrimitive(D3DPT_TRIANGLELIST, 0 , 1 );

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值