Об этом проекте
gpucontext — это общая инфраструктурная библиотека для экосистемы gogpu, разработанная для облегчения совместного использования ресурсов GPU между несколькими пакетами при одновременном избежании циклических зависимостей. Она предоставляет набор типизированных интерфейсов и утилит, которые позволяют различным компонентам взаимодействовать с GPU-устройствами, оконными системами и специфическими функциями платформ.
Ключевые возможности включают:
- Управление ресурсами GPU: интерфейс DeviceProvider обеспечивает внедрение зависимостей для GPU-устройств, очередей и адаптеров, поддерживая типизированный обмен данными без использования 'any'.
- Интеграция с окнами и платформами: интерфейсы WindowProvider и PlatformProvider обрабатывают геометрию окон, масштабирование DPI, доступ к буферу обмена, формы курсора и определение системной темы (темный режим).
- Обработка событий: EventSource и PointerEventSource предоставляют интерфейсы для ввода с клавиатуры, мыши и сенсорного ввода, включая специализированную поддержку языков CJK через интерфейсы IME (Input Method Editor).
- Утилиты для текстур: минимальный интерфейс Texture вместе с TextureUpdater и TextureRegionUpdater для эффективной полной или частичной загрузки текстур на GPU.
- Настройка окон: поддержка WindowChrome для окон без рамок, пользовательское тестирование попадания (hit testing) для заголовков окон и переключение полноэкранного режима во время выполнения.
- Реестр бэкендов: универсальный, потокобезопасный Registry[T] для выбора бэкенда на основе приоритетов.
Библиотека служит мостом между низкоуровневыми типами WebGPU (через gputypes) и высокоуровневыми фреймворками, такими как gogpu, gg и ui.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.