Đồ 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.2 - - -
graphics-path 1.0.1 - - -
hình-đồ-họa 1.0.1 - - 1.1.0-alpha01
Lần gần nhất cập nhật thư viện này: ngày 11 tháng 12 năm 2024

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.2"
    implementation "androidx.graphics:graphics-path:1.0.1"
    implementation "androidx.graphics:graphics-shapes:1.1.0-alpha01"
}

Kotlin

dependencies {
    implementation("androidx.graphics:graphics-core:1.0.2")
    implementation("androidx.graphics:graphics-path:1.0.1")
    implementation("androidx.graphics:graphics-shapes:1.1.0-alpha01")
}

Để 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.

Graphics Phiên bản 1.1

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

  • Làm lại 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 các đặc điểm được phát hiện theo cách thủ công trong trường hợp bị thiếu trong quy trình tự động và xuất kết quả sang mã có thể dùng trong mã phát hành chính thức. (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, điều này cho phép 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 ánh xạ đặc điểm để nhiều hình ảnh chuyể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ự tính năng. Quy trình thông thường là:
    • Sử dụng SvgPathParser.parseFeatures() mới để chuyển đổi đường dẫn svg (giá trị của thuộc tính d trên phần tử path của svg) thành List<Feature>.
    • Bạn có thể sửa đổi, sau đó chuyển đổi tuần tự thành một chuỗi bằng FeatureSerializer.serialize().
    • Bạn có thể sử dụng chuỗi kết quả trong mã phát hành chính thức, nhập chuỗi đó bằng FeatureSerializer.parse()
    • Xin lưu ý rằng bạn chỉ cần thực hiện bước 1 và 2 một lần và có thể thực hiện với ứng dụng mới. Mã phát hành công khai 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 RoundedPolygons chung hơn bằng hàm khởi tạo cơ sở lấy List<Features>. Các đặc điểm chủ yếu là danh sách các đường cong bezier dạng khối lập phương, nhưng chúng được gắn thẻ để giúp thuật toán Morph so khớp giữa hình dạng bắt đầu và kết thúc (các góc lồi được liên kết với các góc lồi và các góc lõm được liên kết với các góc lõm). (I61e76), (I1fc5c)
  • Thêm tính năng 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 hiếm gặp khi tính năng cuối cùng bị trống. (I390dd)
  • Tăng cường tính năng tạo RoundedPolygon. (Ib862c, b/360888486)
  • Khắc phục lỗi 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.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 tại một điểm khác. Thay đổi này cho phép các hình dạng pillStar bắt đầu các đường cong từ một điểm không phải mặc định trên chu vi. Điều này có thể hữu ích khi tạo ảnh động vẽ đường dẫn của 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

  • Thư viện hiện cung cấp các hàm pill()pillStar() mới để dễ dàng tạo các hình tròn/hình sao này. Ngoài ra, còn có các API mới để tính toán các giới hạn chính xác cần thiết cho một hình dạng (các giới hạn trước đó chỉ là ước tính dựa trên điểm neo và điểm điều khiển của đường cong Bezier cơ bản), cũng như các giới hạn tối đa có thể có. Đ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 các giới hạn chính xác và tối đa. (I6d49f, b/317286450)

Sửa lỗi

  • Đôi khi, có hiện tượng kết xuất khi vẽ các hình dạng này dưới dạng đường dẫn 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 (các hình dạng không cần đến, do đó cũng tiết kiệm được chi phí hao tổn của các đường dẫn do các 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 bao gồm một số thay đổi về API, cũng như các bản sửa lỗi.
  • Nhiều thay đổi đối với 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ân biệt 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 đó.
  • Chúng tôi cũng đã thực hiện một số thay đổi đối với API và cách 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 việc 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 Point và trả về TransformedResult (được tạo bằng toạ độ x và y đã chuyển đổi) (I6719e)
  • Xoá hàm khởi tạo Cubic công khai và chuyển hàm này thành hàm nhà máy. (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)
  • Tên thuộc tính neo và điều khiển hiện hợp lý hơn (If13bd, b/294562941)
  • Thay đổi tham số PointF thành 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ượt (Ibf894)
  • Khắc phục lỗi xảy ra khi hình dạng bắt đầu và kết thúc giống nhau. Phân bổ không gian có sẵn tốt hơn ở cạnh để cắt, trước tiên hãy sử dụng không gian có sẵn để làm tròn, sau đó làm mượt 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

  • Lớp cao cấp Polygon đã được hợp nhất với lớp con RoundedPolygon; tất cả đa giác hiện đều là đa giác bo tròn [không bắt buộc].
  • Hàm Star (vẫn trả về 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 bên trong và bên ngoài.
  • Trước đây, CornerRounding.radius được ghi nhận là tương ứng với 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 giá trị 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 khắc phục.

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 cho phép 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 (ảnh động) đơ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ố đỉ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ượt 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 hình dạng "biến đổi" có thể đặt tiến trình từ 0 đến 1 để tạo ảnh động giữa hình dạng bắt đầu và kết thúc. Tạo ảnh động cho tiến trình đó theo thời gian, vẽ kết quả trên mọi khung hình để tạo ảnh độ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 cờ 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

Các thay đổi trong bản phát hành này đều nhằm giảm kích thước của thư viện, vốn lớn hơn mức cần thiết do các giả định được đưa ra bởi mã gốc.

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 96% kích thước của libandroidx.graphics.path.so. (I71397)
  • Giảm 5% kích thước của libandroidx.graphics.path.so. (I2da7c)
  • Rút gọn các thành phần gốc của androidx.graphics:graphics-path xuống 43%. (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 trường hợp 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 tiến hiệu suất, bao gồm cả cách thư viện xử lý các hình nón.

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 tính năng kiểm tra phiên bản nền tảng nội bộ gây ra sự cố khi chạy trên bản xem trước Android 14 (tính năng 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 chính xác 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, phương thức gọi có thể lặp lại qua tất cả các phân đoạn của đối tượng Đường dẫn để 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 của API này cũng hoạt động trên các phiên bản trở về API 21.

Graphics Core Phiên bản 1.0

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 đề trong đó 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 được phát hành.
  • Khắc phục vấn đề trong đó thực thể HardwareBuffer hiện đang hiển thị sẽ không được phát hành sau khi các phần phụ thuộc có độ trễ thấp được xử lý
  • 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 vùng đệ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 tài nguyên bộ nhớ không được giải phóng.

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 chính thức và ổn định của thư viện graphics-core. Bao gồm các bản sửa lỗi nhỏ và cải tiến hiệu suất từ 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 đề có thể dẫn đến việc đóng hai lần chỉ số 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

  • Ra mắt 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 Chế độ xem.
  • Giới thiệu API CanvasBufferedRenderer để hỗ trợ tính năng kết xuất Canvas tăng tốc phần cứng cho HardwareBuffer. Bạn có thể dùng lớp này để vẽ một phần giao diện người dùng vào 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ó 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 coroutine nhằm lên lịch 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)
  • Đã hiển thị tham số định dạng vùng đệm cho 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 tăng tốc phần cứng thành HardwareBuffer. Điều này cung cấp một phương thức triển khai điều chỉnh cho phiên bản cũ cho Android Q cùng với cấu hình chiều sâu 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ẽ thay mặt cho nhà phát triển cung cấp hành vi không hoạt động. (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 để người dùng có cơ hội dọn dẹp trạng thái khi vùng đệm không còn được hiển thị (I8a4e2)
  • Tạo LowLatencyCanvasView để hỗ trợ trường hợp sử dụng đơn giản về việc 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 Chế độ xem. Đ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ộ thực thể SurfaceView được dịch ra/trên màn hình để kết xuất đồng bộ và có độ trễ thấp tương ứng. (I9253b)
  • Thêm tính năng hỗ trợ cấu hình không gian màu vào API CanvasFrontBufferedRenderer. Cập nhật lệnh gọi lại nhiều vùng đệm để cũng bao gồm SurfaceControl được lưu vào vùng đệm lui (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. Thư viện này cung cấp một tổ hợp 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 + chiều cao vào nhiều API gọi lại để chuyển kích thước từ SurfaceHolder#Callbacks. (I7f9fc)
  • Thêm API xoá để xoá cả lớp trước và lớp nhiều vùng đệm. (Ic1f95)
  • Thêm tính năng 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 sử dụng trong GLFrontBufferedRenderer. (I07a13)
  • Thêm các thuộc tính kotlin cho phương thức getter trên GLFrameBufferRenderer, chú thích IntRange cho các mục nhập bộ đệm tối đa và 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 hàng rào phát hành. (Ice1bb)
  • Thêm các API SurfaceControlCompat.Transaction để định cấu hình không gian dữ liệu cũng như đặt phạm vi độ 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 rỗng phản ánh API nền tảng tương ứng (I173d7)
  • Thay đổi tên các phương thức tham chiếu đến tính năng kết xuất Vùng đệm kép thành Vùng đệm nhiều vì chuỗi hoán đổi sao lưu có thể chứa nhiều 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 vùng đệ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 đề nội dung được lưu vào bộ đệm phía trước bị xoá sớm.
  • Khắc phục vấn đề SurfaceHolder.Callbacks không bị xoá sau khi phát hành 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 cách 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 có thể dùng để nhắm mục tiêu lại đích đến ban đầu sau khi kết xuất vào vùng đệm tạm thời trung gian. (I7fe20)
  • Tổng hợp việc tạo SyncFence thành phương thức nhà máy tĩnh trên SyncFenceCompat.
  • Xoá phương thức tương thích công khai cho eglDupNativeFenceFDANDROID để sử dụng 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 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
    • Di chuyển SyncStrategy sang gói androidx.graphics.opengl
    • Cập nhật tài liệu về RenderCallback#onDraw
    • Cập nhật tài liệu về RenderCallback#obtainFrameBuffer mà trình 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 chịu trách nhiệm điều phối nội dung để hiển thị
    • Di chuyển 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 trường hợp sử dụng thành SyncFenceCompat, tận dụng API SyncFence của khung bất cứ khi nào có thể. (I5149c)
  • Thêm các phương thức GLFrontBufferedRenderer#cancelGLFrontBufferedRenderer#execute. Phương thức trước hữu ích trong các trường hợp chống tì tay, trong đó bạn cần huỷ kết xuất vào vùng đệm trước và ẩn vùng đệm trước. Loại sau hữu ích trong các trường hợp cần thao tác với các đối tượng trên luồng GL mà không cần phải lên lịch kết xuất. (If0b7f)
  • Thêm API để kết xuất trực tiếp vào lớp vùng đệm đôi. Điều này hỗ trợ 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 xác định một cách linh hoạt thời điểm tận dụng tính năng kết xuất đệm trước 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 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.