Об этом проекте

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.