Esta es la biblioteca de gráficos básicos para todas nuestras pantallas, proporcionando un conjunto común de primitivas gráficas (puntos, líneas, círculos, etc.). Debe emparejarse con una biblioteca específica de hardware para cada dispositivo de visualización que llevamos (para manejar las funciones de nivel inferior).
Adafruit invierte tiempo y recursos que proporcionan este código de código abierto, ¡admite hardware Adafruit y de código abierto comprando productos de AdaFruit!
Escrito por Limor Fried/Ladyada para Adafruit Industries. Licencia BSD, verifique la licencia.txt para obtener más información. Todo el texto anterior debe incluirse en cualquier redistribución.
Los lanzamientos recientes de Arduino IDE incluyen el Administrador de la Biblioteca para una fácil instalación. De lo contrario, para descargar, haga clic en el botón Descargar zip, sin compresión y cambiar el nombre de la carpeta sin comprimir AdaFruit_GFX. Confirme que la carpeta AdaFruit_GFX contiene AdaFruit_GFX.CPP y AdaFruit_GFX.H. Coloque la carpeta de biblioteca AdaFruit_GFX su arduinosketchfolder/ bibliotecas/ carpeta. Es posible que deba crear la subcarpeta de las bibliotecas si es su primera biblioteca. Reinicie el ide.
También deberá instalar la última biblioteca de Adafruit Busio. Busque "Adafruit Busio" en el Administrador de la biblioteca, o instale a mano desde https://github.com/adafruit/adafruit_busio
Image2Code: esta es una práctica utilidad Java GUI para convertir un archivo BMP en el código de matriz necesario para mostrar la imagen con la función DrawBitMap. Consulte el código en el repositorio de GitHub de Ehubin: https://github.com/ehubin/adafruit-gfx-library/tree/master/img2code
Función DrawXBitMap: puede usar el editor de fotos GIMP para guardar un archivo .xbm y usar la matriz guardada en el archivo para dibujar un mapa de bits con la función drawxbitmap. Vea la solicitud de extracción aquí para más detalles: #31
La carpeta 'Fonts' contiene fuentes de mapa de bits para su uso con AdaFruit_GFX reciente (1.1 y posterior). Para usar una fuente en su Sketch Arduino, #include el archivo .h correspondiente y la dirección de aprobación de GFXFont Struct a SetFont (). Pase NULL para volver a la fuente de mapa de bits de espacio fijo 'clásico'.
La carpeta 'FontConvert' contiene una herramienta de línea de comandos para convertir las fuentes TTF en formato de encabezado AdaFruit_GFX.
También puede usar esta herramienta GFX FONT CustomSer ( versión web aquí ) para personalizar o corregir la salida de FontConvert, y crear fuentes con solo un subconjunto de caracteres para optimizar el tamaño.
La directiva principal es mantener la compatibilidad con los bocetos de Arduino existentes: ¡muchos están alojados en otro lugar y no rastrean los cambios aquí, algunos están impresos y nunca se pueden cambiar! Esta "pequeña" biblioteca ha crecido orgánicamente con el tiempo y, a veces, nos pintamos en un rincón de diseño y solo tenemos que vivir con ella o agregar progresivamente más sin azúcar.
Estamos agradecidos por las contribuciones de todos, pero no se fusionarán las solicitudes de extracción de lo siguiente:
Formatos de fuentes adicionales o incompatibles (ver Directiva Prime arriba). Ya hay dos formatos y el código es bastante hinchado allí. Esto también crea pasivos para herramientas y documentación. Lo que es perfecto, pero hace el trabajo.
Formatos de mapa de bits adicionales o incompatibles, por razones similares. Se está desordenando.
Agregar color de fondo a las fuentes personalizadas para borrar el contenido de la pantalla anterior. Los únicos métodos aceptables son borrar el área con un RECT relleno, o (para evitar parpadeo) dibujar texto en un GFXCANVAS1 y copiar para detectar con DrawBitMap () con color de fondo. Esto es a propósito y por diseño. Hemos discutido esto. Los glifos pueden superponerse.
Desplazamiento, ya sea basado en hardware o software. Dichas implementaciones tienden a depender de las características específicas del hardware (no universalmente disponibles), el acceso de lectura al FrameBuffer (ídem) de la pantalla y/o la adición de funciones virtuales en GFX que deben agregarse en cada subclase, de las cuales hay muchas. La API GFX está en gran medida "establecida" en este punto y esto es solo una limitación con la que vivimos ahora.
No reformate el código en aras del código de reformateo. La gran "diferencia visual" resultante hace que sea imposible desenredar las correcciones de insectos reales de las líneas simplemente reorganizadas. Clang-Format será el árbitro final.
Por favor, no más PRS que drogan el pentagrama. Cualquier funciones de dibujo extrañamente específicas puede ir en su propio código y no es útil en un contexto de biblioteca.
Si debe tener una de estas características, considere crear una bifurcación con las características requeridas para su proyecto ... Es fácil mantener sincronizado con el código aguas arriba.