Đồ hoạ

  
Tận dụng cơ sở đồ hoạ trên nhiều bản phát hành của nền tảng Android

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 -
Lần gần nhất cập nhật thư viện này: ngày 30 tháng 7 năm 2025

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.

Báo lỗi mới

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ính d trên phần tử path của một svg) thành List<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)
  • 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ấy List<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.1androidx.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.0androidx.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-rc01androidx.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-beta01androidx.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ên RoundedPolygon. (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-alpha05androidx.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()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-alpha04androidx.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ên MutableCubics. Thay đổi giao diện chức năng PointTransformer, giờ đây, giao diện này sẽ lấy toạ độ x và y của một Point rồi trả về một TransformedResult (đượ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ặp Float (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

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ành numVerticesPerRadius để 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

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ành HardwareBuffer. 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 API Bitmap.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ểm RenderResult#fence được trả về. (If1ea7)
  • Thêm phương thức draw vào RenderRequest để 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ành drawAsync. Tái cấu trúc phương thức isClosed() 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 đến CanvasBufferedRenderer.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ào HardwareBuffer. Đ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ình ColorSpace 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ào SurfaceControlCompat.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 API GLFrameBufferRenderer để 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ản SurfaceView đượ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ồm SurfaceControl 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ình SurfaceControl. (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ích HardwareBufferFormartHardwareBufferUsage cho setFormat/setUsage tương ứng. (Ief89e)
  • Cập nhật API setBuffer trên các giao dịch SurfaceControl để 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 API android.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ượng BufferInfo 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ên SyncFenceCompat.
  • Xoá phương thức tương thích công khai cho eglDupNativeFenceFDANDROID thay vì phương thức ban đầu của SyncFenceCompat để 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 khai SyncFence chính xác, bất kể cấp độ API. (I849bb)
  • Thêm tài liệu cho FrameBufferRendererSyncStrategy.
    • Đã di chuyển FrameBufferRenderer + FrameBuffer + FrameBufferPool sang gói androidx.graphics.opengl
    • Đã chuyển SyncStrategy sang gói androidx.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ọi FrameBuffer.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ói androidx.hardware để phản ánh khung
    • Đổi tên API SyncFence thành SyncFenceV19 và đặt ở chế độ riêng tư để hợp nhất các lượt sử dụng thành SyncFenceCompat. API này tận dụng API SyncFence của khung hình bất cứ khi nào có thể. (I5149c)
  • Thêm các phương thức GLFrontBufferedRenderer#cancelGLFrontBufferedRenderer#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ình SurfaceControl 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ượng EGLClientBuffer 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 cho addTransactionCommitListener đã đư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.