游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2188|回复: 2

怎样多次写VertexBuffer不覆盖原来的数据?

[复制链接]

4

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2008-9-24 09:17:00 | 显示全部楼层 |阅读模式
VertexBuffer vb = (VertexBuffer)sender;
GraphicsStream stm = vb.Lock(0, 0, 0);
CustomVertex.TransformedColored[] verts = new CustomVertex.TransformedColored[3];

verts[0].X=50;verts[0].Y=0;verts[0].Z=0.5f; verts[0].Rhw=1; verts[0].Color = System.Drawing.Color.Aqua.ToArgb();
verts[1].X=100;verts[1].Y=100;verts[1].Z=0.5f; verts[1].Rhw=1; verts[1].Color = System.Drawing.Color.Brown.ToArgb();
verts[2].X=0;verts[2].Y=100;verts[2].Z=0.5f; verts[2].Rhw=1; verts[2].Color = System.Drawing.Color.LightPink.ToArgb();

stm.Write(verts);
vb.Unlock();

stm = vb.Lock(3, 3, LockFlags.None); //第二个3改成0也不行

verts[0].X += 120;
verts[1].X += 120;
verts[2].X += 120;

stm.Write(verts);
vb.Unlock();

用SetData也不行,怎样通过设置偏移量多次写VertexBuffer而不覆盖原来的内容呢?

4

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
 楼主| 发表于 2008-9-24 09:20:00 | 显示全部楼层

Re: 怎样多次写VertexBuffer不覆盖原来的数据?

LockFlags用NoOverWrite也不行。。。。

4

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
 楼主| 发表于 2008-9-24 09:25:00 | 显示全部楼层

Re:怎样多次写VertexBuffer不覆盖原来的数据?

晕,原来这个Lock的也是按byte算得。。。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-21 05:58

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表