SetStreamSource的解惑

本文介绍了DirectX中的SetStreamSource函数,详细解析了参数含义:StreamNumber用于指定设备数据流序号,通常为0;pStreamData是顶点缓存;OffsetInBytes表示绘制起始点相对于顶点缓存的偏移量;Stride指单个顶点大小。通过示例代码和总结,阐述了该函数如何将顶点缓存与数据流绑定并指定绘图起始位置。
摘要由CSDN通过智能技术生成

SetStreamSource的解惑

HRESULT SetStreamSource(

 [in]  UINT StreamNumber,

 [in]  IDirect3DVertexBuffer9  *pStreamData,

 [in]  UINT OffsetInBytes,

 [in]  UINT Stride

);


这个是DirectX中SetStreamSource函数的原型声明,文档上说的很简单,就是把顶点缓存和设备数据流绑定,剩下的就不大清楚了。

1 参数解释

StreamNumber:这个是设备数据流的序号,一般程序是用的都是单流,此时设置参数为0。如果想试用多个数据流,就得使用顶点声明,其实FVF最终也会在内部转换为顶点声明。

pStreamData:这个是顶点缓存。

OffsetInBytes:这个偏移量是相对顶点缓存的偏移量,绘制函数才绘制的时候也是从相对于顶点缓存的此偏移量开始计算的。所以它并不是顶点缓存的起始位置相对于数据流起始位置的偏移量。后面的程序可以解释。

Stride:这个跨度自然就是单个顶点的大小了,绘图函数也是根据这个跨度进行取点的。

2 示例代码

bool InitObject()
{
         intnVertexNum = 6;
         HRESULT hRe = NULL;
         hRe = g_pDevice->CreateVertexBuffer(nVertexNum*sizeof(D3DVertex),0,
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值