stringtranslate.com

GDK

GDK ( GIMP Drawing Kit) es una biblioteca que actúa como contenedor de las funciones de bajo nivel proporcionadas por los sistemas de gráficos y ventanas subyacentes. GDK se encuentra entre el servidor de visualización y la biblioteca GTK y maneja la representación básica , como primitivas de dibujo, gráficos rasterizados (mapas de bits), cursores , fuentes , así como eventos de ventana y funcionalidad de arrastrar y soltar .

Al igual que GTK Scene Graph Kit (GSK), GDK es parte de GTK y tiene la licencia GNU Lesser General Public License (LGPL).

Arquitectura de software

GDK contiene back-ends para X11 , Wayland , Broadway ( HTTP ), Quartz y GDI y depende de Cairo para el renderizado. Su nuevo gráfico de escena (lienzo) está en progreso, su llegada debería anunciar GTK 4.0.

GTK se implementa sobre una capa de abstracción llamada GDK, lo que libera a GTK de preocupaciones de bajo nivel como la recopilación de entradas, arrastrar y soltar y conversión de formato de píxeles. GDK es una capa intermedia que separa GTK de los detalles del sistema de ventanas.

GDK es una parte importante de la portabilidad de GTK. Dado que GLib ya proporciona funcionalidad multiplataforma de bajo nivel , todo lo que se necesita para hacer que GTK se ejecute en otras plataformas es portar GDK a la capa de gráficos del sistema operativo subyacente. Por lo tanto, los puertos GDK a la API de Windows y Quartz son los que permiten que las aplicaciones GTK se ejecuten en Windows y macOS , respectivamente.

A partir de GTK+ 2.8, GDK admite Cairo , que debe usarse con GTK+ 3 en lugar de las funciones de dibujo de GDK. [1]

GDK es una capa intermedia que aísla GTK de los detalles del sistema de ventanas . GDK es una envoltura delgada alrededor de Xlib . El sistema X Window viene con una biblioteca de bajo nivel llamada Xlib . Casi todas las funciones en GDK son una envoltura muy delgada alrededor de una función Xlib correspondiente; pero parte de la complejidad (y funcionalidad) de Xlib está oculta, para simplificar la programación y hacer que GDK sea más fácil de portar a otros sistemas de ventanas, como Wayland o Microsoft Windows. La funcionalidad oculta de Xlib rara vez será de interés para los programadores de aplicaciones; por ejemplo, muchas funciones utilizadas únicamente por los administradores de ventanas no están expuestas en GDK.

GDK te permite hacer cosas de bajo nivel, como por ejemplo " transmitir este mapa de píxeles a la pantalla".

GDK proporciona una capa que es mucho más portátil que, por ejemplo, el protocolo X, sin sacrificar la accesibilidad de bajo nivel que proporcionan sistemas como X. El verdadero poder de esta abstracción es que si elige usarla en lugar de decir X, su software se renderizará automáticamente en Framebuffer de Linux y Windows.

Tener soporte OpenGL (u OpenGL ES ) en GDK facilita un control ligeramente mejor de la canalización de gráficos ; OpenGL es muy adecuado para componer datos texturizados, pero totalmente inadecuado para dibujar.

GdkFrameReloj

GdkFrameClock se agregó en GTK 3.8 [2]

Mientras que las aplicaciones GTK permanecen impulsadas por el bucle principal (cf. bucle de eventos Glib ), lo que significa que la aplicación está inactiva dentro de este bucle principal la mayor parte del tiempo y simplemente espera a que suceda algo y luego llama a la subrutina apropiada cuando sucede, GdkFrameClock agrega un mecanismo adicional, que le da un "pulso" a la aplicación. Le indica a la aplicación cuándo actualizar y volver a pintar una ventana. [3] La frecuencia de pulsaciones se puede sincronizar con la frecuencia de actualización del monitor.

Kit de gráficos de escena GTK

En su historia, GDK contenía y estaba vinculado con un par de lienzos diferentes .

Los desarrolladores también estaban considerando nuevas direcciones para la biblioteca, incluida la eliminación de componentes API obsoletos y la adición de un sistema de gráficos de escena (lienzo) integrado , similar a la biblioteca de gráficos Clutter , integrando efectivamente GTK con OpenGL y Vulkan . [4] [5]

GTK+ Scene Graph Kit (GSK) se lanzó como parte de GTK+ 3.90 en marzo de 2017. Es la API de renderizado y gráficos de escenas para GTK. GSK no se ha integrado más con GDK (que también forma parte de GTK), pero se mantiene en su propio directorio.

Sistemas de ventanas

GDK contiene back-ends para un par de sistemas de ventanas , concretamente para los protocolos X11 y Wayland , para Quartz y GDI , e incluso para el motor Broadway del Protocolo de transferencia de hipertexto (HTTP). [ cita necesaria ]

Con el lanzamiento de GNOME 3.16 en marzo de 2015, GDK obtuvo un back-end experimental para el protocolo del servidor de visualización Mir . [8] El protocolo del servidor de visualización Mir es un producto de Canonical para su distribución Ubuntu de Linux, que pretenden competir con el protocolo del servidor de visualización Wayland; Hasta ahora, está implementado sólo en Ubuntu.

Actualmente, no existe ningún back-end para KMS . [ cita necesaria ]

Para iniciar una aplicación y forzar que esta instancia utilice un determinado sistema de ventanas, especifica la variable GDK_BACKEND :
GDK_BACKEND=wayland gnome-calculator
GDK_BACKEND=wayland CLUTTER_BACKEND=wayland cheese

gdk-pixbuf

gdk-pixbuf es un conjunto de herramientas para la carga de imágenes y la manipulación del búfer de píxeles. La biblioteca proporciona funciones de carga y guardado de imágenes, escalado y composición rápidos de pixbufs, carga de animaciones simples (es decir, GIF animados) y renderización del búfer de imágenes libart en una instancia de GdkDrawable.

gdk-pixbuf tiene una API bastante grande.

La estructura fundamental de la biblioteca gdk-pixbuf es GdkPixbuf, una estructura de datos privada y opaca que refleja muchos de los mismos conceptos que admite ArtPixBuf. De hecho, la mayoría de los campos de datos privados de GdkPixbuf tienen los mismos nombres y tipos de datos que los correspondientes en ArtPixBuf. Esta similitud se remonta a los primeros días cuando gdk-pixbuf era un envoltorio para libart . Desde entonces, la dependencia de libart se eliminó y gdk-pixbuf se fusionó con el código base GTK+ 2.0. Como tal, los días de gdk-pixbuf como biblioteca independiente se limitan a la versión GNOME 1 .

Con el lanzamiento de GTK+ 2.22 el 23 de septiembre de 2010, gdk-pixbuf volvió a ser una biblioteca independiente, después de haber sido enviada como parte de GTK+ desde gtk+ 2.0. Esto se hizo en preparación para la transición a GTK+ 3.

La primera versión independiente fue la 2.22 el 21 de septiembre de 2010, su desarrollo comenzó con la 2.21.3 el 23 de junio de 2010.

Historia

GDK se desarrolló originalmente en el sistema X Window para el editor de gráficos rasterizados GIMP . [9]

Ver también

Referencias

  1. ^ Migración de GTK+ 2.x a GTK+ 3: use cairo para dibujar
  2. ^ "GdkFrameReloj".
  3. ^ Larsson, Alejandro (4 de noviembre de 2013). "El modelo de dibujo Gtk moderno".
  4. ^ Blog de Alberto Ruiz
  5. ^ Propuesta de gráfico de escena de Havoc Pennington
  6. ^ "El kit de gráficos de escenas GTK +". 29 de julio de 2014.
  7. ^ "Grafeno". 2014-05-02.
  8. ^ "agregar un backend experimental para mir".
  9. ^ GIMP: una breve (y antigua) historia de GIMP

enlaces externos