Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有办法在XNA中锁定VertexBuffers?_C#_Xna_Msdn - Fatal编程技术网

C# 有没有办法在XNA中锁定VertexBuffers?

C# 有没有办法在XNA中锁定VertexBuffers?,c#,xna,msdn,C#,Xna,Msdn,查看MSDN文档,我无法找到锁定VertexBuffers的方法,以便在设备上更改它们的数据。这在XNA中是否可行?您有许多选项可用于修改XNA中顶点缓冲区的内容: VertexBuffer有一个成员。在任何可能激活的情况下,您只能在绘图之外安全地使用此选项(因此,最好始终在绘图之外使用此选项) 类似于VertexBuffer,但设置其内容时速度更快。但是,图形设备很容易丢失,必须处理这种情况。也来看看 (和版本)。这样做的优点是不会影响谓词平铺,也不会导致命令缓冲区刷新少量原语 有关MSD

查看MSDN文档,我无法找到锁定VertexBuffers的方法,以便在设备上更改它们的数据。这在XNA中是否可行?

您有许多选项可用于修改XNA中顶点缓冲区的内容:

  • VertexBuffer
    有一个成员。在任何可能激活的情况下,您只能在
    绘图
    之外安全地使用此选项(因此,最好始终在绘图之外使用此选项)

  • 类似于
    VertexBuffer
    ,但设置其内容时速度更快。但是,图形设备很容易丢失,必须处理这种情况。也来看看

  • (和版本)。这样做的优点是不会影响谓词平铺,也不会导致命令缓冲区刷新少量原语


有关MSDN的更多信息,请参阅。在XNA论坛上也可能值得一读。

非常感谢。这是很多好信息。还有一个问题:在VertexBuffer外部绘图上调用SetData是否总是安全的?@blachniet:是的(实际上这是命令缓冲区,但在简单的情况下,是的,外部绘图)。你听起来像是来自DirectX背景:如果你需要绝对确定XNA在幕后做什么,你可以通过PIX运行游戏。