Articulo de referencia

GDK

GDK ( GIMP Drawing Kit) es una biblioteca que actúa como un contenedor de las funciones de bajo nivel proporcionadas por los sistemas de ventanas y gráficos subyacentes. GDK se ...

GDK ( GIMP Drawing Kit) es una biblioteca que actúa como un contenedor de las funciones de bajo nivel proporcionadas por los sistemas de ventanas y gráficos subyacentes. GDK se encuentra entre el servidor de visualización y la biblioteca GTK , y se encarga de 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 está licenciado bajo la Licencia Pública General Reducida de GNU (LGPL).

Arquitectura de software

GDK contiene back-ends para X11 , Wayland , Broadway ( HTTP ), Quartz y GDI y se basa en Cairo para la representación. Su nuevo gráfico de escena (canvas) está en desarrollo y 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 datos, la función de arrastrar y soltar y la conversión de formatos de píxeles. GDK es una capa intermedia que separa a 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 que GTK funcione en otras plataformas es portar GDK a la capa gráfica del sistema operativo subyacente. Por lo tanto, los puertos de 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 características utilizadas únicamente por los administradores de ventanas no están expuestas en GDK.

GDK te permite hacer cosas de bajo nivel, como por ejemplo " transferir 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 utilizarla en lugar de, por ejemplo, X, su software se procesará automáticamente en el Framebuffer de Linux y en Windows.

Tener soporte para OpenGL (o OpenGL ES ) en GDK facilita un control ligeramente mejor del flujo de gráficos ; OpenGL es adecuado para componer datos texturizados, pero totalmente inadecuado para dibujar.

Reloj de marco Gdk

GdkFrameClock se agregó en GTK 3.8 [2]

Mientras que las aplicaciones GTK siguen estando controladas 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 algo suceda y luego llama a la subrutina apropiada cuando sucede, GdkFrameClock agrega un mecanismo adicional, que le da un "pulso" a la aplicación. Le dice a la aplicación cuándo actualizar y volver a pintar una ventana. [3] La frecuencia de pulso 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 vinculaba con un par de Canvases diferentes .

  • https://wiki.gnome.org/Attic/ProjectRidley/CanvasOverview
    • https://wiki.gnome.org/Attic/ProjectRidley/CanvasOverview/Canvases
  • https://wiki.gnome.org/Projects/GooCanvas

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 integrados (lienzo) , 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 escena para GTK. GSK no se ha integrado más con GDK (que también es parte de GTK), sino que se guarda en su propio directorio.

Sistemas de ventanas

GDK contiene back-ends para un par de sistemas de ventanas , a saber, para los protocolos X11 y Wayland , para Quartz y GDI , e incluso para el motor del Protocolo de Transferencia de Hipertexto (HTTP) Broadway. [ cita requerida ]

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

En la actualidad no existe ningún back-end para KMS . [ cita requerida ]

Para iniciar una aplicación y forzar a esta instancia a utilizar un determinado sistema de ventanas, se 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 cargar imágenes y manipular el búfer de píxeles. La biblioteca ofrece funciones para cargar y guardar imágenes, escalar y componer rápidamente pixbufs, cargar animaciones simples (es decir, GIF animados) y renderizar el 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 ArtPixBuf admite. 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 contenedor de libart . Desde entonces, se ha eliminado la dependencia de libart y gdk-pixbuf se ha fusionado con la base de código GTK+ 2.0. Por lo tanto, 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 convertirse en una biblioteca independiente, después de haber sido incluida como parte de GTK+ desde gtk+ 2.0. Esto se hizo como preparación para la transición a GTK+ 3.

  • https://git.gnome.org/browse/gdk-pixbuf/

La primera versión independiente fue 2.22 el 21 de septiembre de 2010, su desarrollo comenzó con 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]

Véase también

  • Desorden

Referencias

  1. ^ Migración de GTK+ 2.x a GTK+ 3: uso de cairo para dibujar
  2. ^ "Reloj de marco Gdk".
  3. ^ Larsson, Alexander (4 de noviembre de 2013). "El modelo de dibujo Gtk moderno".
  4. ^ Blog de Alberto Ruiz
  5. ^ Propuesta de escenografía de Havoc Pennington
  6. ^ "El kit de gráficos de escena GTK+". 29 de julio de 2014.
  7. ^ "Grafeno". 2 de mayo de 2014.
  8. ^ "agrega un backend experimental para mir".
  9. ^ GIMP - Una breve (y antigua) historia de GIMP
  • Código GDK de la versión GTK+ 3.19.0
  • El modelo de dibujo moderno de Gtk – Alexander Larsson, 4 de noviembre de 2013
  • Descripción general de GTK y sus bibliotecas Archivado el 12 de marzo de 2019 en Wayback Machine - El Proyecto GTK
  • https://git.gnome.org/browse/gtk-web/plain/images/architecture.svg
Obtenido de "https://es.wikipedia.org/w/index.php?title=GDK&oldid=1247695433"