Đồ hoạ
Bảng này liệt kê tất cả cấu phần phần mềm trong nhóm androidx.graphics
.
Cấu phần phần mềm | Bản phát hành ổn định | Bản phát hành dùng thử | Bản phát hành beta | Bản phát hành alpha |
---|---|---|---|---|
graphics-core | 1.0.3 | - | - | - |
graphics-path | 1.0.1 | - | - | - |
graphics-shapes | 1.0.1 | - | 1.1.0-beta01 | - |
Khai báo phần phụ thuộc
Để thêm một phần phụ thuộc trên Graphics, bạn phải thêm kho lưu trữ Google Maven vào dự án. Đọc nội dung Kho lưu trữ Maven của Google để biết thêm thông tin.
Thêm các phần phụ thuộc cho cấu phần phần mềm bạn cần trong tệp build.gradle
cho ứng dụng hoặc mô-đun:
Groovy
dependencies { implementation "androidx.graphics:graphics-core:1.0.3" implementation "androidx.graphics:graphics-path:1.0.1" implementation "androidx.graphics:graphics-shapes:1.1.0-beta01" }
Kotlin
dependencies { implementation("androidx.graphics:graphics-core:1.0.3") implementation("androidx.graphics:graphics-path:1.0.1") implementation("androidx.graphics:graphics-shapes:1.1.0-beta01") }
Để biết thêm thông tin về các phần phụ thuộc, hãy xem bài viết Thêm phần phụ thuộc vào bản dựng.
Ý kiến phản hồi
Ý kiến phản hồi của bạn có thể giúp chúng tôi cải thiện Jetpack. Hãy cho chúng tôi biết nếu bạn phát hiện lỗi mới hoặc có ý tưởng cải thiện thư viện này. Vui lòng xem các lỗi hiện có trong thư viện này trước khi báo một lỗi mới. Bạn có thể thêm lượt bình chọn cho lỗi hiện có bằng cách nhấp vào nút dấu sao.
Xem tài liệu về Công cụ theo dõi lỗi để biết thêm thông tin.
Không có ghi chú phát hành cho cấu phần phần mềm này.
Phiên bản đồ hoạ 1.1
Phiên bản 1.1.0-beta01
Ngày 30 tháng 7 năm 2025
Phát hành androidx.graphics:graphics-*:1.1.0-beta01
. Phiên bản 1.1.0-beta01 bao gồm các thay đổi sau.
Thay đổi về API
- Các dự án được phát hành bằng Kotlin 2.0 yêu cầu sử dụng KGP 2.0.0 trở lên (Idb6b5)
- Thêm
mingwX64
, js và các mục tiêu biên dịch wasm. (I2c46a)
Phiên bản 1.1.0-alpha01
Ngày 11 tháng 12 năm 2024
Phát hành androidx.graphics:graphics-*:1.1.0-alpha01
. Phiên bản 1.1.0-alpha01 bao gồm các thay đổi sau.
Tính năng mới
- Chỉnh sửa bản minh hoạ chính thành một Trình chỉnh sửa hình dạng chung. Điều này cho phép bạn nhập các hình dạng từ một đường dẫn svg, chỉnh sửa thủ công các đối tượng được phát hiện trong trường hợp bỏ lỡ trong quy trình tự động và xuất kết quả thành mã có thể dùng trong mã sản xuất. (I1ac13)
- Thay thế các phép đo góc cho tiến trình đường viền hình dạng bằng các phép đo chiều dài đường cong. Nhờ đó, bạn có thể sử dụng các hình dạng phức tạp hơn để biến đổi. (I75478) , I390dd
- Cải thiện thuật toán liên kết đặc điểm, nhờ đó nhiều biến đổi sẽ trông tự nhiên hơn. (I83287)
Thay đổi về API
- Thêm tính năng nhập đường dẫn SVG và trình chuyển đổi tuần tự hoá. Quy trình thông thường là:
- Sử dụng
SvgPathParser.parseFeatures()
mới để chuyển đổi một đường dẫn svg (giá trị của thuộc tínhd
trên phần tửpath
của một svg) thànhList<Feature>
. - Bạn có thể sửa đổi giá trị này, sau đó chuyển đổi thành chuỗi bằng
FeatureSerializer.serialize()
. - Bạn có thể sử dụng chuỗi kết quả trong mã sản xuất bằng cách nhập chuỗi đó bằng
FeatureSerializer.parse()
- Xin lưu ý rằng các bước 1 và 2 chỉ được thực hiện một lần và có thể thực hiện bằng ứng dụng mới. Mã sản xuất chỉ cần thực hiện bước 3. (I9bd00, b/371196190), (Ic3842), (If68ed), (I10251)
- Sử dụng
- Hiển thị các đối tượng đa giác và loại đối tượng. Giờ đây, bạn có thể tạo thêm
RoundedPolygons
chung bằng hàm khởi tạo cơ sở lấyList<Features>
. Các đối tượng chủ yếu là danh sách các đường cong Bezier bậc ba, nhưng chúng được gắn thẻ để giúp thuật toán Biến đổi khớp giữa các hình dạng bắt đầu và kết thúc (các góc lồi được ánh xạ đến các góc lồi và các góc lõm được ánh xạ đến các góc lõm). (I61e76), (I1fc5c) - Thêm chế độ hỗ trợ cho mục tiêu KMP
watchosDeviceArm64
và mục tiêu kotlin 1.9. (Icf15d, b/364652024)
Sửa lỗi
- Đã khắc phục trường hợp đặc biệt khi tính năng cuối cùng không có nội dung. (I390dd)
- Tạo
RoundedPolygon
hiệu quả hơn. (Ib862c, b/360888486) - Khắc phục lỗi khi khởi chạy
RoundedPolygon
. (I83ddb) - Khắc phục lỗi trong thuật toán ước tính tâm của đa giác. (Ida147)
Graphics Shapes Phiên bản 1.0
Phiên bản 1.0.1
Ngày 4 tháng 9 năm 2024
Phát hành androidx.graphics:graphics-shapes:1.0.1
, androidx.graphics:graphics-shapes-android:1.0.1
và androidx.graphics:graphics-shapes-desktop:1.0.1
. Phiên bản 1.0.1 bao gồm các thay đổi sau.
Phiên bản 1.0.0
Ngày 21 tháng 8 năm 2024
Phát hành androidx.graphics:graphics-shapes:1.0.0
, androidx.graphics:graphics-shapes-android:1.0.0
và androidx.graphics:graphics-shapes-desktop:1.0.0
. Phiên bản 1.0.0 bao gồm các thay đổi sau.
Phiên bản 1.0.0-rc01
Ngày 24 tháng 7 năm 2024
Phát hành androidx.graphics:graphics-shapes:1.0.0-rc01
, androidx.graphics:graphics-shapes-android:1.0.0-rc01
và androidx.graphics:graphics-shapes-desktop:1.0.0-rc01
. Phiên bản 1.0.0-rc01 bao gồm các thay đổi sau.
Phiên bản 1.0.0-beta01
Ngày 1 tháng 5 năm 2024
Phát hành androidx.graphics:graphics-shapes:1.0.0-beta01
, androidx.graphics:graphics-shapes-android:1.0.0-beta01
và androidx.graphics:graphics-shapes-desktop:1.0.0-beta01
. Phiên bản 1.0.0-beta01 bao gồm các thay đổi sau.
Thay đổi về API
- Cho phép xoay trước các hình dạng để bắt đầu ở một điểm khác. Thay đổi này cho phép các hình dạng
pillStar
bắt đầu đường cong từ một điểm không mặc định trên chu vi. Điều này có thể hữu ích khi tạo hiệu ứng cho nét vẽ của đường dẫn hình dạng, để bắt đầu vẽ từ một vị trí cụ thể trên đường viền của hình dạng. (Ifbb4d, b/324303807) - Đã thêm các hàm
calculateBounds()
vào Morph, tương tự như các hàm trênRoundedPolygon
. (I8a3b6, b/325463575)
Phiên bản 1.0.0-alpha05
Ngày 7 tháng 2 năm 2024
Phát hành androidx.graphics:graphics-shapes:1.0.0-alpha05
, androidx.graphics:graphics-shapes-android:1.0.0-alpha05
và androidx.graphics:graphics-shapes-desktop:1.0.0-alpha05
. Phiên bản 1.0.0-alpha05 bao gồm các thay đổi sau.
Tính năng mới
- Giờ đây, thư viện này cung cấp các hàm
pill()
vàpillStar()
mới để dễ dàng tạo các hình tròn/hình có ngôi sao này. Ngoài ra, còn có các API mới để tính toán ranh giới chính xác cần thiết cho một hình dạng (ranh giới trước đây chỉ là ước tính dựa trên điểm neo và điểm kiểm soát của đường cong Bezier cơ bản), cũng như ranh giới tối đa có thể, điều này có thể hữu ích để xác định kích thước của vùng chứa chứa hình dạng đó nếu hình dạng sẽ được xoay trong vùng chứa đó. (I71827)
Thay đổi về API
- Giờ đây, bạn có nhiều lựa chọn hơn để truy xuất ranh giới chính xác và tối đa. (I6d49f, b/317286450)
Sửa lỗi
- Đôi khi, có những hiện tượng kết xuất giả tạo khi vẽ các hình dạng này dưới dạng đường dẫn có nét vẽ, do vấn đề kết xuất cấp thấp liên quan đến các đường cong có độ dài bằng 0. Lỗi này đã được khắc phục bằng cách loại bỏ tất cả các đường cong có độ dài bằng 0 (những hình dạng không cần đến, do đó cũng tiết kiệm được chi phí chung của các đường dẫn do hình dạng tạo ra).
Phiên bản 1.0.0-alpha04
Ngày 13 tháng 12 năm 2023
Phát hành androidx.graphics:graphics-shapes:1.0.0-alpha04
, androidx.graphics:graphics-shapes-android:1.0.0-alpha04
và androidx.graphics:graphics-shapes-desktop:1.0.0-alpha04
. Phiên bản 1.0.0-alpha04 bao gồm những thay đổi sau.
Tính năng mới
- Bản phát hành này chứa một số thay đổi về API, cũng như các bản sửa lỗi.
- Nhiều thay đổi về API giúp thư viện Shapes tương thích với KMP. Điều này giúp bạn dễ dàng gọi từ mã không phải Android (chẳng hạn như mã Compose không phụ thuộc vào Android). Ví dụ: không có loại Android nào trong API, chẳng hạn như các loại PointF, Matrix và Path trước đây.
- Ngoài ra, có một số thay đổi đối với API và việc triển khai vì lý do hiệu suất, cụ thể là để giảm thiểu việc phân bổ (và thu thập) đối tượng. Ví dụ: việc di chuyển từ PointF sang các tham số Float riêng biệt sẽ tránh phân bổ nhiều cấu trúc PointF tạm thời để lưu giữ các đỉnh đó.
Thay đổi về API
- Thay thế
Morph.asMutableCubics
bằng một hàm để lặp lại trênMutableCubics
. Thay đổi giao diện chức năngPointTransformer
, giờ đây, giao diện này sẽ lấy toạ độ x và y của mộtPoint
rồi trả về mộtTransformedResult
(được tạo bằng toạ độ x và y đã chuyển đổi) (I6719e) - Xoá hàm constructor
Cubic
công khai và biến hàm này thành một hàm tạo. (I409ce) - Thêm các API vẽ và biến đổi dành riêng cho Android (I079f6, b/292289543)
- Loại bỏ các phần phụ thuộc Android (Iadc1c, b/292289543)
- Giờ đây, tên thuộc tính của thành phần neo và thành phần điều khiển hợp lý hơn (If13bd, b/294562941)
- Các tham số
PointF
được thay đổi thành các cặpFloat
(Id4705, b/276466399, b/290254314) progress
hiện được chuyển trực tiếp đến các lệnh vẽMorph
(Icdca2)
Sửa lỗi
- Khắc phục lỗi khi tạo các hình dạng lớn. (I4fd66, b/313497325)
Phiên bản 1.0.0-alpha03
Ngày 7 tháng 6 năm 2023
Phát hành androidx.graphics:graphics-shapes:1.0.0-alpha03
. Phiên bản 1.0.0-alpha03 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm hàm
RoundedPolygon.rectangle()
mới (I78e7e, b/280322189) - Các hàm Star và Circle hiện không viết hoa và được gọi thông qua đối tượng đồng hành của
RoundedPolygon
: ví dụ:RoundedPolygon.star(...)
(I14735)
Sửa lỗi
- Khắc phục lỗi làm mịn (Ibf894)
- Khắc phục lỗi xảy ra khi hình dạng bắt đầu và hình dạng kết thúc giống nhau. Phân bổ không gian có sẵn ở bên cạnh cho các vết cắt tốt hơn, trước tiên sử dụng không gian có sẵn để làm tròn, sau đó để làm mịn nếu còn không gian. (Ibd320, b/277936300)
Phiên bản 1.0.0-alpha02
Ngày 19 tháng 4 năm 2023
Phát hành androidx.graphics:graphics-shapes:1.0.0-alpha02
. Phiên bản 1.0.0-alpha02 bao gồm các thay đổi sau.
Thay đổi về API
- Siêu lớp Polygon được hợp nhất với lớp con
RoundedPolygon
; tất cả các đa giác hiện là đa giác được làm tròn [không bắt buộc]. - Hàm Star (vẫn trả về một
RoundedPolygon
như trước) hiện lấy giá trịinnerRadius
thay vì tham sốinnerRadiusRatio
trước đó. Tham số này có cùng đơn vị với tham số bán kính hiện có, giúp mọi thứ trở nên đơn giản và nhất quán hơn. Ngoài ra, tham sốnumOuterVertices
được đổi tên thànhnumVerticesPerRadius
để làm rõ rằng cùng một số được áp dụng cho cả bán kính trong và ngoài. - Trước đây,
CornerRounding.radius
được ghi nhận là có liên quan đến kích thước của đa giác, nhưng đó là (và phải là) một giá trị tuyệt đối chứ không phải tương đối. Tài liệu đã được cập nhật và chú thích giới hạn giá trị tối đa là 1.0 đã được sửa.
Phiên bản 1.0.0-alpha01
Ngày 5 tháng 4 năm 2023
Graphics-Shapes là một thư viện mới giúp bạn dễ dàng tạo và kết xuất các hình đa giác bo tròn, cũng như biến đổi (hoạt ảnh) đơn giản và tự động giữa các hình dạng khác nhau.
Phát hành androidx.graphics:graphics-shapes:1.0.0-alpha01
. Phiên bản này được phát hành từ một nhánh nội bộ.
Tính năng mới
- Sử dụng Polygon API để tạo đa giác đều và đa giác hình sao với số lượng đỉnh mong muốn.
- Sử dụng các tham số
CornerRounding
không bắt buộc để chỉ định bán kính bo tròn và các tham số làm mịn cho các góc, tạo ra các hình đa giác có góc bo tròn. - Sử dụng API
Morph(Polygon, Polygon)
mới để tự động tính toán một hình dạng "biến đổi" có thể đặt tiến trình từ 0 đến 1 để tạo hiệu ứng chuyển động giữa hình dạng bắt đầu và kết thúc. Tạo hiệu ứng cho tiến trình đó theo thời gian, vẽ kết quả trên mọi khung hình để tạo hiệu ứng chuyển động mượt mà giữa các hình tròn mới này.
Graphics Path Phiên bản 1.0
Phiên bản 1.0.1
Ngày 1 tháng 5 năm 2024
Phát hành androidx.graphics:graphics-path:1.0.1
. Phiên bản 1.0.1 bao gồm các thay đổi sau.
Sửa lỗi
- Cải tiến đối với cờ của trình biên dịch.
Phiên bản 1.0.0
Ngày 6 tháng 3 năm 2024
Phát hành androidx.graphics:graphics-path:1.0.0
.
Phiên bản 1.0.0-rc01
Ngày 21 tháng 2 năm 2024
Phát hành androidx.graphics:graphics-path:1.0.0-rc01
. Phiên bản 1.0.0-rc01 bao gồm các thay đổi sau.
Sửa lỗi
- Cải thiện hiệu suất của PathIterator trên API < 34 (Id4629)
Phiên bản 1.0.0-beta02
Ngày 10 tháng 1 năm 2024
Những thay đổi trong bản phát hành này đều nhằm mục đích giảm kích thước của thư viện. Thư viện này lớn hơn mức cần thiết do mã gốc đưa ra các giả định.
Phát hành androidx.graphics:graphics-path:1.0.0-beta02
. Phiên bản 1.0.0-beta02 bao gồm các thay đổi sau.
Sửa lỗi
- Giảm kích thước của
libandroidx.graphics.path.so
xuống 96%. (I71397) - Giảm kích thước của
libandroidx.graphics.path.so
xuống 5%. (I2da7c) - Giảm 43% kích thước các thành phần gốc của
androidx.graphics:graphics-path
. (I8e40d)
Phiên bản 1.0.0-beta01
Ngày 29 tháng 11 năm 2023
Phát hành androidx.graphics:graphics-path:1.0.0-beta01
. Phiên bản 1.0.0-beta01 bao gồm các thay đổi sau.
Thay đổi về API
- Xoá các cách sử dụng API
isAtLeastU()
thử nghiệm (Ie9117, b/289269026)
Sửa lỗi
- Nhiều bản sửa lỗi và cải thiện hiệu suất, bao gồm cả cách thư viện xử lý các đường conic.
Phiên bản 1.0.0-alpha02
Ngày 7 tháng 6 năm 2023
Phát hành androidx.graphics:graphics-path:1.0.0-alpha02
. Phiên bản này được phát triển trong một nhánh nội bộ.
Tính năng mới
- Khắc phục vấn đề với quy trình kiểm tra phiên bản nền tảng nội bộ, gây ra các vấn đề khi chạy trên bản xem trước Android 14 (quy trình kiểm tra phiên bản sẽ không thành công, nhưng cơ chế thực hiện các thao tác trên các bản phát hành trước đó không hoạt động đúng cách trên Android 14).
Phiên bản 1.0.0-alpha01
Ngày 22 tháng 3 năm 2023
Phát hành androidx.graphics:graphics-path:1.0.0-alpha01
. Phiên bản 1.0.0-alpha01 bao gồm các thay đổi sau.
Tính năng mới
- Thư viện mới này cho phép truy vấn dữ liệu Đường dẫn thông qua API
PathIterator
mới. Khi sử dụng API này, người gọi có thể lặp lại tất cả các phân đoạn của đối tượng Path để xác định thao tác và dữ liệu cho các phân đoạn đó. - Thư viện này sử dụng các API tương tự được giới thiệu trong bản dùng thử Android 14, nhưng phiên bản AndroidX này của API cũng hoạt động trên các phiên bản từ API 21 trở về trước.
Graphics Core Phiên bản 1.0
Phiên bản 1.0.3
Ngày 26 tháng 3 năm 2025
Phát hành androidx.graphics:graphics-core:1.0.3
. Phiên bản 1.0.3 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục tình trạng nhấp nháy toàn màn hình khi vẽ trên một số thiết bị có API< 33.
Phiên bản 1.0.2
Ngày 16 tháng 10 năm 2024
Phát hành androidx.graphics:graphics-core:1.0.2
. Phiên bản 1.0.2 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục vấn đề khi các thực thể
SurfaceControl
vẫn được trình kết hợp hệ thống quản lý ngay cả sau khi chúng được phát hành. - Khắc phục vấn đề trong đó phiên bản
HardwareBuffer
hiện được trình bày sẽ không được phát hành sau khi các phần phụ thuộc có độ trễ thấp bị loại bỏ - Khắc phục vấn đề nhấp nháy trên một số thiết bị Android 14 trở lên không hỗ trợ cờ sử dụng bộ đệm trước
Phiên bản 1.0.1
Ngày 4 tháng 9 năm 2024
Phát hành androidx.graphics:graphics-core:1.0.1
. Phiên bản 1.0.1 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục vấn đề đôi khi không giải phóng được tài nguyên bộ nhớ.
Phiên bản 1.0.0
Ngày 29 tháng 5 năm 2024
Phát hành androidx.graphics:graphics-core:1.0.0
. Phiên bản 1.0.0 bao gồm các thay đổi sau.
Các tính năng chính của phiên bản 1.0.0
- Bản phát hành ổn định chính thức của thư viện graphics-core. Bao gồm các bản sửa lỗi nhỏ và cải thiện hiệu suất so với phiên bản 1.0.0-rc01
Phiên bản 1.0.0-rc01
Ngày 17 tháng 4 năm 2024
Phát hành androidx.graphics:graphics-core:1.0.0-rc01
. Phiên bản này được phát triển trong một nhánh nội bộ.
Sửa lỗi
- Khắc phục vấn đề dẫn đến khả năng đóng kép các bộ mô tả tệp bằng
CanvasBufferedRendererAPI
với một số thiết bị Android chạy Android 14. - Khắc phục vấn đề
FrameBuffer
không xoá đúng cách các thực thể vùng đệm khung.
Phiên bản 1.0.0-beta01
Ngày 13 tháng 12 năm 2023
Phát hành androidx.graphics:graphics-core:1.0.0-beta01
. Phiên bản 1.0.0-beta01 bao gồm các thay đổi sau.
Tính năng mới
- Giới thiệu API
LowLatencyCanvasView
mới để hỗ trợ kết xuất độ trễ thấp bằng API đồ hoạ 2D của Android (Canvas + Paint) trong hệ phân cấp View. - Giới thiệu API
CanvasBufferedRenderer
để hỗ trợ hoạt động kết xuất Canvas tăng tốc phần cứng thànhHardwareBuffer
. Bạn có thể dùng phương thức này để vẽ một phần của giao diện người dùng vào một vùng đệm có thể chuyển đổi thành Bitmap bằng APIBitmap.wrapHardwareBuffer
.
Thay đổi về API
- Cập nhật API
CanvasBufferRenderer#releaseBuffer
để có một tham số hàng rào không bắt buộc. Cập nhật tài liệu để mô tả thời điểmRenderResult#fence
được trả về. (If1ea7) - Thêm phương thức
draw
vàoRenderRequest
để hỗ trợ việc tận dụng các coroutine nhằm lên lịch cho các yêu cầu vẽ. Đổi tên phương thức vẽ trước đó đã sử dụng một trình thực thi thànhdrawAsync
. Tái cấu trúc phương thứcisClosed()
thành một thuộc tính. (I5bff6) - Tham số định dạng vùng đệm được hiển thị thành
CanvasFrontBufferRenderer
để ánh xạ trực tiếp đếnCanvasBufferedRenderer.Builder#setBufferFormat
(I0f272) - Tạo API
CanvasBufferedRenderer
để xử lý việc kết xuất canvas có tăng tốc phần cứng vàoHardwareBuffer
. Điều này cung cấp một chế độ triển khai được điều chỉnh cho phiên bản cũ cho Android Q cùng với cấu hình độ sâu của chuỗi hoán đổi làHardwareBuffers
. Cấu hìnhColorSpace
vẫn chỉ giới hạn ở Android U+, tuy nhiên, việc triển khai khả năng tương thích sẽ cung cấp hành vi không hoạt động thay cho nhà phát triển. (I9b1d8) - Thêm API
setFrameRate
/clearFrameRate
vàoSurfaceControlCompat.Transaction
để kiểm soát tốc độ khung hình cùng với chiến lược thay đổi cho các hiệu ứng chuyển đổi liền mạch hoặc mặc định. (I6045c) - Giảm cấp API bắt buộc cho
setDataSpace
xuống Android Q từ Android T. (I59c34) - Đã thêm lệnh gọi lại
onBufferReleased
vào APIGLFrameBufferRenderer
để cho người dùng cơ hội dọn dẹp trạng thái khi một vùng đệm không còn được trình bày nữa (I8a4e2) - Tạo
LowLatencyCanvasView
để hỗ trợ một trường hợp sử dụng đơn giản là kết xuất nội dung có độ trễ thấp được đồng bộ hoá với quá trình kết xuất hệ phân cấp View. Điều này giúp giảm bớt sự phức tạp liên quan đến việc quản lýSurfaceView
bằng cách quản lý nội bộ phiên bảnSurfaceView
được dịch trên/tắt màn hình để kết xuất đồng bộ và có độ trễ thấp tương ứng. (I9253b) - Thêm chế độ hỗ trợ cấu hình không gian màu vào API
CanvasFrontBufferedRenderer
. Cập nhật các lệnh gọi lại có nhiều vùng đệm để cũng bao gồmSurfaceControl
có vùng đệm dự phòng (I24bd9)
Phiên bản 1.0.0-alpha05
Ngày 6 tháng 9 năm 2023
Phát hành androidx.graphics:graphics-core:1.0.0-alpha05
. Phiên bản 1.0.0-alpha05 bao gồm các thay đổi sau.
Tính năng mới
- Ra mắt API
GLFrameBufferRenderer
. Thao tác này cung cấp sự kết hợp giữa các phần phụ thuộc OpenGL, cấu hình chuỗi hoán đổi, định dạng pixel và cấu hìnhSurfaceControl
. (Ic775b)
Thay đổi về API
- Thêm các tham số chiều rộng và chiều cao vào nhiều API gọi lại để truyền kích thước từ
SurfaceHolder#Callbacks
. (I7f9fc) - Thêm API xoá để xoá cả lớp trước và lớp có nhiều vùng đệm. (Ic1f95)
- Thêm hỗ trợ để định cấu hình loại vùng đệm cơ bản của các chuỗi hoán đổi được dùng trong
GLFrontBufferedRenderer
. (I07a13) - Thêm các thuộc tính kotlin cho phương thức getter trên chú thích
GLFrameBufferRenderer
,IntRange
cho số mục tối đa trong bộ nhớ đệm, cũng như chú thíchHardwareBufferFormart
vàHardwareBufferUsage
chosetFormat
/setUsage
tương ứng. (Ief89e) - Cập nhật API
setBuffer
trên các giao dịchSurfaceControl
để cung cấp một hàng rào phát hành. (Ice1bb) - Thêm API
SurfaceControlCompat.Transaction
để định cấu hình không gian dữ liệu cũng như đặt dải độ sáng mở rộng. (Ic378d)
Phiên bản 1.0.0-alpha04
Ngày 7 tháng 6 năm 2023
Phát hành androidx.graphics:graphics-core:1.0.0-alpha04
. Phiên bản 1.0.0-alpha04 bao gồm các thay đổi sau.
Tính năng mới
- Giới thiệu
CanvasFrontBufferedRenderer
để hỗ trợ đồ hoạ có độ trễ thấp bằng cách tận dụng APIandroid.graphics.Canvas
cùng với việc triển khai OpenGL hiện có
Thay đổi về API
- Cập nhật API
SurfaceControlCompat.Transaction#setBuffer
để cho phép các thực thểHardwareBuffer
có thể rỗng phản ánh API nền tảng tương ứng (I173d7) - Đổi tên các phương thức liên quan đến hoạt động kết xuất Vùng đệm kép thành Nhiều vùng đệm vì chuỗi hoán đổi dự phòng có thể chứa hơn 2 vùng đệm. (I830d7)
- Tạo API
CanvasFrontBufferedRenderer
để cho phép 3ps tận dụng hệ thống kết xuất được đệm trước bằng Canvas API. (Ibfc29)
Sửa lỗi
- Khắc phục vấn đề
GLFrontBufferedRenderer
không hiển thị nội dung sau khi tiếp tục Hoạt động tương ứng. - Khắc phục vấn đề trong đó nội dung được đệm phía trước sẽ bị xoá sớm.
- Khắc phục vấn đề
SurfaceHolder.Callbacks
không bị xoá sau khi phát hành các API đồ hoạ có độ trễ thấp.
Phiên bản 1.0.0-alpha03
Ngày 22 tháng 3 năm 2023
Phát hành androidx.graphics:graphics-core:1.0.0-alpha03
. Phiên bản 1.0.0-alpha03 bao gồm các thay đổi sau.
Thay đổi về API
- Cập nhật việc triển khai lệnh gọi lại
GLFrontBufferedRenderer
để cung cấp đối tượngBufferInfo
chứa chiều rộng/chiều cao vùng đệm cùng với giá trị nhận dạng vùng đệm khung hình có thể dùng để nhắm lại đến đích đến ban đầu sau khi kết xuất vào vùng đệm tạm thời. (I7fe20) - Hợp nhất việc tạo
SyncFence
thành phương thức ban đầu tĩnh trênSyncFenceCompat
. - Xoá phương thức tương thích công khai cho
eglDupNativeFenceFDANDROID
thay vì phương thức ban đầu củaSyncFenceCompat
để tạo SyncFence. Điều này nhằm đảm bảo tất cả các nền tảng API đều nhận được chế độ triển khaiSyncFence
chính xác, bất kể cấp độ API. (I849bb) - Thêm tài liệu cho
FrameBufferRenderer
vàSyncStrategy
.- Đã di chuyển
FrameBufferRenderer
+FrameBuffer
+FrameBufferPool
sang góiandroidx.graphics.opengl
- Đã chuyển
SyncStrategy
sang góiandroidx.graphics.opengl
RenderCallback#onDraw
tài liệu đã cập nhật- Cập nhật tài liệu về
RenderCallback#obtainFrameBuffer
mà người triển khai API chịu trách nhiệm gọiFrameBuffer.close
- Cập nhật
onDrawComplete
để cho biết người dùng cuối chịu trách nhiệm gửi nội dung để hiển thị - Di chuyển các giao diện/lớp tương thích
SyncFence
sang góiandroidx.hardware
để phản ánh khung - Đổi tên API
SyncFence
thànhSyncFenceV19
và đặt ở chế độ riêng tư để hợp nhất các lượt sử dụng thànhSyncFenceCompat
. API này tận dụng APISyncFence
của khung hình bất cứ khi nào có thể. (I5149c)
- Đã di chuyển
- Thêm các phương thức
GLFrontBufferedRenderer#cancel
vàGLFrontBufferedRenderer#execute
. Vùng đệm trước rất hữu ích trong các trường hợp loại bỏ thao tác chạm lòng bàn tay, trong đó quá trình kết xuất sang vùng đệm trước sẽ bị huỷ và ẩn vùng đệm trước. Phương thức thứ hai hữu ích trong các trường hợp thao tác với các đối tượng trên luồng GL mà không cần lên lịch kết xuất. (If0b7f) - Thêm API để kết xuất trực tiếp vào lớp đệm kép. Điều này hỗ trợ việc kết xuất lại một cảnh sau khi tiếp tục cũng như tạo cơ hội cho người dùng chọn lọc xác định thời điểm tận dụng tính năng kết xuất được đệm trước một cách linh hoạt dựa trên cảnh mong muốn để kết xuất. (Ied56c)
- Thêm API mới vào
SurfaceControlCompat.Builder
để hỗ trợ việc định cấu hìnhSurfaceControl
mẹ từ một thực thểSurfaceControl
khác ngoài cơ chế hiện có từSurfaceView
. (I1d1b6) - Thêm tính chất rỗng của kiểu dữ liệu trả về của các hàm ẩn không dùng nữa (Ibf7b0)
- Đã thêm hằng số tiện ích
EGL_ANDROID_get_native_client_buffer
để truy vấn xem thiết bị Android có hỗ trợ nhập các thực thểHardwareBuffer
vào các đối tượngEGLClientBuffer
có thể được sử dụng dưới dạng một thực thểEGLImage
hay không. (Iad767) - Thêm chú thích
@JvmDefaultWithCompatibility
(I8f206)
Phiên bản 1.0.0-alpha02
Ngày 9 tháng 11 năm 2022
Phát hành androidx.graphics:graphics-core:1.0.0-alpha02
. Phiên bản 1.0.0-alpha02 bao gồm các thay đổi sau.
Thay đổi về API
- Khắc phục lỗi thiếu chú thích
RequiresApi
choaddTransactionCommitListener
đã đưa vào Android S (I0a035) - Cập nhật lệnh gọi lại vùng đệm
onDraw<Front/Double>
để cung cấp ma trận biến đổi nơi người tiêu dùng có thể chuyển đến chương trình đổ bóng đỉnh chóp (vertex shader) bên cạnh chiều rộng/chiều cao hiện tại của vùng đệm. Người tiêu dùng chịu trách nhiệm sử dụng các tham số này để xoay trước đúng cách mã kết xuất OpenGL. (I82f9e)
Sửa lỗi
- Cải thiện độ trễ đồ hoạ bằng cách xoay trước vùng đệm trước khi thực hiện giao dịch
SurfaceControl
. - Khắc phục sự cố trong đó nhật ký lỗi cho thấy lỗi 300d (EGL_BAD_SURFACE).
- Khắc phục vấn đề
GLFrontBufferedRenderer
không hợp lệ sau khi Hoạt động tương ứng mà mã này sử dụng tiếp tục hoạt động. - Tăng cường hỗ trợ cho trình mô phỏng và thiết bị Chrome OS.
- Khắc phục vấn đề trong đó lớp đệm phía trước có thể bị ẩn sớm.
Phiên bản 1.0.0-alpha01
Ngày 24 tháng 10 năm 2022
Phát hành androidx.graphics:graphics-core:1.0.0-alpha01
. Phiên bản 1.0.0-alpha01 bao gồm các thay đổi sau.
Tính năng mới
- Bản phát hành đầu tiên của thư viện đồ hoạ cốt lõi AndroidX. Bản phát hành gồm API hỗ trợ các trường hợp sử dụng có độ trễ thấp như nhập liệu bằng bút cảm ứng. Việc này cũng ra mắt API trợ giúp để sử dụng trong OpenGL.
Thay đổi về API
- Giới thiệu
GLFrontBufferedRenderer
để hỗ trợ kết xuất trước và nhiều vùng đệm nhằm đạt được cả độ trễ thấp lẫn đầu ra kết xuất chất lượng cao. - Giới thiệu API
GLRenderer
để hỗ trợ tính năng kết xuất hình ảnh OpenGL cho những trình cung cấp nền tảng nhưSurfaceView
,TextureView
và các trình cung cấp khác.