Graphics.DrawImage слишком медленный для больших изображений?

Я сейчас работаю над игрой и хочу, чтобы у меня было главное меню с фоновым изображением.

Тем не менее, я нахожу методGraphics.DrawImage() очень медленно Я сделал некоторые измерения. Предположим, что MenuBackground - это изображение моего ресурса с разрешением 800 x 1200 пикселей. Я нарисую его на другом растровом изображении 800 x 1200 (сначала я рендерирую все в растровое изображение буфера, затем масштабирую его и, наконец, рисую его на экране - так я поступаю с возможностью разрешения нескольких плееров. Но это не должно " Это никак не повлияет, см. следующий параграф).

Итак, я измерил следующий код:

Stopwatch SW = new Stopwatch();
SW.Start();

// First let's render background image into original-sized bitmap:

OriginalRenderGraphics.DrawImage(Properties.Resources.MenuBackground,
   new Rectangle(0, 0, Globals.OriginalScreenWidth, Globals.OriginalScreenHeight));

SW.Stop();
System.Windows.Forms.MessageBox.Show(SW.ElapsedMilliseconds + " milliseconds");

Результат меня удивляет -Stopwatch измеряет что-то между40 - 50 milliseconds, А поскольку фоновое изображение не единственное, что нужно нарисовать, отображение всего меню занимает около 100 мс, что приводит к заметному отставанию.

Я попытался нарисовать его в объект Graphics, заданный событием Paint, но результат был30 - 40 milliseconds - мало что изменилось.

Так значит ли это, чтоGraphics.DrawImage() не подходит для рисования больших изображений? Если так, что я должен сделать, чтобы улучшить производительность моей игры?

Ответы на вопрос(4)

Ваш ответ на вопрос