프로젝트 소개

gpucontext는 순환 종속성을 방지하면서 여러 패키지 간에 GPU 리소스 공유를 용이하게 하도록 설계된 gogpu 생태계용 공유 인프라 라이브러리입니다. 이 라이브러리는 다양한 컴포넌트가 GPU 장치, 윈도잉 시스템 및 플랫폼별 기능과 상호 작용할 수 있도록 하는 일련의 타입 지정 인터페이스와 유틸리티를 제공합니다. 주요 기능은 다음과 같습니다: - GPU 리소스 관리: DeviceProvider 인터페이스를 통해 GPU 장치, 큐 및 어댑터의 의존성 주입이 가능하며, 'any'를 사용하지 않고 타입 지정 공유를 지원합니다. - 창 및 플랫폼 통합: WindowProvider 및 PlatformProvider 인터페이스가 창 기하 구조, DPI 스케일링, 클립보드 액세스, 커서 모양 및 시스템 테마 감지(다크 모드)를 처리합니다. - 이벤트 처리: EventSource 및 PointerEventSource는 키보드, 마우스 및 터치 입력 인터페이스를 제공하며, IME(입력기) 인터페이스를 통해 CJK 언어에 대한 특화된 지원을 포함합니다. - 텍스처 유틸리티: 효율적인 전체 또는 부분 GPU 텍스처 업로드를 위한 최소한의 Texture 인터페이스와 TextureUpdater 및 TextureRegionUpdater를 제공합니다. - 창 커스터마이징: 프레임리스 창을 위한 WindowChrome 지원, 타이틀 바에 대한 사용자 정의 히트 테스트 및 런타임 전체 화면 전환 기능을 제공합니다. - 백엔드 레지스트리: 우선순위 기반 백엔드 선택을 위한 제네릭하며 스레드 안전한 Registry[T]를 제공합니다. 이 라이브러리는 저수준 WebGPU 타입(gputypes를 통해)과 gogpu, gg, ui와 같은 고수준 프레임워크 사이의 가교 역할을 합니다.