Gio UI - GUI đa nền tảng cho Go
(gioui.org)- Đây là thư viện giúp lập trình viên Go tạo GUI chế độ tức thời nhắm tới nhiều hệ điều hành và WebAssembly
- Hỗ trợ phạm vi nền tảng rộng, gồm Linux, macOS, Windows, Android, iOS, FreeBSD, OpenBSD và WebAssembly
- Được thiết kế để giảm phụ thuộc, đồng thời tận dụng các thư viện nền tảng cho quản lý cửa sổ, nhập liệu và vẽ bằng GPU
- Phần kết xuất bao gồm trình kết xuất vector Pathfinder dựa trên OpenGL ES và Direct3D 11, và đang chuyển sang trình kết xuất compute shader dựa trên piet-gpu
- Kết xuất văn bản và hình dạng bằng đường viền thay vì bake thành texture, hỗ trợ hoạt ảnh, vẽ với biến đổi và tính độc lập với độ phân giải pixel
Mục tiêu và phạm vi hỗ trợ của Gio
- Gio là thư viện để tạo GUI hiệu quả, mượt mà và dễ di chuyển bằng Go
- Các nền tảng được hỗ trợ gồm Linux, macOS, Windows, Android, iOS, FreeBSD, OpenBSD, WebAssembly
- Có bản demo WebAssembly để trình diễn nhanh; để chạy cần trình duyệt hỗ trợ WebAssembly
- Có thể xem mã nguồn ví dụ tại Kitchen project
Cài đặt và lộ trình học
- Gio được thiết kế với mục tiêu ít phụ thuộc
- Có thể kiểm tra các phụ thuộc cần thiết trong tài liệu cài đặt theo từng nền tảng
- Sau khi cài đặt, có thể bắt đầu với tài liệu Learn và Hello World
- Showcase bao gồm godcr, Tailscale, gotraceui, Sointu, Protonet và các dự án khác
Công nghệ kết xuất
- Gio kết hợp tính linh hoạt của mô hình đồ họa chế độ tức thời với công nghệ đồ họa 2D hiện đại
- Trình kết xuất vector dựa trên Pathfinder project và được triển khai trên OpenGL ES cùng Direct3D 11
- Trình kết xuất đang chuyển sang một trình kết xuất dựa trên compute shader hiệu quả hơn, được xây dựng trên piet-gpu
- Văn bản và hình dạng không được bake sẵn thành ảnh texture mà được kết xuất chỉ bằng đường viền
- Hỗ trợ hoạt ảnh hiệu quả
- Phù hợp với việc vẽ đã biến đổi
- Có thể duy trì tính độc lập với độ phân giải pixel
Mô hình tài trợ
- Kinh phí phát triển Gio được huy động thông qua tài trợ
- Nếu thấy dự án hữu ích, có thể cân nhắc tài trợ cho dự án Gio trên OpenCollective hoặc tài trợ trực tiếp cho nhà phát triển
Chưa có bình luận nào.