¿Es Graphics.DrawImage demasiado lento para imágenes más grandes?

Actualmente estoy trabajando en un juego y deseo tener un menú principal con imagen de fondo.

Sin embargo, encuentro el método.Graphics.DrawImage() realmente lento. He hecho alguna medida. Supongamos que MenuBackground es mi imagen de recurso con una resolución de 800 x 1200 píxeles. Lo dibujaré en otro mapa de bits de 800 x 1200 (primero renderizo todo a un mapa de bits del búfer, luego lo escalo y finalmente lo dibujo en la pantalla; así es como manejo la posibilidad de que haya varias resoluciones de jugadores. Pero no debería afectar De cualquier manera, ver el siguiente párrafo).

Así que he medido el siguiente código:

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");

El resultado es bastante sorprendente para mí - elStopwatch mide algo entre40 - 50 milliseconds. Y como la imagen de fondo no es lo único que se puede dibujar, el menú completo tarda más de 100 ms en visualizarse, lo que implica un retraso observable.

He intentado dibujarlo en el objeto Graphics dado por el evento Paint, pero el resultado fue30 - 40 milliseconds - No ha cambiado mucho.

Entonces, ¿significa eso?Graphics.DrawImage() ¿Es inutilizable para dibujar imágenes más grandes? Si es así, ¿qué debo hacer para mejorar el rendimiento de mi juego?

Respuestas a la pregunta(4)

Su respuesta a la pregunta