Pregunta

El título habla por sí mismo ... He intentado encontrar otra pregunta como esta, pero debe haberla perdido si existe. Estoy buscando cualquier cosa, desde una biblioteca central que reemplace GAPI a un contenedor .net ... Es para construir una buena interfaz de usuario para que no se necesite 3D ...

¿Fue útil?

Solución

Las clases de System.Drawing en .NET son mucho más poderosas de lo que la gente cree. Lo único que falta (que en realidad es realmente importante en gráficos 2D) es la capacidad de leer y escribir píxeles individuales. Esto es técnicamente posible utilizando los métodos GetPixel y SetPixel en el objeto Bitmap, pero estos métodos son inimaginablemente lentos.

Afortunadamente, existe una alternativa súper rápida que puede implementar llamando a LockBits en un mapa de bits y luego accediendo directamente a los datos de bytes del mapa de bits. He usado esto con buenos resultados. De hecho, pasé la última semana creando un efecto de lente ojo de pez completamente en .NET (sin bibliotecas ni llamadas PInvoke).

Este JPEG es un poco malo, pero muestra lo que es posible usando solo .NET:

texto alternativo http://www.freeimagehosting.net/uploads/5fdd250b21.jpg

Otros consejos

En mi opinión, sugeriría obtener el frame buffer de alguna manera y dibujarlo directamente si es posible o usar D3DM o usar los servicios de dibujo provistos por Native Platform (GDI) a través de API como DrawGradient (), etc. desde coredll.dll y desde usted está en WM puede aprovechar aygshell.dll para dibujar widgets.

Aquí hay algunos enlaces ...

1) Uso del relleno de degradado desde la red de puntos
2) Uso del relleno de degradado directamente
3) Otras funciones GDI nativas

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