WPF y las tarjetas graficas

 

Cuando trabajamos con WPF y aplicamos toda la potencia grafica que tiene, tenemos que tener cuidado con los equipos donde se va a distribuir la aplicación, porque una buena aplicación puede quedar en nada si el equipo donde se instala no es capaz de “moverla” adecuadamente, aparte de tener un buen procesador y memoria uno de los elementos mas importantes es la tarjeta grafica del equipo.

WPF categoriza en tres tipos las tarjetas graficas para decidir como va a renderizar la aplicación, para ello tiene en cuenta factores como:

  • Cantidad de RAM de la tarjeta grafica
  • Si soporta pixel shaders
  • Si soporta vertex shaders
  • ….

Basado en estos factores establece la clasificación de la tarjeta grafica en:

 

Rendering Tier 0: La tarjeta grafica no provee ninguna aceleración hardware, esto corresponde a a una versión menor a DirectX 7.0 y renderizara la aplicación por software perdiendo bastante rendimiento

Rendering Tier 1:La tarjeta grafica nos provee de aceleración hardware parcial. Corresponde a una versión de DirectX mayor que 7 pero menor que 9.

Rendering Tier 2:La tarjeta grafica nos provee de aceleración hardware. Corresponde a una versión de DirectX igual o superior a 9. Vamos a tener el mejor rendimiento para nuestra aplicación WPF

 

Podemos averiguar por código a que grupo pertenece la tarjeta grafica del PC que esta ejecutando nuestra aplicación y tomar medidas como sacar mensajes de advertencia, cambiar los estilos por unos mas sencillos…

Para ello utilizamos la clase System.Windows.Media.RenderCapability y podemos coger a que clase pertenece nuestra tarjeta

   1:   int renderingTier = (RenderCapability.Tier >> 16);
   2:   if (renderingTier == 0)  
   3:      { ... }
   4:   else if (renderingTier == 1) 
   5:      { ... }

 

Para mas información podéis consultar este enlace de MSDN http://msdn2.microsoft.com/en-gb/library/ms742196.aspx

Un comentario sobre “WPF y las tarjetas graficas”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *