已開始編寫簡單的切片滾動例程。我需要每個瓷磚都有一個用於動畫目的的具有幾個「框架」的紋理。由於所有瓷磚都將使用相同的圖像,因此我擔心內存使用情況。由於每個tile類使用Texture2D,這是否意味着每個tile實例都將擁有該圖像的副本,或者是Texture2D中的紋理返回到單個紋理?我有42塊瓷磚,我不想在內存中擁有42份相同的圖像,因爲這會浪費。我想要的是42個tile將一個圖像引用爲Texture2D。這是可能的還是應該以不同的方式來解決這個問題?XNA中的多個基於Texture2D的切片的內存使用情況
0
A
回答
0
在C#它是normaly使得基本的數據結構由值通有一個,這意味着值被複制到新的存儲區域。受影響的數據類型只是像string,int,float等基本類型。
但是,當你有一個對象,並把它作爲價值或作爲參數或只是進行分配到另一個變種,而不是整個對象被複制。相反,目標對象將舊對象的內存中的地址存儲爲它自己的對象,但仍然接受原始對象。
要複製或對象分配給一個新的存儲空間使用copyTo() - 方法。
0
的Texture2D引用紋理的GPU,可以在顯存舉行兩次相同的紋理,如果你想要的,但這種行爲是不可取的,因此XNA提供了內容管理,以避免重複。
如果您使用Content.Load(資產)加載資產紋理,內容將加載它並保存對新紋理2d對象的引用,所以下次加載該資產紋理時,它將返回相同的texture2d引用之前創建。
所以你只需要使用內容管理器來避免重複。
0
我不太明白的問題,但我相信你可能想看看使用紋理圖集...看看,例如http://rbwhitaker.wikidot.com/texture-atlases-2
相關問題
- 1. Pandas&Scikit:切片時的內存使用情況DataFrame
- 2. 的Python多的內存使用情況
- 3. Datagridview過多的內存使用情況
- 4. 切斷UIImage內存使用情況
- 5. 在XNA的類中使用靜態Texture2D
- 6. 如何釋放Texture2D數據/內存? XNA
- 7. XNA:嘲諷的Texture2D
- 8. XNA中的texture2D分裂
- 9. Linux中的內存使用情況R
- 10. Windows中的內存使用情況
- 11. 活動中的內存使用情況
- 12. python中的內存使用情況
- 13. gwt中的內存使用情況
- 14. SQL Server中的內存使用情況?
- 15. Spring中的內存使用情況IoC
- 16. XNA:使用Content.Load與Texture2D的子類
- 17. 的Ruby/Rails的內存使用情況
- 18. Java - 內存使用情況和jar的多個實例
- 19. 多個控件實例的內存使用情況
- 20. 用於文件下載的OutputStream的內存使用情況
- 21. (XNA)從另一個Texture2D創建一個新的Texture2D
- 22. XNA「Texture2D」合併
- 23. XNA Texture2D Dispose()+ ObjectDisposedException
- 24. Xna錯誤 - texture2d的數組
- 25. 帶Texture2D的MonoGame XNA Helloworld
- 26. 如何控制多線程中的內存使用情況?
- 27. XNA:在一個數組中存儲大量的Texture2D
- 28. Tcl_Format內存使用情況
- 29. Silverlight內存使用情況
- 30. BlackBerry內存使用情況
爲什麼不給所有的瓷磚參照同Texture2D,加載一次? – Blorgbeard 2012-02-15 17:01:13