XNA Content.Load()内存使用情况

时间:2010-08-19 18:12:41

标签: c# windows graphics xna

在XNA中,当调用Content.Load()来加载资源时,如果将相同的资源加载到多个对象中(即可以有许多对象的纹理)你是否获得了每个对象的副本,或者系统内部是否为每个内存引用相同的内存?

我意识到在每个项目中都有一个单独的Texture2D对象可能是一个内存问题。

3 个答案:

答案 0 :(得分:8)

当您尝试再次加载该对象时,ContentManager将缓存该对象并返回对该对象的引用。

答案 1 :(得分:3)

是修改纹理数据将改变引用该数据的所有纹理。

如果您需要多个,请复制原始文件并加载不同的版本。

答案 2 :(得分:3)

您需要创建一个新的Texture2D对象,并使用SetData方法将更改的数据复制到新纹理中:
http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.graphics.texture2d.setdata.aspx