grafis
Tabel ini mencantumkan semua artefak di grup androidx.graphics
.
Artefak | Rilis Stabil | Kandidat Rilis | Rilis Beta | Rilis Alfa |
---|---|---|---|---|
core grafis | 1.0.0 | - | - | - |
jalur-grafis | 1.0.1 | - | - | - |
bentuk-grafis | - | - | 1.0.0-beta01 | - |
Mendeklarasikan dependensi
Untuk menambahkan dependensi pada Print, Anda harus menambahkan repositori Maven Google ke project Anda. Baca repositori Maven Google untuk informasi selengkapnya.
Tambahkan dependensi untuk artefak yang diperlukan dalam file build.gradle
bagi aplikasi atau modul Anda:
Groovy
dependencies { implementation "androidx.graphics:graphics-core:1.0.0" implementation "androidx.graphics:graphics-path:1.0.1" implementation "androidx.graphics:graphics-shapes:1.0.0-beta01" }
Kotlin
dependencies { implementation("androidx.graphics:graphics-core:1.0.0") implementation("androidx.graphics:graphics-path:1.0.1") implementation("androidx.graphics:graphics-shapes:1.0.0-beta01") }
Untuk informasi dependensi selengkapnya, lihat Menambahkan dependensi build.
Masukan
Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau mempunyai masukan untuk meningkatkan kualitas library ini. Harap periksa masalah yang sudah diketahui dalam library ini sebelum membuat laporan baru. Anda dapat memberikan suara untuk masalah yang sudah diketahui dengan mengklik tombol bintang.
Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.
Tidak ada catatan rilis untuk artefak ini.
Graphics Shapes Versi 1.0
Versi 1.0.0-beta01
1 Mei 2024
androidx.graphics:graphics-shapes:1.0.0-beta01
, androidx.graphics:graphics-shapes-android:1.0.0-beta01
, dan androidx.graphics:graphics-shapes-desktop:1.0.0-beta01
dirilis. Versi 1.0.0-beta01 berisi commit ini.
Perubahan API
- Izinkan bentuk diputar sebelumnya untuk dimulai dari titik yang berbeda. Perubahan ini memungkinkan bentuk
pillStar
memulai kurvanya dari titik non-default pada perimeter. Ini bisa berguna saat menganimasikan gerakan jalur bentuk, untuk mulai menggambar dari lokasi tertentu pada garis batas bentuk. (Ifbb4d, b/324303807) - Menambahkan fungsi
calculateBounds()
ke Morph, yang sejajar dengan fungsi yang sama diRoundedPolygon
. (I8a3b6, b/325463575)
Versi 1.0.0-alpha05
7 Februari 2024
androidx.graphics:graphics-shapes:1.0.0-alpha05
, androidx.graphics:graphics-shapes-android:1.0.0-alpha05
, dan androidx.graphics:graphics-shapes-desktop:1.0.0-alpha05
dirilis. Versi 1.0.0-alpha05 berisi commit ini.
Fitur Baru
- Library kini menawarkan fungsi
pill()
danpillStar()
baru untuk memudahkan pembuatan bentuk bulat/bintang ini. Ada juga API baru untuk menghitung batas persis yang diperlukan untuk suatu bentuk (batas sebelumnya hanyalah perkiraan berdasarkan anchor kurva Bezier dan titik kontrol dasar), serta batas maksimum yang memungkinkan, yang dapat berguna untuk menentukan ukuran container yang menampungnya jika batas tersebut akan diputar dalam container tersebut. (I71827)
Perubahan API
- Kini ada lebih banyak opsi untuk mengambil batas tepat dan maksimum. (I6d49f, b/317286450)
Perbaikan Bug
- Kadang-kadang ada artefak rendering saat menggambar bentuk ini sebagai jalur yang digoreskan, karena masalah rendering level rendah yang terkait dengan kurva panjang nol. Bug ini diperbaiki dengan menghilangkan semua kurva panjang-nol (yang tidak diperlukan bentuk, sehingga juga menghemat overhead jalur yang dihasilkan oleh bentuk).
Versi 1.0.0-alpha04
13 Desember 2023
androidx.graphics:graphics-shapes:1.0.0-alpha04
, androidx.graphics:graphics-shapes-android:1.0.0-alpha04
, dan androidx.graphics:graphics-shapes-desktop:1.0.0-alpha04
dirilis. Versi 1.0.0-alpha04 berisi commit berikut ini.
Fitur Baru
- Rilis ini berisi beberapa perubahan API, serta perbaikan bug.
- Banyak perubahan API membuat library Shapes menjadi KMP. Hal ini mempermudah panggilan dari kode non-Android (seperti kode Compose yang tidak bergantung pada Android). Misalnya, tidak ada jenis Android di API, seperti jenis PointF, Matrix, dan Path sebelumnya.
- Ada juga beberapa perubahan yang dibuat pada API dan implementasinya karena alasan performa, khususnya untuk meminimalkan alokasi objek (dan pengumpulan). Misalnya, perpindahan dari PointF ke parameter Float yang terpisah menghindari pengalokasian banyak struktur PointF sementara untuk menyimpan verteks tersebut.
Perubahan API
- Mengganti
Morph.asMutableCubics
dengan fungsi untuk melakukan iterasi padaMutableCubics
. Mengubah antarmuka fungsionalPointTransformer
, kini mengambil koordinat x dan y dariPoint
dan menampilkanTransformedResult
(yang dibuat dengan koordinat x & y yang telah diubah) (I6719e) - Menghapus konstruktor
Cubic
publik dan menjadikannya fungsi factory. (I409ce) - Menambahkan API transformasi dan gambar khusus Android (I079f6, b/292289543)
- Menghapus dependensi Android (Iadc1c, b/292289543)
- Nama properti anchor dan kontrol kini lebih logis (If13bd, b/294562941)
- Parameter
PointF
diubah menjadi pasanganFloat
(Id4705, b/276466399, b/290254314) progress
kini diteruskan ke perintah menggambarMorph
secara langsung (Icdca2)
Perbaikan Bug
- Memperbaiki bug saat membuat bentuk yang besar. (I4fd66, b/313497325)
Versi 1.0.0-alpha03
7 Juni 2023
androidx.graphics:graphics-shapes:1.0.0-alpha03
dirilis. Versi 1.0.0-alpha03 berisi commit ini.
Perubahan API
- Menambahkan fungsi
RoundedPolygon.rectangle()
baru (I78e7e, b/280322189) - Fungsi Bintang dan Lingkaran kini tidak digunakan lagi dan dipanggil melalui objek pendamping
RoundedPolygon
: misalnya,RoundedPolygon.star(...)
(I14735)
Perbaikan Bug
- Memperbaiki bug saat smoothing (Ibf894)
- Memperbaiki bug yang terjadi saat bentuk awal dan akhir sama. Bagikan ruang yang tersedia dengan lebih baik di sisi untuk potongan, pertama-tama gunakan ruang yang tersedia untuk pembulatan, lalu untuk memuluskan jika ada ruang yang tersisa. (Ibd320, b/277936300)
Versi 1.0.0-alpha02
19 April 2023
androidx.graphics:graphics-shapes:1.0.0-alpha02
dirilis. Versi 1.0.0-alpha02 berisi commit ini.
Perubahan API
- Superclass Polygon digabungkan dengan subclass-nya,
RoundedPolygon
; semua poligon sekarang [secara opsional] merupakan poligon bulat. - Fungsi Bintang (yang masih menampilkan
RoundedPolygon
, seperti sebelumnya) kini menggunakan nilaiinnerRadius
, bukan parameterinnerRadiusRatio
sebelumnya. Ini berada dalam unit yang sama dengan parameter radius yang ada, sehingga membuat segalanya lebih sederhana dan lebih konsisten. Selain itu, parameternumOuterVertices
diganti namanya menjadinumVerticesPerRadius
untuk memperjelas bahwa angka yang sama diterapkan ke radius dalam dan luar. CornerRounding.radius
sebelumnya didokumentasikan sebagai relatif terhadap ukuran poligon, tetapi itu (dan seharusnya) merupakan nilai absolut, bukan relatif. Dokumen telah diperbarui dan anotasi yang membatasinya ke nilai maksimum 1,0 telah diperbaiki.
Versi 1.0.0-alpha01
5 April 2023
Graphics-Shapes adalah library baru yang memungkinkan pembuatan dan rendering bentuk poligon bulat dengan mudah, serta morphing (animasi) yang sederhana dan otomatis di antara berbagai bentuk.
androidx.graphics:graphics-shapes:1.0.0-alpha01
dirilis. Versi ini dirilis dari cabang internal.
Fitur Baru
- Gunakan Polygon API untuk membuat poligon reguler dan bintang dengan jumlah verteks yang diinginkan.
- Gunakan parameter
CornerRounding
opsional untuk menentukan radius pembulatan dan parameter penghalusan sudut, yang menghasilkan bentuk poligon dengan sudut membulat. - Gunakan
Morph(Polygon, Polygon)
API baru untuk secara otomatis menghitung bentuk “morph” yang progresnya dapat ditetapkan dari 0 ke 1 untuk dianimasikan antara bentuk awal dan akhir. Animasikan progres tersebut dari waktu ke waktu, yang menggambarkan hasilnya di setiap frame, untuk membuat animasi yang mulus di antara bentuk-bentuk bulat baru ini.
Graphics Path Versi 1.0
Versi 1.0.1
1 Mei 2024
androidx.graphics:graphics-path:1.0.1
dirilis. Versi 1.0.1 berisi commit ini.
Perbaikan Bug
- Peningkatan pada tanda compiler.
Versi 1.0.0
6 Maret 2024
androidx.graphics:graphics-path:1.0.0
dirilis.
Versi 1.0.0-rc01
21 Februari 2024
androidx.graphics:graphics-path:1.0.0-rc01
dirilis. Versi 1.0.0-rc01 berisi commit berikut ini.
Perbaikan Bug
- Meningkatkan performa PathIterator di API < 34 (Id4629)
Versi 1.0.0-beta02
10 Januari 2024
Perubahan dalam rilis ini bertujuan untuk mengurangi ukuran library, yang ukurannya lebih besar dari yang diperlukan karena asumsi yang dibuat oleh kode native.
androidx.graphics:graphics-path:1.0.0-beta02
dirilis. Versi 1.0.0-beta02 berisi commit ini.
Perbaikan Bug
- Mengurangi ukuran
libandroidx.graphics.path.so
sebesar 96%. (I71397) - Kurangi ukuran
libandroidx.graphics.path.so
sebesar 5%. (I2da7c) - Menyusutkan komponen native
androidx.graphics:graphics-path
sebesar 43%. (I8e40d)
Versi 1.0.0-beta01
29 November 2023
androidx.graphics:graphics-path:1.0.0-beta01
dirilis. Versi 1.0.0-beta01 berisi commit ini.
Perubahan API
- Menghapus penggunaan
isAtLeastU()
API eksperimental (Ie9117, b/289269026)
Perbaikan Bug
- Berbagai perbaikan dan peningkatan performa, termasuk cara library menangani kerucut.
Versi 1.0.0-alpha02
7 Juni 2023
androidx.graphics:graphics-path:1.0.0-alpha02
dirilis. Versi ini dikembangkan di cabang internal.
Fitur Baru
- Memperbaiki masalah pemeriksaan versi platform internal yang menyebabkan masalah saat berjalan di pratinjau Android 14 (pemeriksaan versi akan gagal, tetapi mekanisme untuk melakukan hal-hal pada rilis sebelumnya tidak berfungsi dengan benar di Android 14 khususnya).
Versi 1.0.0-alpha01
22 Maret 2023
androidx.graphics:graphics-path:1.0.0-alpha01
dirilis. Versi 1.0.0-alpha01 berisi commit ini.
Fitur Baru
- Library baru ini memungkinkan kueri data Jalur melalui
PathIterator
API baru. Dengan API ini, pemanggil dapat melakukan iterasi melalui semua segmen objek Jalur untuk menentukan operasi dan data untuk segmen tersebut. - Library ini menggunakan API serupa yang diperkenalkan dalam pratinjau Android 14, tetapi versi AndroidX API ini juga berfungsi pada versi kembali ke API 21.
Graphics Core Versi 1.0
Versi 1.0.0
29 Mei 2024
androidx.graphics:graphics-core:1.0.0
dirilis. Versi 1.0.0 berisi commit ini.
Fitur utama 1.0.0
- Rilis stabil resmi library inti grafis. Mencakup perbaikan bug minor dan peningkatan performa dari 1.0.0-rc01
Versi 1.0.0-rc01
17 April 2024
androidx.graphics:graphics-core:1.0.0-rc01
dirilis. Versi ini dikembangkan di cabang internal.
Perbaikan Bug
- Memperbaiki masalah yang menyebabkan potensi penutupan ganda deskriptor file dengan
CanvasBufferedRendererAPI
di perangkat Android tertentu yang menjalankan Android 14. - Memperbaiki masalah saat
FrameBuffer
tidak menghapus instance framebuffer dengan benar.
Versi 1.0.0-beta01
13 Desember 2023
androidx.graphics:graphics-core:1.0.0-beta01
dirilis. Versi 1.0.0-beta01 berisi commit ini.
Fitur Baru
- Memperkenalkan
LowLatencyCanvasView
API baru untuk mendukung rendering latensi rendah dengan API grafis 2d Android (Canvas + Paint) dalam hierarki View. - Memperkenalkan
CanvasBufferedRenderer
API untuk mendukung rendering Canvas dengan akselerasi hardware keHardwareBuffer
. API ini dapat digunakan untuk menggambar sebagian antarmuka pengguna ke dalam buffer yang dapat dikonversi menjadi Bitmap menggunakanBitmap.wrapHardwareBuffer
API.
Perubahan API
- Mengupdate
CanvasBufferRenderer#releaseBuffer
API agar memiliki parameter fence opsional. Memperbarui dokumentasi untuk menjelaskan kapanRenderResult#fence
ditampilkan. (If1ea7) - Menambahkan metode
draw
keRenderRequest
untuk mendukung pemanfaatan coroutine untuk menjadwalkan permintaan gambar. Mengganti nama metode gambar sebelumnya yang menggunakan eksekutor menjadidrawAsync
. Memfaktorkan ulang metodeisClosed()
ke properti. (I5bff6) - Mengekspos parameter format buffer ke
CanvasFrontBufferRenderer
untuk dipetakan langsung keCanvasBufferedRenderer.Builder#setBufferFormat
(I0f272) - Membuat
CanvasBufferedRenderer
API untuk menangani rendering kanvas dengan akselerasi hardware menjadiHardwareBuffer
. Ini menyediakan implementasi yang di-backport ke Android Q bersama konfigurasi kedalaman swapchainHardwareBuffers
. KonfigurasiColorSpace
masih dibatasi untuk Android U+, tetapi penerapan compat memberikan perilaku tanpa pengoperasian atas nama developer. (I9b1d8) - Tambahkan
setFrameRate
/clearFrameRate
API keSurfaceControlCompat.Transaction
untuk mengontrol kecepatan frame bersama dengan strategi perubahan untuk transisi yang lancar atau default. (I6045c) - Menurunkan level API yang diperlukan untuk
setDataSpace
ke Android Q dari Android T. (I59c34) - Menambahkan callback
onBufferReleased
keGLFrameBufferRenderer
API untuk memberi konsumen kesempatan untuk membersihkan status saat buffer tidak lagi ditampilkan (I8a4e2) - Buat
LowLatencyCanvasView
untuk mendukung kasus penggunaan sederhana merender konten dengan latensi rendah yang disinkronkan dengan rendering hierarki Tampilan. Hal ini mengurangi kerumitan yang terkait dengan pengelolaanSurfaceView
dengan mengelola instanceSurfaceView
secara internal yang diterjemahkan di luar/di layar untuk masing-masing disinkronkan dan rendering latensi rendah. (I9253b) - Menambahkan dukungan konfigurasi ruang warna ke
CanvasFrontBufferedRenderer
API. Mengupdate callback multibuffer yang di-buffer untuk juga menyertakanSurfaceControl
yang di-buffer kembali (I24bd9)
Versi 1.0.0-alpha05
6 September 2023
androidx.graphics:graphics-core:1.0.0-alpha05
dirilis. Versi 1.0.0-alpha05 berisi commit ini.
Fitur Baru
- Memperkenalkan
GLFrameBufferRenderer
API. Ini menyediakan kombinasi dependensi OpenGL, konfigurasi swap chain, format piksel, dan konfigurasiSurfaceControl
. (IC775b)
Perubahan API
- Menambahkan parameter lebar + tinggi ke berbagai API callback ke dimensi pipa dari
SurfaceHolder#Callbacks
. (I7f9fc) - Menambahkan API yang jelas untuk menghapus lapisan depan dan multi-buffer. (IC1f95)
- Menambahkan dukungan untuk mengonfigurasi jenis buffer swapchain dasar yang digunakan dalam
GLFrontBufferedRenderer
. (I07a13) - Menambahkan properti kotlin untuk pengambil pada anotasi
GLFrameBufferRenderer
, anotasiIntRange
untuk entri buffer maksimum, serta anotasiHardwareBufferFormart
danHardwareBufferUsage
untuk masing-masingsetFormat
/setUsage
. (Ief89e) - Mengupdate
setBuffer
API pada transaksiSurfaceControl
untuk menyediakan fence rilis. (Ice1bb) - Menambahkan
SurfaceControlCompat.Transaction
API untuk mengonfigurasi ruang data serta menyetel rentang kecerahan yang diperluas. (IC378d)
Versi 1.0.0-alpha04
7 Juni 2023
androidx.graphics:graphics-core:1.0.0-alpha04
dirilis. Versi 1.0.0-alpha04 berisi commit ini.
Fitur Baru
- Memperkenalkan
CanvasFrontBufferedRenderer
untuk mendukung grafis latensi rendah yang memanfaatkanandroid.graphics.Canvas
API bersama dengan implementasi OpenGL yang ada
Perubahan API
- Mengupdate
SurfaceControlCompat.Transaction#setBuffer
API untuk memungkinkan instanceHardwareBuffer
nullable untuk mencerminkan API platform yang sesuai (I173d7) - Ganti nama metode yang merujuk pada rendering Buffering Ganda menjadi Multi Buffer karena swapchain pendukung dapat berisi lebih dari 2 buffer. (I830d7)
- Buat
CanvasFrontBufferedRenderer
API untuk mengaktifkan 3ps agar dapat memanfaatkan sistem rendering yang di-buffer di depan menggunakan Canvas API. (Ibfc29)
Perbaikan Bug
- Memperbaiki masalah yang menyebabkan
GLFrontBufferedRenderer
tidak merender konten setelah melanjutkan Aktivitas yang sesuai. - Memperbaiki masalah saat konten yang di-buffer di-depan akan dihapus sebelum waktunya.
- Memperbaiki masalah yang menyebabkan
SurfaceHolder.Callbacks
tidak dihapus setelah API grafis latensi rendah dirilis.
Versi 1.0.0-alpha03
22 Maret 2023
androidx.graphics:graphics-core:1.0.0-alpha03
dirilis. Versi 1.0.0-alpha03 berisi commit ini.
Perubahan API
- Mengupdate implementasi callback
GLFrontBufferedRenderer
untuk menyediakan objekBufferInfo
yang berisi lebar/tinggi buffer bersama dengan ID buffer frame yang dapat digunakan untuk menargetkan ulang tujuan asli setelah rendering ke buffer scratch perantara. (I7fe20) - Menggabungkan pembuatan
SyncFence
ke metode factory statis padaSyncFenceCompat
. - Menghapus metode kompatibilitas publik untuk
eglDupNativeFenceFDANDROID
dan mendukung metode factorySyncFenceCompat
untuk pembuatan SyncFence. Hal ini untuk memastikan semua platform API menerima implementasiSyncFence
yang benar, apa pun level API-nya. (I849bb) - Menambahkan dokumentasi untuk
FrameBufferRenderer
danSyncStrategy
.- Memindahkan
FrameBufferRenderer
+FrameBuffer
+FrameBufferPool
ke paketandroidx.graphics.opengl
SyncStrategy
dipindahkan ke paketandroidx.graphics.opengl
RenderCallback#onDraw
dokumen diperbarui- Memperbarui dokumentasi
RenderCallback#obtainFrameBuffer
yang mengimplementasikan API yang bertanggung jawab untuk memanggilFrameBuffer.close
- Memperbarui
onDrawComplete
untuk menunjukkan bahwa konsumen bertanggung jawab untuk mengirim konten yang akan ditampilkan - Memindahkan antarmuka/class kompatibilitas
SyncFence
ke paketandroidx.hardware
untuk mencerminkan framework - Mengganti nama
SyncFence
API menjadiSyncFenceV19
dan dijadikan pribadi untuk menggabungkan penggunaan menjadiSyncFenceCompat
yang memanfaatkanSyncFence
API framework jika memungkinkan. (I5149c)
- Memindahkan
- Menambahkan metode
GLFrontBufferedRenderer#cancel
danGLFrontBufferedRenderer#execute
. Yang pertama berguna dalam skenario penolakan telapak tangan ketika rendering ke buffer depan harus dibatalkan dan menyembunyikan buffer depan. Yang kedua ini berguna dalam skenario untuk memanipulasi objek pada thread GL tanpa harus menjadwalkan render. (If0b7f) - Menambahkan API untuk merender secara langsung ke lapisan buffer ganda. Hal ini membantu rendering ulang adegan setelah dilanjutkan serta memberikan kesempatan bagi konsumen untuk secara selektif menentukan kapan harus memanfaatkan rendering buffer depan secara dinamis berdasarkan adegan yang diinginkan untuk dirender. (Ied56c)
- Menambahkan API baru ke
SurfaceControlCompat.Builder
untuk mendukung konfigurasiSurfaceControl
induk dari instanceSurfaceControl
lain selain mekanisme yang ada dariSurfaceView
. (I1d1b6) - Lebih banyak nullability jenis nilai yang ditampilkan dari fungsi tersembunyi yang tidak digunakan lagi (Ibf7b0)
- Menambahkan konstanta ekstensi
EGL_ANDROID_get_native_client_buffer
untuk mengkueri apakah perangkat Android mendukung pengimporan instanceHardwareBuffer
ke objekEGLClientBuffer
yang dapat digunakan sebagai instanceEGLImage
. (Iad767) - Menambahkan anotasi
@JvmDefaultWithCompatibility
(I8f206)
Versi 1.0.0-alpha02
9 November 2022
androidx.graphics:graphics-core:1.0.0-alpha02
dirilis. Versi 1.0.0-alpha02 berisi commit ini.
Perubahan API
- Memperbaiki anotasi
RequiresApi
yang tidak ada untukaddTransactionCommitListener
yang diperkenalkan di Android S (I0a035) - Memperbarui callback Buffering
onDraw<Front/Double>
untuk memberikan matriks transformasi yang dapat diteruskan konsumen ke shader vertex selain lebar/tinggi buffering saat ini. Konsumen bertanggung jawab menggunakan parameter ini untuk melakukan pra-rotasi kode rendering OpenGL dengan benar. (I82f9e)
Perbaikan Bug
- Meningkatkan latensi grafis dengan melakukan pra-rotasi buffering sebelum mengeluarkan transaksi
SurfaceControl
. - Memperbaiki masalah saat log error akan menampilkan error 300d (EGL_BAD_SURFACE).
- Memperbaiki masalah saat
GLFrontBufferedRenderer
menjadi tidak valid setelah Aktivitas terkait yang digunakannya dilanjutkan. - Meningkatkan dukungan untuk emulator dan perangkat Chrome OS.
- Memperbaiki masalah saat lapisan buffering depan mungkin disembunyikan sebelum waktunya.
Versi 1.0.0-alpha01
24 Oktober 2022
androidx.graphics:graphics-core:1.0.0-alpha01
dirilis. Versi 1.0.0-alpha01 berisi commit ini.
Fitur Baru
- Rilis awal library AndroidX inti grafis. Ini termasuk API untuk mendukung kasus penggunaan latensi rendah seperti input stilus. Ini juga memperkenalkan beberapa API helper untuk penggunaan OpenGL.
Perubahan API
- Memperkenalkan
GLFrontBufferedRenderer
untuk membantu rendering di depan dan multi-buffer untuk mencapai output rendering berkualitas tinggi dan latensi rendah. - Memperkenalkan
GLRenderer
API guna membantu rendering OpenGL untuk berbagai penyedia Surface sepertiSurfaceView
,TextureView
, dan lainnya.