我試圖用SetData<T>(T[], Int32, Int32)
設置一個Texture2D的數據,但不管是什麼,我把作爲變量,我總是得到的Texture2D的SetData <T>(T [],的Int32,Int32)將AccessViolationException
AccessViolationException:嘗試讀取或寫入受保護的內存。這通常表明其他內存已損壞。
我已經嘗試使用Microsoft.Xna.Color[]
和byte[]
作爲T,但同樣的錯誤發生。 SetData<T>(T[])
沒有錯誤,但我想通過使用SetData<T>(T[], Int32, Int32)
來提高性能。
我使用Visual Studio 2013與.NET 4.5.1和monogame。
對不起,我應該更清楚。我的意思是我傳遞一個'Color'數組,像這樣:'Color [] theColor = new Color [1]; theColor [0] = Color.Black; theTexture.SetData(theColor,startIndex,elementCount);'但不管我爲startIndex和elementCount放置了什麼,我總是得到錯誤。我可以使用'theTexture。SetData (colorArray);'其中colorArray是一個長度數組(theTexture.Widht * theTexture.Height)。 –
applepie9883
@ applepie9883我編輯了答覆(希望)回答你的實際問題。 – Falgantil
這幾乎是我目前正在做的,它確實有效,但我想使用'SetData(T [],Int32,Int32)',因爲我認爲這會比更新整個圖像更快。 (我必須更新每個勾號的圖像部分) –
applepie9883