このプロジェクトについて

gpucontextは、循環依存を避けながら複数のパッケージ間でGPUリソースの共有を容易にするために設計された、gogpuエコシステム向けの共有インフラストラクチャライブラリです。型定義されたインターフェースとユーティリティのセットを提供し、異なるコンポーネントがGPUデバイス、ウィンドウシステム、およびプラットフォーム固有の機能と相互作用することを可能にします。 主な機能は以下の通りです: - GPUリソース管理:DeviceProviderインターフェースにより、GPUデバイス、キュー、アダプターの依存性注入が可能になり、「any」を使用せずに型安全な共有をサポートします。 - ウィンドウおよびプラットフォーム統合:WindowProviderおよびPlatformProviderインターフェースが、ウィンドウのジオメトリ、DPIスケーリング、クリップボードアクセス、カーソル形状、およびシステムテーマ(ダークモード)の検出を処理します。 - イベント処理:EventSourceおよびPointerEventSourceは、キーボード、マウス、タッチ入力のインターフェースを提供し、IME(入力メソッドエディタ)インターフェースを介したCJK言語の特殊なサポートを含みます。 - テクスチャユーティリティ:最小限のTextureインターフェースに加え、効率的なGPUテクスチャの全更新または部分更新を行うためのTextureUpdaterおよびTextureRegionUpdaterを提供します。 - ウィンドウのカスタマイズ:フレームレスウィンドウ用のWindowChromeサポート、タイトルバーのカスタムヒットテスト、および実行時のフルスクリーン切り替えをサポートします。 - バックエンドレジストリ:優先度に基づいたバックエンド選択のための、汎用的でスレッドセーフなRegistry[T]を提供します。 このライブラリは、低レベルのWebGPU型(gputypes経由)と、gogpu、gg、uiなどの高レベルフレームワークとの間のブリッジとして機能します。