¿Cómo se trabaja el dibujo con el dibujo en Onrender en el trabajo detrás de la escena?

StackOverflow https://stackoverflow.com/questions/9519504

  •  14-11-2019
  •  | 
  •  

Pregunta

Estoy pintando una "imagen" bastante compleja (que a menudo necesita ser refrescada y tiene muchos primitivos de dibujo) en una ventana de WPF primordiando el método de ANRENDER de un sielemento separado y usando el dibujoContext para dibujar directamente las primitivas.

Mi pregunta es, ¿qué sucede exactamente detrás de las escenas?Por lo que entiendo, esto no está utilizando el modo retenido (que sería el caso si estuviera colocando formas en el control).Estoy haciendo la pregunta porque estoy ansioso por que dibujar así, simplemente usará GDI + en la parte posterior que trae con sus propios problemas (por ejemplo, las cosas de impresión dibujadas con GDI + ya lo han costado tiempo y esfuerzo).

¿Hay buenos recursos (además de los recursos obvios de MSDN que no han parecido poder iluminarme?

¿O tengo todo lo que está completamente equivocado?

Gracias por las respuestas que me apuntan en la dirección correcta. [editar: ortografía]

¿Fue útil?

Solución

You are still using retained mode, you're just not using high level objects (no animating objects, etc..), but instead simple points, lines, etc..

I've dug into the sources of DrawingContext and from what I can tell, it seems to be pushing all those DrawXYZ commands into a queue using some low-level wizardry (the queue itself consists of arbitrarily sized structs, each denoting a certain command).

WPF then processes this queue on another thread, denoted the rendering thread in this question. I haven't verified this, but I'm guessing that WPF uses the StreamingContext for all its drawing.

Furthermore, WPF is using DirectX for rendering, as can be seen by this bogpost, which takes a better look at what WPF actually does.

I hope this clarifies things for you.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top