Pregunta

Estoy buscando un marco de gráficos rasterizados para Mac OS X.Específicamente, quiero algún tipo de vista que pueda manipular (al menos conceptualmente) como una matriz de píxeles.Mi programa generará los datos de píxeles mediante programación.

QuickDraw se ajusta muy bien a esa descripción, pero está en desuso.Hasta donde puedo decir, no hay nada equivalente en Core Graphics.¿Me estoy perdiendo de algo?

Un marco C simple sería preferible a uno Objective-C, pero no soy demasiado quisquilloso.

¿Fue útil?

Solución

QD quedó obsoleto porque no hay forma de implementarlo de manera eficiente con la generación actual de UI y hardware de GPU totalmente compuestos.Por esa razón no hay nada parecido a QD en el sistema, y ​​no lo habrá.Permitir el acceso directo a la tienda de respaldo obliga, en el mejor de los casos, a muchas más transacciones de bus hacia y desde la GPU y, en el peor de los casos, puede impedir que se cargue una textura en la propia tarjeta y, en algunos casos, puede provocar fallos de software.

Está claro que a veces hay razones por las que las personas necesitan acceso a nivel de píxel a una tienda de respaldo, por lo que existen algunos mecanismos para hacerlo, pero no existen métodos realmente convenientes y si puede encontrar alguna manera de evitarlo, debería hacerlo.Si no puede evitarlo, puede usar CoreGraphics para crear un contexto de mapa de bits usando CGBitmapContextCrear donde tiene acceso a la tienda de respaldo y puede manipular la tienda de respaldo directamente.No es sencillo trabajar con él y es lento.

Otros consejos

¿Qué hay de dividir el ancho y la altura de la vista por sí mismo, a continuación, dibujar cuadrados ancho x alto? Se podía usar un NSPoint y aumentarla por uno hasta que llega a la altura x anchura.

El simple Directmedia Layer tiene acceso píxel. Puede ser más de matar, ya que es una biblioteca de portabilidad, sino a toda la API es sencillo en C. No sé lo que se utiliza como una API utiliza MacOS subyacente. Lo mejor es consultar la página web para ver si es adecuado para sus propósitos.

Como alternativa, se puede usar OpenGL texturas.

La mejor manera de hacer esto es Core Image. Está diseñado para trabajar con píxeles, y es muy rápido, ya que le permite hacer el trabajo de la tarjeta gráfica.

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