Sobre o projeto

gpucontext é uma biblioteca de infraestrutura compartilhada para o ecossistema gogpu, projetada para facilitar o compartilhamento de recursos de GPU entre múltiplos pacotes, evitando dependências circulares. Ela fornece um conjunto de interfaces tipadas e utilitários que permitem que diferentes componentes interajam com dispositivos GPU, sistemas de janelas e recursos específicos de plataforma. As principais capacidades incluem: - Gerenciamento de Recursos de GPU: A interface DeviceProvider permite a injeção de dependência de dispositivos GPU, filas e adaptadores, suportando compartilhamento tipado sem o uso de 'any'. - Integração de Janela e Plataforma: As interfaces WindowProvider e PlatformProvider lidam com a geometria da janela, escala de DPI, acesso à área de transferência, formatos de cursor e detecção de tema do sistema (modo escuro). - Manipulação de Eventos: EventSource e PointerEventSource fornecem interfaces para entrada de teclado, mouse e toque, incluindo suporte especializado para idiomas CJK via interfaces IME (Input Method Editor). - Utilitários de Textura: Uma interface Texture minimalista, juntamente com TextureUpdater e TextureRegionUpdater para uploads eficientes de texturas de GPU, totais ou parciais. - Customização de Janela: Suporte a WindowChrome para janelas sem moldura, teste de colisão (hit testing) personalizado para barras de título e alternância de tela cheia em tempo de execução. - Registro de Backend: Um Registry[T] genérico e thread-safe para seleção de backend baseada em prioridade. A biblioteca atua como uma ponte entre tipos de baixo nível do WebGPU (via gputypes) e frameworks de nível superior como gogpu, gg e ui.