Sobre el proyecto
gpucontext es una biblioteca de infraestructura compartida para el ecosistema gogpu diseñada para facilitar el uso compartido de recursos de GPU entre múltiples paquetes, evitando al mismo tiempo las dependencias circulares. Proporciona un conjunto de interfaces tipadas y utilidades que permiten que diferentes componentes interactúen con dispositivos GPU, sistemas de ventanas y características específicas de la plataforma.
Las capacidades clave incluyen:
- Gestión de Recursos de GPU: La interfaz DeviceProvider permite la inyección de dependencias de dispositivos GPU, colas y adaptadores, admitiendo el uso compartido tipado sin el uso de 'any'.
- Integración de Ventanas y Plataforma: Las interfaces WindowProvider y PlatformProvider gestionan la geometría de la ventana, el escalado de DPI, el acceso al portapapeles, las formas del cursor y la detección del tema del sistema (modo oscuro).
- Manejo de Eventos: EventSource y PointerEventSource proporcionan interfaces para la entrada de teclado, ratón y táctil, incluyendo soporte especializado para idiomas CJK a través de interfaces IME (Input Method Editor).
- Utilidades de Textura: Una interfaz Texture mínima junto con TextureUpdater y TextureRegionUpdater para cargas de texturas de GPU eficientes, ya sean completas o parciales.
- Personalización de Ventanas: Soporte de WindowChrome para ventanas sin marco, pruebas de impacto (hit testing) personalizadas para barras de título y alternancia de pantalla completa en tiempo de ejecución.
- Registro de Backend: Un Registry[T] genérico y seguro para hilos para la selección de backend basada en prioridades.
La biblioteca actúa como un puente entre los tipos de WebGPU de bajo nivel (a través de gputypes) y marcos de trabajo de nivel superior como gogpu, gg y ui.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.