grafikler

  
Birden fazla Android platform sürümünde grafik özelliklerinden yararlanma

Bu tabloda, androidx.graphics grubundaki tüm yapılar listelenir.

Yapı Kararlı sürüm Sürüm Adayı Beta Sürümü Alfa sürümü
graphics-core 1.0.3 - - -
graphics-path 1.0.1 - - -
graphics-shapes 1.0.1 - - 1.1.0-alpha01
Bu kitaplık en son şu tarihte güncellenmiştir: 26 Mart 2025

Bağımlılıkları bildirme

Graphics'e bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.

Uygulamanız veya modülünüz için build.gradle dosyasına ihtiyacınız olan yapılarla ilgili bağımlılıkları ekleyin:

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-alpha01"
}

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-alpha01")
}

Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.

Geri bildirim

Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz olursa lütfen bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.

Yeni sorun oluşturma

Daha fazla bilgi için Sorun İzleyici belgelerini inceleyin.

Bu yapıyla ilgili sürüm notu yok.

Grafik Sürümü 1.1

Sürüm 1.1.0-alpha01

11 Aralık 2024

androidx.graphics:graphics-*:1.1.0-alpha01 iptal edilir. 1.1.0-alpha01 sürümü bu commit'leri içerir.

Yeni Özellikler

  • Ana demoyu genel bir Şekil Düzenleyici olarak yeniden düzenledik. Bu sayede, svg yolundan şekiller içe aktarabilir, otomatik süreçte kaçırılan özellikler olursa bunları manuel olarak düzenleyebilir ve sonucu üretim kodunda kullanılabilecek bir koda aktarabilirsiniz. (I1ac13)
  • Şekil ana hattı ilerlemesi için açı ölçümlerini eğri uzunluğu ölçümleriyle değiştirin. Bu sayede, dönüştürme için daha karmaşık şekiller kullanılabilir. (I75478) , I390dd
  • Özellik eşleme algoritması iyileştirildi. Böylece daha fazla dönüşüm daha doğal görünecek. (I83287)

API Değişiklikleri

  • SVG yolu içe aktarma ve özellik serileştirici eklendi. Normal akış şöyledir:
    • Bir SVG yolunu (SVG'nin path öğesindeki d özelliğinin değeri) List<Feature>'ye dönüştürmek için yeni SvgPathParser.parseFeatures() işlevini kullanın.
    • Bu, değiştirilebilir ve ardından FeatureSerializer.serialize() ile dizeye dönüştürülebilir.
    • Sonuçta elde edilen dize, FeatureSerializer.parse() ile içe aktarılarak üretim kodunda kullanılabilir.
    • 1. ve 2. adımların bir kez yapıldığını ve yeni uygulamayla yapılabileceğini unutmayın. Üretim kodunun yalnızca 3. adımı yapması gerekir. (I9bd00, b/371196190), (Ic3842), (If68ed), (I10251)
  • Poligon özelliklerini ve özellik türlerini gösterin. Artık List<Features> alan bir temel oluşturucuyla daha fazla genel RoundedPolygons oluşturulabilir. Özellikler temel olarak kübik Bezier eğrileri listesidir ancak Morph algoritmasının başlangıç ve bitiş şekilleri arasında eşleşme yapmasına yardımcı olmak için etiketlenirler (dışbükey köşeler dışbükey köşelerle, içbükey köşeler ise içbükey köşelerle eşleştirilir). (I61e76), (I1fc5c)
  • watchosDeviceArm64 KMP hedefi ve hedef kotlin 1.9 için destek ekler. (Icf15d, b/364652024)

Hata Düzeltmeleri

  • Son özellik boş olduğunda ortaya çıkan uç durum düzeltildi. (I390dd)
  • RoundedPolygon oluşturma sürecini daha sağlam hale getirin. (Ib862c, b/360888486)
  • RoundedPolygon başlatılırken oluşan hata düzeltildi. (I83ddb)
  • Çokgenin merkezini tahmin eden algoritmadaki bir hata düzeltildi. (Ida147)

Graphics Shapes Version 1.0

Sürüm 1.0.1

4 Eylül 2024

androidx.graphics:graphics-shapes:1.0.1, androidx.graphics:graphics-shapes-android:1.0.1 ve androidx.graphics:graphics-shapes-desktop:1.0.1 yayınlandı. 1.0.1 sürümü bu commit'leri içerir.

Sürüm 1.0.0

21 Ağustos 2024

androidx.graphics:graphics-shapes:1.0.0, androidx.graphics:graphics-shapes-android:1.0.0 ve androidx.graphics:graphics-shapes-desktop:1.0.0 yayınlandı. 1.0.0 sürümü bu commit'leri içerir.

Sürüm 1.0.0-rc01

24 Temmuz 2024

androidx.graphics:graphics-shapes:1.0.0-rc01, androidx.graphics:graphics-shapes-android:1.0.0-rc01 ve androidx.graphics:graphics-shapes-desktop:1.0.0-rc01 yayınlandı. 1.0.0-rc01 sürümü bu commit'leri içerir.

Sürüm 1.0.0-beta01

1 Mayıs 2024

androidx.graphics:graphics-shapes:1.0.0-beta01, androidx.graphics:graphics-shapes-android:1.0.0-beta01 ve androidx.graphics:graphics-shapes-desktop:1.0.0-beta01 yayınlandı. 1.0.0-beta01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Şekillerin farklı bir noktadan başlamak için önceden döndürülmesine izin verin. Bu değişiklik, pillStar şekillerinin eğrilerini çevre üzerinde varsayılan olmayan bir noktadan başlatmasına olanak tanır. Bu özellik, şeklin ana hattındaki belirli bir konumdan çizmeye başlamak için şeklin yolunun konturlanmasını animasyonla gösterirken faydalı olabilir. (Ifbb4d, b/324303807)
  • calculateBounds() işlevleri, RoundedPolygon'deki işlevlerle aynı olan Morph'a eklendi. (I8a3b6, b/325463575)

Sürüm 1.0.0-alpha05

7 Şubat 2024

androidx.graphics:graphics-shapes:1.0.0-alpha05, androidx.graphics:graphics-shapes-android:1.0.0-alpha05 ve androidx.graphics:graphics-shapes-desktop:1.0.0-alpha05 yayınlandı. 1.0.0-alpha05 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Kitaplık artık bu yuvarlak/yıldızlı şekillerin kolayca oluşturulması için yeni pill() ve pillStar() işlevleri sunuyor. Ayrıca, bir şekil için gereken tam sınırları hesaplamaya yönelik yeni API'ler de vardır (önceki sınırlar, temel Bezier eğrisi tutturma ve kontrol noktalarına dayalı yalnızca bir tahmindi). Bu API'ler, şeklin içinde döndürülmesi durumunda şekli barındıran kapsayıcının boyutunu belirlemek için yararlı olabilecek maksimum olası sınırları da hesaplar. (I71827)

API Değişiklikleri

  • Artık tam ve maksimum sınırları alma konusunda daha fazla seçeneğiniz var. (I6d49f, b/317286450)

Hata Düzeltmeleri

  • Bu şekiller, sıfır uzunluklu eğrilerle ilgili düşük düzeyli bir oluşturma sorunu nedeniyle zaman zaman konturlu yollar olarak çizilirken oluşturma artefaktları oluşuyordu. Bu hata, tüm sıfır uzunluklu eğriler (şekillerin ihtiyaç duymadığı ve bu nedenle şekillerin oluşturduğu yolların ek yükünden de tasarruf sağlayan) ortadan kaldırılarak düzeltildi.

Sürüm 1.0.0-alpha04

13 Aralık 2023

androidx.graphics:graphics-shapes:1.0.0-alpha04, androidx.graphics:graphics-shapes-android:1.0.0-alpha04 ve androidx.graphics:graphics-shapes-desktop:1.0.0-alpha04 yayınlandı. 1.0.0-alpha04 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Bu sürümde hata düzeltmelerinin yanı sıra çeşitli API değişiklikleri yer almaktadır.
  • API değişikliklerinin çoğu, Şekiller kitaplığını KMP ile uyumlu hale getiriyor. Bu sayede, Android'e özgü olmayan Compose kodu gibi Android dışı kodlardan arama yapmak kolaylaşır. Örneğin, API'de önceki PointF, Matrix ve Path türleri gibi Android türleri yoktur.
  • Ayrıca, özellikle nesne ayırmayı (ve toplamayı) en aza indirmek için performansla ilgili olarak API'lerde ve uygulamada çeşitli değişiklikler yapıldı. Örneğin, PointF'den ayrı Float parametrelerine geçiş, bu köşeleri tutmak için birçok geçici PointF yapısının ayrılmasını önler.

API Değişiklikleri

  • Morph.asMutableCubics, MutableCubics üzerinde yineleme yapacak bir işlevle değiştirildi. PointTransformer işlevsel arayüzü değiştirildi. Artık Point öğesinin x ve y koordinatlarını alıp TransformedResult döndürüyor (dönüştürülmüş x ve y koordinatlarıyla oluşturulur) (I6719e)
  • Herkese açık Cubic oluşturucu kaldırıldı ve fabrika işlevi haline getirildi. (I409ce)
  • Android'e özgü dönüştürme ve çizim API'leri ekleme (I079f6, b/292289543)
  • Android bağımlılıklarını ortadan kaldırın (Iadc1c, b/292289543)
  • Sabit ve kontrol özelliği adları artık daha mantıklı (If13bd, b/294562941)
  • PointF parametreleri Float çift olarak değiştirildi (Id4705, b/276466399, b/290254314)
  • progress artık doğrudan Morph çizim komutlarına iletiliyor (Icdca2)

Hata Düzeltmeleri

Sürüm 1.0.0-alpha03

7 Haziran 2023

androidx.graphics:graphics-shapes:1.0.0-alpha03 iptal edilir. 1.0.0-alpha03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Yeni RoundedPolygon.rectangle() işlevi eklendi (I78e7e, b/280322189)
  • Yıldız ve daire işlevleri artık küçük harflerle yazılıyor ve RoundedPolygon'nın yardımcı nesnesi aracılığıyla çağrılıyor. Örneğin: RoundedPolygon.star(...)(I14735)

Hata Düzeltmeleri

  • Düzeltme işlemindeki hata düzeltildi (Ibf894)
  • Başlangıç ve bitiş şekli aynı olduğunda oluşan hata düzeltildi. Kesimler için yan taraftaki boş alanı daha iyi dağıtın. Önce yuvarlama için boş alanı kullanın, boş alan kalırsa düzleştirme için kullanın. (Ibd320, b/277936300)

Sürüm 1.0.0-alpha02

19 Nisan 2023

androidx.graphics:graphics-shapes:1.0.0-alpha02 iptal edilir. 1.0.0-alpha02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Polygon üst sınıfı, alt sınıfı RoundedPolygon ile birleştirildi. Tüm poligonlar artık [isteğe bağlı olarak] yuvarlatılmış poligonlardır.
  • Yıldız işlevi (eski gibi RoundedPolygon döndürmeye devam eder) artık önceki innerRadiusRatio parametresi yerine innerRadius değeri alır. Bu parametre, mevcut yarıçap parametresiyle aynı birimlerde olduğundan işler daha basit ve tutarlı hale gelir. Ayrıca, aynı sayının hem iç hem de dış yarıçaplara uygulandığını netleştirmek için numOuterVertices parametresinin adı numVerticesPerRadius olarak değiştirildi.
  • CornerRounding.radius daha önce poligonun boyutuna göreli olarak belgelenmişti ancak göreli değil, mutlak bir değerdi (ve olmalıdır). Dokümanlar güncellendi ve maksimum 1,0 değeriyle sınırlayan ek açıklama düzeltildi.

Sürüm 1.0.0-alpha01

5 Nisan 2023

Graphics-Shapes, yuvarlak çokgen şekillerin kolayca oluşturulup işlenmesini ve farklı şekiller arasında basit ve otomatik şekil değiştirme (animasyon) yapılmasını sağlayan yeni bir kitaplıktır.

androidx.graphics:graphics-shapes:1.0.0-alpha01 iptal edilir. Bu sürüm, dahili bir daldan yayınlandı.

Yeni Özellikler

  • İstenen sayıda köşeye sahip normal ve yıldız poligonlar oluşturmak için Polygon API'yi kullanın.
  • Köşeler için yuvarlama yarıçapını ve düzleştirme parametrelerini belirtmek üzere isteğe bağlı CornerRounding parametrelerini kullanın. Bu sayede, köşeleri yuvarlatılmış çokgen şekiller elde edebilirsiniz.
  • Başlangıç ve bitiş şekilleri arasında animasyon oluşturmak için ilerleme durumu 0 ile 1 arasında ayarlanabilen bir "dönüşüm" şeklini otomatik olarak hesaplamak üzere yeni Morph(Polygon, Polygon) API'yi kullanın. Bu yeni yuvarlak şekiller arasında sorunsuz bir animasyon oluşturmak için sonucu her kareye çizerek zaman içindeki ilerlemeyi canlandırın.

Grafik Yolu Sürümü 1.0

Sürüm 1.0.1

1 Mayıs 2024

androidx.graphics:graphics-path:1.0.1 iptal edilir. 1.0.1 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Derleyici işaretlerinde iyileştirmeler yapıldı.

Sürüm 1.0.0

6 Mart 2024

androidx.graphics:graphics-path:1.0.0 iptal edilir.

Sürüm 1.0.0-rc01

21 Şubat 2024

androidx.graphics:graphics-path:1.0.0-rc01 iptal edilir. 1.0.0-rc01 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • API < 34'te PathIterator'ın performansını iyileştirme (Id4629)

Sürüm 1.0.0-beta02

10 Ocak 2024

Bu sürümdeki değişikliklerin tamamı, yerel kodun yaptığı varsayımlar nedeniyle gereğinden büyük olan kitaplığın boyutunu küçültmekle ilgiliydi.

androidx.graphics:graphics-path:1.0.0-beta02 iptal edilir. 1.0.0-beta02 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • libandroidx.graphics.path.so boyutunu %96 oranında küçülttü. (I71397)
  • libandroidx.graphics.path.so boyutunu %5 küçült. (I2da7c)
  • androidx.graphics:graphics-path'nın yerel bileşenleri %43 oranında küçültüldü. (I8e40d)

Sürüm 1.0.0-beta01

29 Kasım 2023

androidx.graphics:graphics-path:1.0.0-beta01 iptal edilir. 1.0.0-beta01 sürümü şu commit'leri içerir.

API Değişiklikleri

Hata Düzeltmeleri

  • Kitaplığın koniklerle ilgilenme şekli de dahil olmak üzere çeşitli düzeltmeler ve performans iyileştirmeleri.

Sürüm 1.0.0-alpha02

7 Haziran 2023

androidx.graphics:graphics-path:1.0.0-alpha02 iptal edilir. Bu sürüm, dahili bir dalda geliştirilmiştir.

Yeni Özellikler

  • Dahili platform sürümü kontrolüyle ilgili sorun düzeltildi. Bu sorun, Android 14 önizlemelerinde çalıştırılırken sorunlara neden oluyordu (sürüm kontrolü başarısız oluyordu ancak önceki sürümlerdeki işlemleri yapma mekanizması özellikle Android 14'te doğru çalışmıyordu).

Sürüm 1.0.0-alpha01

22 Mart 2023

androidx.graphics:graphics-path:1.0.0-alpha01 iptal edilir. 1.0.0-alpha01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Bu yeni kitaplık, yeni PathIterator API aracılığıyla Yol verilerinin sorgulanmasına olanak tanır. Arayanlar, bu API'yi kullanarak bir Path nesnesinin tüm segmentlerini yineleyebilir ve bu segmentlerle ilgili işlemi ve verileri belirleyebilir.
  • Kitaplık, Android 14 önizlemesinde kullanıma sunulan benzer API'leri kullanır ancak API'nin bu AndroidX sürümü, API 21'e kadar olan sürümlerde de çalışır.

Graphics Core Version 1.0

Sürüm 1.0.3

26 Mart 2025

androidx.graphics:graphics-core:1.0.3 iptal edilir. 1.0.3 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • API<33'e sahip belirli cihazlarda çizim yaparken tam ekran titremesi sorunu düzeltildi.

Sürüm 1.0.2

16 Ekim 2024

androidx.graphics:graphics-core:1.0.2 iptal edilir. 1.0.2 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • SurfaceControl örneklerinin serbest bırakıldıktan sonra bile sistem birleştiricisi tarafından yönetilmeye devam etmesi sorunu düzeltildi.
  • Düşük gecikmeli bağımlılıklar kaldırıldıktan sonra, şu anda sunulan HardwareBuffer örneğinin serbest bırakılmaması sorunu düzeltildi.
  • Ön arabellek kullanımı işaretini desteklemeyen belirli Android 14 ve sonraki sürümlerdeki cihazlarda titreme sorunu düzeltildi.

Sürüm 1.0.1

4 Eylül 2024

androidx.graphics:graphics-core:1.0.1 iptal edilir. 1.0.1 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Bellek kaynaklarının bazen serbest bırakılmaması sorunu düzeltildi.

Sürüm 1.0.0

29 Mayıs 2024

androidx.graphics:graphics-core:1.0.0 iptal edilir. 1.0.0 sürümü bu commit'leri içerir.

1.0.0 sürümünün temel özellikleri

  • graphics-core kitaplığının resmi kararlı sürümü. 1.0.0-rc01 sürümündeki küçük hata düzeltmeleri ve performans iyileştirmelerini içerir.

Sürüm 1.0.0-rc01

17 Nisan 2024

androidx.graphics:graphics-core:1.0.0-rc01 iptal edilir. Bu sürüm, dahili bir dalda geliştirilmiştir.

Hata Düzeltmeleri

  • Android 14 çalıştıran belirli Android cihazlarda CanvasBufferedRendererAPI ile dosya tanımlayıcılarının olası çift kapanmasına neden olan sorun düzeltildi.
  • FrameBuffer öğesinin arabellek örneklerini düzgün şekilde silmemesine neden olan sorun düzeltildi.

Sürüm 1.0.0-beta01

13 Aralık 2023

androidx.graphics:graphics-core:1.0.0-beta01 iptal edilir. 1.0.0-beta01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Görünüm hiyerarşisinde Android'in 2D grafik API'leriyle (Canvas + Paint) düşük gecikmeli oluşturmayı desteklemek için yeni bir LowLatencyCanvasView API kullanıma sunuldu.
  • CanvasBufferedRenderer API'si, donanım hızlandırmalı Canvas oluşturmayı HardwareBuffer'e desteklemek için kullanıma sunuldu. Bu, kullanıcı arayüzünün bir bölümünü Bitmap.wrapHardwareBuffer API kullanılarak bit eşleme olarak dönüştürülebilen bir arabelleğe çizmek için kullanılabilir.

API Değişiklikleri

  • CanvasBufferRenderer#releaseBuffer API'si, isteğe bağlı bir fence parametresine sahip olacak şekilde güncellendi. RenderResult#fence değerinin ne zaman döndürüldüğünü açıklayan doküman güncellendi. (If1ea7)
  • Çizim isteklerini planlamak için eş yordamlardan yararlanmayı desteklemek üzere draw yöntemini RenderRequest'ye ekleyin. Yürütücü tüketen önceki çizim yöntemini drawAsync olarak yeniden adlandırdı. isClosed() yöntemi, bir özelliğe yeniden düzenlendi. (I5bff6)
  • CanvasFrontBufferRenderer için arabellek biçimi parametresi kullanıma sunuldu. Böylece doğrudan CanvasBufferedRenderer.Builder#setBufferFormat ile eşleme yapılabilecek (I0f272)
  • Donanım hızlandırmalı tuval oluşturmayı HardwareBuffer olarak işlemek için CanvasBufferedRenderer API'si oluşturuldu. Bu, HardwareBuffers swapchain derinliğinin yapılandırılmasıyla birlikte Android Q'ya geri taşınmış bir uygulama sağlar. ColorSpace yapılandırması hâlâ Android U+ ile sınırlı olsa da uyumluluk uygulaması, geliştiriciler adına işlem yapmama davranışı sağlar. (I9b1d8)
  • Sorunsuz veya varsayılan geçişler için değişiklik stratejisiyle birlikte kare hızını kontrol etmek amacıyla SurfaceControlCompat.Transaction'ye setFrameRate/clearFrameRate API'leri ekleyin. (I6045c)
  • setDataSpace için gerekli API düzeyi, Android T'den Android Q'ya düşürüldü. (I59c34)
  • Tüketicilere, arabellek artık sunulmadığında durumu temizleme fırsatı vermek için GLFrameBufferRenderer API'sine onBufferReleased geri çağırma işlevi eklendi (I8a4e2).
  • Görüntü hiyerarşisi oluşturma ile senkronize edilen, düşük gecikmeli içerik oluşturma gibi basit bir kullanım alanını desteklemek için LowLatencyCanvasView oluşturun. Bu, sırasıyla senkronize ve düşük gecikmeli oluşturma için ekranda çevrilen SurfaceView örneğini dahili olarak yöneterek SurfaceView yönetimiyle ilişkili karmaşıklıkları azaltır. (I9253b)
  • CanvasFrontBufferedRenderer API'sine renk alanı yapılandırma desteği eklendi. Çoklu arabellekli geri çağırmalar, arka arabelleğe alınan SurfaceControl'yı da içerecek şekilde güncellendi (I24bd9).

Sürüm 1.0.0-alpha05

6 Eylül 2023

androidx.graphics:graphics-core:1.0.0-alpha05 iptal edilir. 1.0.0-alpha05 sürümü şu commit'leri içerir.

Yeni Özellikler

  • GLFrameBufferRenderer API'si kullanıma sunuldu. Bu, OpenGL bağımlılıkları, takas zinciri yapılandırması, piksel biçimleri ve SurfaceControl yapılandırmasının bir kombinasyonunu sağlar. (Ic775b)

API Değişiklikleri

  • SurfaceHolder#Callbacks boyutlarını aktarmak için çeşitli geri çağırma API'lerine genişlik ve yükseklik parametreleri eklendi. (I7f9fc)
  • Hem ön hem de çoklu arabelleğe alınmış katmanları temizlemek için net API eklendi. (Ic1f95)
  • GLFrontBufferedRenderer içinde kullanılan takas zincirlerinin temel arabellek türünü yapılandırma desteği eklendi. (I07a13)
  • Maksimum arabellek girişleri için GLFrameBufferRenderer, IntRange notunda ve sırasıyla setFormat/setUsage için HardwareBufferFormart ve HardwareBufferUsage notlarında getter'lar için Kotlin özellikleri eklendi. (Ief89e)
  • Yayın sınırı sağlamak için SurfaceControl işlemlerinde setBuffer API'si güncellendi. (Ice1bb)
  • Veri alanını yapılandırmanın yanı sıra genişletilmiş parlaklık aralığını ayarlamak için SurfaceControlCompat.Transaction API'leri eklendi. (Ic378d)

Sürüm 1.0.0-alpha04

7 Haziran 2023

androidx.graphics:graphics-core:1.0.0-alpha04 iptal edilir. 1.0.0-alpha04 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Mevcut OpenGL uygulamasının yanı sıra android.graphics.Canvas API'den yararlanan düşük gecikmeli grafiklerin desteklenmesi için CanvasFrontBufferedRenderer tanıtıldı.

API Değişiklikleri

  • Karşılık gelen platform API'sini yansıtmak için boş değer atanabilir HardwareBuffer örneklerine izin verecek şekilde SurfaceControlCompat.Transaction#setBuffer API'si güncellendi (I173d7).
  • Destekleyen takas zinciri 2'den fazla arabellek içerebileceğinden, Çift Arabellekli oluşturmaya atıfta bulunan yöntemleri Çoklu Arabellekli olarak yeniden adlandırın. (I830d7)
  • Üçüncü tarafların Canvas API'yi kullanarak ön arabellekli bir oluşturma sisteminden yararlanmasını sağlamak için CanvasFrontBufferedRenderer API'si oluşturun. (Ibfc29)

Hata Düzeltmeleri

  • İlgili Etkinlik devam ettirildikten sonra GLFrontBufferedRenderer simgesinin içeriği oluşturmaması sorunu düzeltildi.
  • Ön arabelleğe alınan içeriğin erken temizlenmesi sorunu düzeltildi.
  • Düşük gecikmeli grafik API'leri yayınlandıktan sonra SurfaceHolder.Callbacks simgesinin kaldırılmaması sorunu düzeltildi.

Sürüm 1.0.0-alpha03

22 Mart 2023

androidx.graphics:graphics-core:1.0.0-alpha03 iptal edilir. 1.0.0-alpha03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Arabellek genişliği/yüksekliği içeren GLFrontBufferedRenderer geri çağırma uygulaması güncellendi. Bu uygulama, ara çizim arabelleğine oluşturulduktan sonra orijinal hedefi yeniden hedeflemek için kullanılabilecek bir çerçeve arabelleği tanımlayıcısıyla birlikte BufferInfo nesnesini sağlar. (I7fe20)
  • SyncFence oluşturma işlemi, SyncFenceCompat üzerinde statik fabrika yöntemiyle birleştirildi.
  • SyncFence oluşturma için SyncFenceCompat fabrika yöntemi lehine eglDupNativeFenceFDANDROID için herkese açık uyumluluk yöntemi kaldırıldı. Bu, API düzeyinden bağımsız olarak tüm API yüzeylerinin doğru SyncFence uygulamasını almasını sağlamak içindir. (I849bb)
  • FrameBufferRenderer ve SyncStrategy için doküman eklendi.
    • FrameBufferRenderer + FrameBuffer + FrameBufferPool, androidx.graphics.opengl paketine taşındı
    • SyncStrategy, androidx.graphics.opengl paketine taşındı
    • RenderCallback#onDraw dokümanı güncellendi
    • API uygulayıcısının FrameBuffer.close işlevini çağırmaktan sorumlu olduğu RenderCallback#obtainFrameBuffer işlevinin güncellenmiş belgeleri
    • Tüketicilerin, gösterilecek içerikleri göndermekten sorumlu olduğunu belirtmek için onDrawComplete güncellendi
    • Çerçeveyi yansıtmak için SyncFence uyumluluk arayüzleri/sınıfları androidx.hardware paketine taşındı.
    • SyncFence API'sinin adı SyncFenceV19 olarak değiştirildi ve mümkün olan her yerde SyncFence API'sini kullanan SyncFenceCompat'de kullanımları birleştirmek için özel hale getirildi. (I5149c)
  • GLFrontBufferedRenderer#cancel ve GLFrontBufferedRenderer#execute yöntemleri eklendi. Birincisi, ön arabelleğe oluşturmanın iptal edilmesi ve ön arabelleğin gizlenmesi gereken avuç içiyle dokunmayı reddetme senaryolarında kullanışlıdır. İkincisi, GL iş parçacığındaki nesneleri oluşturmayı planlamadan değiştirme senaryolarında kullanışlıdır. (If0b7f)
  • Doğrudan çift arabellekli katmana oluşturmak için API ekleyin. Bu, devam ettirildikten sonra bir sahnenin yeniden oluşturulmasına yardımcı olmanın yanı sıra tüketicilere, oluşturulacak istenen sahneye göre ön arabellekli oluşturmayı dinamik olarak ne zaman kullanacaklarını seçme fırsatı da verir. (Ied56c)
  • SurfaceControlCompat.Builder'ya yeni bir API eklendi. Bu API, SurfaceView'deki mevcut mekanizmaya ek olarak başka bir SurfaceControl örneğinden üst SurfaceControl'nin yapılandırılmasını destekler. (I1d1b6)
  • Kullanımdan kaldırılan ve gizlenen işlevlerin daha fazla dönüş türü null olabilir (Ibf7b0)
  • Android cihazın, EGL_ANDROID_get_native_client_buffer örneklerinin EGLImage örneği olarak kullanılabilen EGLClientBuffer nesnelerine aktarılmasını destekleyip desteklemediğini sorgulamak için EGL_ANDROID_get_native_client_buffer uzantı sabiti eklendi.HardwareBuffer (Iad767)
  • @JvmDefaultWithCompatibility ek açıklamasının eklenmesi (I8f206)

Sürüm 1.0.0-alpha02

9 Kasım 2022

androidx.graphics:graphics-core:1.0.0-alpha02 iptal edilir. 1.0.0-alpha02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Android S'te (I0a035) kullanıma sunulan addTransactionCommitListener için eksik RequiresApi açıklaması düzeltildi.
  • onDraw<Front/Double> Arabellek geri çağırmaları, tüketicilerin mevcut arabellek genişliği/yüksekliğine ek olarak köşe gölgelendiricilerine iletebileceği bir dönüştürme matrisi sağlayacak şekilde güncellendi. Tüketiciler, OpenGL oluşturma kodlarını uygun şekilde önceden döndürmek için bu parametreleri kullanmaktan sorumludur. (I82f9e)

Hata Düzeltmeleri

  • SurfaceControl işlemleri yayınlanmadan önce arabellekler önceden döndürülerek grafik gecikmesi iyileştirildi.
  • Hata günlüklerinde 300d (EGL_BAD_SURFACE) hatasının gösterilmesine neden olan sorun düzeltildi.
  • GLFrontBufferedRenderer öğesinin, içinde kullanıldığı ilgili Etkinlik devam ettirildikten sonra geçersiz olmasına neden olan sorun düzeltildi.
  • Emülatörler ve ChromeOS cihazlar için daha fazla destek.
  • Ön arabellekli katmanın erken gizlenmesiyle ilgili sorun düzeltildi.

Sürüm 1.0.0-alpha01

24 Ekim 2022

androidx.graphics:graphics-core:1.0.0-alpha01 iptal edilir. 1.0.0-alpha01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Graphics Core AndroidX kitaplığının ilk sürümü. Bu, ekran kalemi girişi gibi düşük gecikmeli kullanım alanlarını destekleyen API'leri içerir. Bu, OpenGL kullanımı için bazı yardımcı API'leri de sunar.

API Değişiklikleri

  • Hem düşük gecikme süresi hem de yüksek kaliteli oluşturma çıkışı elde etmek için ön ve çoklu arabelleğe alınmış oluşturmaya yardımcı olacak GLFrontBufferedRenderer özelliğini sunar.
  • GLRenderer, TextureView gibi çeşitli Surface sağlayıcılar için OpenGL oluşturmaya yardımcı olacak GLRenderer API'sini kullanıma sunar.SurfaceView