Grafiken
In dieser Tabelle sind alle Artefakte in der Gruppe androidx.graphics
aufgeführt.
Artefakt | Stabile Version | Release Candidate | Beta-Ausgabe | Alphaversion |
---|---|---|---|---|
graphics-core | 1.0.2 | - | – | - |
graphics-path | 1.0.1 | - | – | - |
graphics-shapes | 1.0.1 | - | - | 1.1.0-alpha01 |
Abhängigkeiten deklarieren
Wenn Sie eine Abhängigkeit von „Graphics“ hinzufügen möchten, müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.
Fügen Sie der Datei build.gradle
für Ihre App oder Ihr Modul die Abhängigkeiten für die erforderlichen Artefakte hinzu:
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") }
Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.
Feedback
Ihr Feedback hilft uns, Jetpack zu verbessern. Bitte teilen Sie uns mit, wenn Sie neue Probleme feststellen oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können einem vorhandenen Problem Ihre Stimme geben, indem Sie auf die Schaltfläche mit dem Stern klicken.
Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.
Für dieses Artefakt gibt es keine Versionshinweise.
Grafikversion 1.1
Version 1.1.0-alpha01
11. Dezember 2024
androidx.graphics:graphics-*:1.1.0-alpha01
wird veröffentlicht. Version 1.1.0-alpha01 enthält diese Commits.
Neue Funktionen
- Die Hauptdemo wurde in einen generischen Formeditor umgewandelt. So können Sie Formen aus einem SVG-Pfad importieren, die erkannten Elemente bei Auslassungen im automatischen Prozess manuell bearbeiten und das Ergebnis in Code exportieren, der im Produktionscode verwendet werden kann. (I1ac13)
- Ersetzen Sie die Winkelmessungen für den Fortschritt des Umrisses der Form durch Messungen der Kurvenlänge. So können komplexere Formen für das Morphing verwendet werden. (I75478) , I390dd
- Der Algorithmus für die Feature-Zuordnung wurde verbessert, sodass mehr Morphs natürlicher aussehen sollten. (I83287)
API-Änderungen
- SVG-Pfadimport und Feature-Serializer hinzufügen Der übliche Ablauf ist:
- Mit dem neuen
SvgPathParser.parseFeatures()
können Sie einen SVG-Pfad (den Wert desd
-Attributs impath
-Element einer SVG-Datei) in einenList<Feature>
konvertieren. - Dieser kann geändert und dann mit
FeatureSerializer.serialize()
in einen String serialisiert werden. - Der resultierende String kann in Produktionscode verwendet werden, indem er mit
FeatureSerializer.parse()
importiert wird. - Die Schritte 1 und 2 werden nur einmal ausgeführt und können mit der neuen App durchgeführt werden. Für den Produktionscode sollte nur Schritt 3 erforderlich sein. (I9bd00, b/371196190), (Ic3842), (If68ed), (I10251)
- Mit dem neuen
- Polygonelemente und -typen sichtbar machen Mit dem Basiskonstruktor, der eine
List<Features>
annimmt, können jetzt generischereRoundedPolygons
erstellt werden. Die Features bestehen hauptsächlich aus einer Liste von kubischen Bézierkurven, die jedoch getaggt sind, damit der Morph-Algorithmus die Start- und Endformen abgleichen kann (konvexe Ecken werden konvexen Ecken und konkave Ecken konkaven Ecken zugeordnet). (I61e76), (I1fc5c) - Unterstützung für
watchosDeviceArm64
KMP-Ziel und Ziel Kotlin 1.9 hinzugefügt. (Icf15d, b/364652024)
Fehlerkorrekturen
- Behobener Grenzfall, wenn das letzte Element leer war. (I390dd)
- Die Erstellung von
RoundedPolygon
-Inhalten wurde robuster. (Ib862c, b/360888486) - Fehler bei der
RoundedPolygon
-Initialisierung behoben (I83ddb) - Ein Fehler im Algorithmus zur Schätzung des Mittelpunkts des Polygons wurde behoben. (Ida147)
Grafikformen – Version 1.0
Version 1.0.0
21. August 2024
androidx.graphics:graphics-shapes:1.0.0
, androidx.graphics:graphics-shapes-android:1.0.0
und androidx.graphics:graphics-shapes-desktop:1.0.0
werden losgelassen. Version 1.0.0 enthält diese Commits.
Version 1.0.0-rc01
24. Juli 2024
androidx.graphics:graphics-shapes:1.0.0-rc01
, androidx.graphics:graphics-shapes-android:1.0.0-rc01
und androidx.graphics:graphics-shapes-desktop:1.0.0-rc01
werden losgelassen. Version 1.0.0-rc01 enthält diese Commits.
Version 1.0.0-beta01
1. Mai 2024
androidx.graphics:graphics-shapes:1.0.0-beta01
, androidx.graphics:graphics-shapes-android:1.0.0-beta01
und androidx.graphics:graphics-shapes-desktop:1.0.0-beta01
werden losgelassen. Version 1.0.0-beta01 enthält diese Commits.
API-Änderungen
- Formen können vorab gedreht werden, damit sie an einem anderen Punkt beginnen. Durch diese Änderung können die Kurven von
pillStar
-Formen an einem anderen Punkt als dem Standardpunkt am Umriss beginnen. Das kann nützlich sein, wenn Sie den Pfad der Form animieren und das Zeichnen an einer bestimmten Stelle am Umriss der Form beginnen möchten. (Ifbb4d, b/324303807) - Für Morph wurden
calculateBounds()
-Funktionen hinzugefügt, die denselben Funktionen inRoundedPolygon
entsprechen. (I8a3b6, b/325463575)
Version 1.0.0-alpha05
7. Februar 2024
androidx.graphics:graphics-shapes:1.0.0-alpha05
, androidx.graphics:graphics-shapes-android:1.0.0-alpha05
und androidx.graphics:graphics-shapes-desktop:1.0.0-alpha05
werden losgelassen. Version 1.0.0-alpha05 enthält diese Commits.
Neue Funktionen
- Die Bibliothek bietet jetzt neue
pill()
- undpillStar()
-Funktionen zum einfachen Erstellen dieser abgerundeten/sternförmigen Formen. Es gibt auch neue APIs zum Berechnen der genauen Begrenzungen, die für eine Form erforderlich sind (die bisherigen Begrenzungen waren nur eine Schätzung basierend auf den zugrunde liegenden Bezier-Kurven-Ankern und -Kontrollpunkten) sowie der maximal möglichen Begrenzungen, die hilfreich sein können, um die Größe des Containers zu bestimmen, in dem sie sich befindet, wenn sie innerhalb dieses Containers gedreht wird. (I71827)
API-Änderungen
- Es gibt jetzt mehr Optionen zum Abrufen von genauen und maximalen Grenzen. (I6d49f, b/317286450)
Fehlerkorrekturen
- Beim Zeichnen dieser Formen als Linienpfade kam es gelegentlich zu Rendering-Artefakten. Das lag an einem Rendering-Problem auf niedriger Ebene im Zusammenhang mit Kurven mit Nulllänge. Dieser Fehler wurde behoben, indem alle Kurven mit Nulllänge entfernt wurden, die für die Formen nicht erforderlich sind. Dadurch wurde auch der Overhead der von den Formen erzeugten Pfade reduziert.
Version 1.0.0-alpha04
13. Dezember 2023
androidx.graphics:graphics-shapes:1.0.0-alpha04
, androidx.graphics:graphics-shapes-android:1.0.0-alpha04
und androidx.graphics:graphics-shapes-desktop:1.0.0-alpha04
werden losgelassen. Version 1.0.0-alpha04 enthält diese Commits.
Neue Funktionen
- Diese Version enthält mehrere API-Änderungen sowie Fehlerkorrekturen.
- Viele der API-Änderungen machen die Shapes-Bibliothek KMP-freundlich. So können Sie die Funktion auch von nicht-Android-Code aus aufrufen, z. B. von Android-unabhängigem Compose-Code. In der API gibt es beispielsweise keine Android-Typen wie die vorherigen PointF-, Matrix- und Path-Typen.
- Außerdem wurden aus Leistungsgründen mehrere Änderungen an den APIs und der Implementierung vorgenommen, insbesondere um die Objektzuweisung und -erfassung zu minimieren. Durch die Umstellung von PointF auf separate Float-Parameter wird beispielsweise vermieden, dass viele temporäre PointF-Strukturen für diese Eckpunkte zugewiesen werden.
API-Änderungen
Morph.asMutableCubics
wurde durch eine Funktion ersetzt, die über dieMutableCubics
iteriert. Die Funktionsweise vonPointTransformer
wurde geändert. Jetzt werden die X- und Y-Koordinaten einesPoint
übergeben und einTransformedResult
zurückgegeben, das mit den transformierten X- und Y-Koordinaten erstellt wird. (I6719e)- Der öffentliche Konstruktor von
Cubic
wurde entfernt und in eine Fabrikfunktion umgewandelt. (I409ce) - Hinzufügen von Android-spezifischen Transformations- und Zeichen-APIs (I079f6, b/292289543)
- Android-Abhängigkeiten beseitigen (Iadc1c, b/292289543)
- Die Namen von Anker- und Steuerelementen sind jetzt sinnvoller (If13bd, b/294562941)
PointF
-Parameter inFloat
-Paare geändert (Id4705, b/276466399, b/290254314)progress
wird jetzt direkt anMorph
-Zeichnebefehle übergeben (Icdca2)
Fehlerkorrekturen
- Ein Fehler beim Erstellen großer Formen wurde behoben. (I4fd66, b/313497325)
Version 1.0.0-alpha03
7. Juni 2023
androidx.graphics:graphics-shapes:1.0.0-alpha03
wird veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.
API-Änderungen
- Neue
RoundedPolygon.rectangle()
-Funktion hinzugefügt (I78e7e, b/280322189) - Stern- und Kreisfunktionen werden jetzt ohne Großbuchstaben geschrieben und über das zugehörige Objekt von
RoundedPolygon
aufgerufen: z.B.RoundedPolygon.star(...)
(I14735)
Fehlerkorrekturen
- Fehler bei der Glättung behoben (Ibf894)
- Ein Fehler wurde behoben, der auftrat, wenn Start- und Endform identisch waren. Verteil den verfügbaren Platz an den Seiten besser für Schnitte. Verwende den verfügbaren Platz zuerst zum Runden und dann zum Glätten, falls noch Platz übrig ist. (Ibd320, b/277936300)
Version 1.0.0-alpha02
19. April 2023
androidx.graphics:graphics-shapes:1.0.0-alpha02
wird veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.
API-Änderungen
- Die Superklasse „Polygon“ wurde mit ihrer Unterklasse
RoundedPolygon
zusammengeführt. Alle Polygone sind jetzt [optional] abgerundete Polygone. - Die Stern-Funktion, die weiterhin wie bisher einen
RoundedPolygon
zurückgibt, nimmt jetzt eineninnerRadius
-Wert anstelle des bisherigeninnerRadiusRatio
-Parameters an. Dieser Wert wird in denselben Einheiten wie der vorhandene Radiusparameter angegeben, was die Nutzung vereinfacht und einheitlicher macht. Außerdem wurde der ParameternumOuterVertices
innumVerticesPerRadius
umbenannt, um zu verdeutlichen, dass dieselbe Zahl sowohl auf den Innen- als auch auf den Außenradius angewendet wird. - Bisher wurde angegeben, dass
CornerRounding.radius
relativ zur Größe des Polygons ist. Es handelt sich jedoch um einen absoluten, nicht um einen relativen Wert. Die Dokumentation wurde aktualisiert und die Anmerkung, die den Wert auf 1,0 begrenzte, wurde korrigiert.
Version 1.0.0-alpha01
5. April 2023
Graphics-Shapes ist eine neue Bibliothek, mit der sich abgerundete polygonale Formen ganz einfach erstellen und rendern lassen. Außerdem ist es möglich, Formen automatisch zu verformen (animieren).
androidx.graphics:graphics-shapes:1.0.0-alpha01
wird veröffentlicht. Diese Version wurde aus einem internen Branch veröffentlicht.
Neue Funktionen
- Mit der Polygon API können Sie regelmäßige und sternförmige Polygone mit der gewünschten Anzahl von Eckpunkten erstellen.
- Verwenden Sie optionale
CornerRounding
-Parameter, um den Radius der Rundung und die Smoothing-Parameter für die Ecken anzugeben. So erhalten Sie polygonale Formen mit abgerundeten Ecken. - Mit der neuen
Morph(Polygon, Polygon)
API können Sie automatisch eine „Morph“-Form berechnen, deren Fortschritt von 0 auf 1 festgelegt werden kann, um zwischen der Anfangs- und Endform zu animieren. Animieren Sie diesen Vorgang im Zeitverlauf, indem Sie das Ergebnis in jedem Frame zeichnen, um eine flüssige Animation zwischen diesen neuen abgerundeten Formen zu erstellen.
Graphics Path Version 1.0
Version 1.0.1
1. Mai 2024
androidx.graphics:graphics-path:1.0.1
wird veröffentlicht. Version 1.0.1 enthält diese Commits.
Fehlerkorrekturen
- Verbesserungen an den Compiler-Flags.
Version 1.0.0
6. März 2024
androidx.graphics:graphics-path:1.0.0
wird veröffentlicht.
Version 1.0.0-rc01
21. Februar 2024
androidx.graphics:graphics-path:1.0.0-rc01
wird veröffentlicht. Version 1.0.0-rc01 enthält diese Commits.
Fehlerkorrekturen
- Leistung von PathIterator bei API < 34 verbessern (Id4629)
Version 1.0.0-beta02
10. Januar 2024
Die Änderungen in dieser Version zielten darauf ab, die Größe der Bibliothek zu reduzieren, die aufgrund von Annahmen im nativen Code größer als nötig war.
androidx.graphics:graphics-path:1.0.0-beta02
wird veröffentlicht. Version 1.0.0-beta02 enthält diese Commits.
Fehlerkorrekturen
- Die Größe von
libandroidx.graphics.path.so
wurde um 96 % reduziert. (I71397) - Verringern Sie die Größe von
libandroidx.graphics.path.so
um 5%. (I2da7c) - Die nativen Komponenten von
androidx.graphics:graphics-path
wurden um 43 % verkleinert. (I8e40d)
Version 1.0.0-beta01
29. November 2023
androidx.graphics:graphics-path:1.0.0-beta01
wird veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.
API-Änderungen
- Verwendung der experimentellen
isAtLeastU()
API entfernt (Ie9117, b/289269026)
Fehlerkorrekturen
- Verschiedene Fehlerkorrekturen und Leistungsverbesserungen, u. a. bei der Verarbeitung von Kegelschnitten
Version 1.0.0-alpha02
7. Juni 2023
androidx.graphics:graphics-path:1.0.0-alpha02
wird veröffentlicht. Diese Version wird in einem internen Branch entwickelt.
Neue Funktionen
- Ein Problem mit der internen Plattformversionsprüfung wurde behoben, das bei der Ausführung in Android 14-Vorabversionen zu Problemen führte. Die Versionsprüfung schlug fehl, aber der Mechanismus für die Ausführung in früheren Releases funktionierte insbesondere bei Android 14 nicht richtig.
Version 1.0.0-alpha01
22. März 2023
androidx.graphics:graphics-path:1.0.0-alpha01
wird veröffentlicht. Version 1.0.0-alpha01 enthält diese Commits.
Neue Funktionen
- Mit dieser neuen Bibliothek können Pfaddaten über die neue
PathIterator
API abgefragt werden. Mit dieser API können Aufrufer alle Segmente eines Pfadobjekts durchlaufen, um den Vorgang und die Daten für diese Segmente zu ermitteln. - Die Bibliothek verwendet ähnliche APIs, die in der Android 14-Vorabversion eingeführt wurden. Diese AndroidX-Version der API funktioniert jedoch auch mit Versionen bis API 21.
Graphics Core Version 1.0
Version 1.0.2
16. Oktober 2024
androidx.graphics:graphics-core:1.0.2
wird veröffentlicht. Version 1.0.2 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem wurde behoben, durch das
SurfaceControl
-Instanzen auch nach der Freigabe noch vom System-Compositor verwaltet wurden. - Problem behoben, bei dem die aktuell angezeigte
HardwareBuffer
-Instanz nicht freigegeben wurde, nachdem Abhängigkeiten mit niedriger Latenz entsorgt wurden - Problem mit Flimmern auf bestimmten Geräten mit Android 14 und höher behoben, die das Flag für die Nutzung des Front-Buffers nicht unterstützten
Version 1.0.1
4. September 2024
androidx.graphics:graphics-core:1.0.1
wird veröffentlicht. Version 1.0.1 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem wurde behoben, durch das Speicherressourcen gelegentlich nicht freigegeben wurden.
Version 1.0.0
29. Mai 2024
androidx.graphics:graphics-core:1.0.0
wird veröffentlicht. Version 1.0.0 enthält diese Commits.
Wichtige Funktionen von 1.0.0
- Offizielle stabile Version der Grafikkernbibliothek. Enthält kleinere Fehlerkorrekturen und Leistungsverbesserungen aus 1.0.0-rc01
Version 1.0.0-rc01
17. April 2024
androidx.graphics:graphics-core:1.0.0-rc01
wird veröffentlicht. Diese Version wird in einem internen Branch entwickelt.
Fehlerkorrekturen
- Ein Problem wurde behoben, durch das auf bestimmten Android-Geräten mit Android 14 Dateien mit der
CanvasBufferedRendererAPI
möglicherweise doppelt geschlossen wurden. - Das Problem wurde behoben, dass
FrameBuffer
Framebuffer-Instanzen nicht ordnungsgemäß löschte.
Version 1.0.0-beta01
13. Dezember 2023
androidx.graphics:graphics-core:1.0.0-beta01
wird veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.
Neue Funktionen
- Einführung einer neuen
LowLatencyCanvasView
API zur Unterstützung von Rendering mit niedriger Latenz mit den 2D-Grafik-APIs von Android (Canvas + Paint) innerhalb der Ansichtshierarchie. - Einführung der
CanvasBufferedRenderer
API zur Unterstützung des hardwarebeschleunigten Canvas-Renderings in einemHardwareBuffer
. So können Sie einen Teil einer Benutzeroberfläche in einen Puffer zeichnen, der mit derBitmap.wrapHardwareBuffer
API in eine Bitmap umgewandelt werden kann.
API-Änderungen
- Die
CanvasBufferRenderer#releaseBuffer
API wurde um einen optionalen Zaunparameter erweitert. Die Dokumentation wurde aktualisiert, um zu beschreiben, wannRenderResult#fence
zurückgegeben wird. (If1ea7) - Die
draw
-Methode wurdeRenderRequest
hinzugefügt, um die Nutzung von coroutines zum Planen von Abrufanfragen zu unterstützen. Die vorherige draw-Methode, die einen Executor verbraucht hat, wurde indrawAsync
umbenannt. DieisClosed()
-Methode wurde in ein Attribut umstrukturiert. (I5bff6) - Der Parameter „Bufferformat“ wurde für
CanvasFrontBufferRenderer
freigegeben, um direkt aufCanvasBufferedRenderer.Builder#setBufferFormat
zu verweisen (I0f272) - Die
CanvasBufferedRenderer
API wurde erstellt, um hardwarebeschleunigtes Canvas-Rendering in einerHardwareBuffer
zu verarbeiten. Dies bietet eine Backport-Implementierung für Android Q sowie die Konfiguration einer Swapchain-Tiefe vonHardwareBuffers
. DieColorSpace
-Konfiguration ist weiterhin auf Android U und höher beschränkt. Die kompatible Implementierung führt jedoch im Namen der Entwickler zu keinem Vorgang. (I9b1d8) - Fügen Sie
SurfaceControlCompat.Transaction
setFrameRate
/clearFrameRate
APIs hinzu, um die Framerate zusammen mit der Änderungsstrategie für nahtlose oder Standardübergänge zu steuern. (I6045c) - Das erforderliche API-Level für
setDataSpace
wurde von Android T auf Android Q gesenkt. (I59c34) - Der
onBufferReleased
-Callback wurde derGLFrameBufferRenderer
API hinzugefügt, damit Nutzer den Status bereinigen können, wenn ein Buffer nicht mehr angezeigt wird (I8a4e2) - Erstelle
LowLatencyCanvasView
, um einen einfachen Anwendungsfall für das Rendern von Inhalten mit niedriger Latenz zu unterstützen, die mit dem Rendern der Ansichtshierarchie synchronisiert werden. Dadurch werden die mit derSurfaceView
-Verwaltung verbundenen Komplexitäten reduziert, da dieSurfaceView
-Instanz intern verwaltet wird, die für synchronisiertes und Rendering mit niedriger Latenz jeweils auf dem Bildschirm angezeigt oder ausgeblendet wird. (I9253b) - Unterstützung für die Farbraumkonfiguration wurde der
CanvasFrontBufferedRenderer
API hinzugefügt. Multibuffer-Callbacks wurden aktualisiert, um auch den Back-BufferSurfaceControl
zu berücksichtigen (I24bd9)
Version 1.0.0-alpha05
6. September 2023
androidx.graphics:graphics-core:1.0.0-alpha05
wird veröffentlicht. Version 1.0.0-alpha05 enthält diese Commits.
Neue Funktionen
- Einführung der
GLFrameBufferRenderer
API Dies bietet eine Kombination aus OpenGL-Abhängigkeiten, Swap-Chain-Konfiguration, Pixelformaten undSurfaceControl
-Konfiguration. (Ic775b)
API-Änderungen
- Den verschiedenen Callback-APIs wurden die Parameter „width“ und „height“ hinzugefügt, um Dimensionen von
SurfaceHolder#Callbacks
zu übergeben. (I7f9fc) - Die API „clear“ wurde hinzugefügt, um sowohl die Vorder- als auch die Multi-Buffer-Ebenen zu löschen. (Ic1f95)
- Es wurde Unterstützung für die Konfiguration des zugrunde liegenden Puffertyps von Swapchains hinzugefügt, die in
GLFrontBufferedRenderer
verwendet werden. (I07a13) - Kotlin-Eigenschaften für Getter bei
GLFrameBufferRenderer
,IntRange
-Anmerkung für maximale Buffereinträge sowieHardwareBufferFormart
- undHardwareBufferUsage
-Anmerkungen fürsetFormat
/setUsage
hinzugefügt. (Ief89e) - Die
setBuffer
API fürSurfaceControl
-Transaktionen wurde aktualisiert, um einen Release-Fence bereitzustellen. (Ice1bb) - Es wurden
SurfaceControlCompat.Transaction
APIs hinzugefügt, um den Datenbereich zu konfigurieren und den erweiterten Helligkeitsbereich festzulegen. (Ic378d)
Version 1.0.0-alpha04
7. Juni 2023
androidx.graphics:graphics-core:1.0.0-alpha04
wird veröffentlicht. Version 1.0.0-alpha04 enthält diese Commits.
Neue Funktionen
- Einführung von
CanvasFrontBufferedRenderer
zur Unterstützung von Grafiken mit geringer Latenz unter Verwendung derandroid.graphics.Canvas
API neben der vorhandenen OpenGL-Implementierung
API-Änderungen
- Die
SurfaceControlCompat.Transaction#setBuffer
API wurde aktualisiert, damit nullableHardwareBuffer
-Instanzen die entsprechende Plattform-API widerspiegeln können (I173d7) - Benennen Sie Methoden, die sich auf das Double-Buffered-Rendering beziehen, in „Multi-Buffered“ um, da die Back-Swapchain mehr als zwei Puffer enthalten kann. (I830d7)
- Erstellen Sie die
CanvasFrontBufferedRenderer
API, damit Drittanbieter ein Front-Buffer-Rendering-System mit der Canvas API nutzen können. (Ibfc29)
Fehlerkorrekturen
- Das Problem, bei dem
GLFrontBufferedRenderer
nach der Wiederaufnahme der entsprechenden Aktivität keine Inhalte mehr renderte, wurde behoben. - Ein Problem wurde behoben, durch das vorab gepufferte Inhalte vorzeitig gelöscht wurden.
- Problem behoben, bei dem
SurfaceHolder.Callbacks
nach der Veröffentlichung von Grafik-APIs mit niedriger Latenz nicht entfernt wurde.
Version 1.0.0-alpha03
22. März 2023
androidx.graphics:graphics-core:1.0.0-alpha03
wird veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.
API-Änderungen
- Die
GLFrontBufferedRenderer
-Callback-Implementierung wurde aktualisiert, um einBufferInfo
-Objekt mit Bufferbreite/-höhe sowie einer Frame-Buffer-ID bereitzustellen, mit der das ursprüngliche Ziel nach dem Rendern in einen Zwischen-Scratch-Buffer neu ausgerichtet werden kann. (I7fe20) - Die Erstellung von
SyncFence
wurde in der statischen Factory-Methode vonSyncFenceCompat
konsolidiert. - Die öffentliche Kompatibilitätsmethode für
eglDupNativeFenceFDANDROID
wurde zugunsten derSyncFenceCompat
-Werksmethode für die Erstellung von SyncFence entfernt. So wird sichergestellt, dass alle API-Oberflächen unabhängig von der API-Ebene die richtigeSyncFence
-Implementierung erhalten. (I849bb) - Dokumentation für
FrameBufferRenderer
undSyncStrategy
hinzugefügt.FrameBufferRenderer
+FrameBuffer
+FrameBufferPool
in dasandroidx.graphics.opengl
-Paket verschobenSyncStrategy
in dasandroidx.graphics.opengl
-Paket verschobenRenderCallback#onDraw
Dokumente aktualisiert- Aktualisierte Dokumentation von
RenderCallback#obtainFrameBuffer
, die der Implementator der API für den Aufruf vonFrameBuffer.close
verantwortlich ist onDrawComplete
wurde aktualisiert, um anzugeben, dass Nutzer für die Übermittlung von Inhalten zur Anzeige verantwortlich sind.SyncFence
-Kompatibilitätsschnittstellen/-klassen in dasandroidx.hardware
-Paket verschoben, um das Framework widerzuspiegeln- Die
SyncFence
API wurde inSyncFenceV19
umbenannt und zu einer privaten API, um die Nutzung aufSyncFenceCompat
zu konzentrieren, die nach Möglichkeit dieSyncFence
API des Frameworks nutzt. (I5149c)
- Die Methoden
GLFrontBufferedRenderer#cancel
undGLFrontBufferedRenderer#execute
wurden hinzugefügt. Ersteres ist nützlich bei Szenarien zur Handflächenerkennung, bei denen das Rendern in den Front-Buffer abgebrochen und der Front-Buffer ausgeblendet werden soll. Letzteres ist in Szenarien nützlich, in denen Objekte im GL-Thread manipuliert werden sollen, ohne ein Rendern planen zu müssen. (If0b7f) - API hinzufügen, um direkt in der doppelten Pufferebene zu rendern. Dies unterstützt das erneute Rendern einer Szene nach der Wiederaufnahme und bietet Nutzern die Möglichkeit, selektiv zu bestimmen, wann das Front-Buffer-Rendering dynamisch basierend auf der gewünschten zu rendernden Szene verwendet werden soll. (Ied56c)
SurfaceControlCompat.Builder
wurde eine neue API hinzugefügt, um die übergeordneteSurfaceControl
neben dem vorhandenen Mechanismus über eineSurfaceView
-Instanz zu konfigurieren.SurfaceControl
(I1d1b6)- Mehr Informationen zur Nullbarkeit des Rückgabetyps von eingestellten und ausgeblendeten Funktionen (Ibf7b0)
- Es wurde die
EGL_ANDROID_get_native_client_buffer
-Erweiterungskonstante hinzugefügt, um abzufragen, ob das Android-Gerät den Import vonHardwareBuffer
-Instanzen inEGLClientBuffer
-Objekte unterstützt, die alsEGLImage
-Instanz verwendet werden können. (Iad767) @JvmDefaultWithCompatibility
-Anmerkung hinzufügen (I8f206)
Version 1.0.0-alpha02
9. November 2022
androidx.graphics:graphics-core:1.0.0-alpha02
wird veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.
API-Änderungen
- Fehlende
RequiresApi
-Anmerkung füraddTransactionCommitListener
in Android S behoben (I0a035) - Die
onDraw<Front/Double>
-Buffer-Callbacks wurden aktualisiert, um eine Transformationsmatrix bereitzustellen, die Abnehmer zusätzlich zur aktuellen Bufferbreite/-höhe an ihre Vertex-Shader übergeben können. Die Nutzer sind dafür verantwortlich, ihren OpenGL-Rendering-Code mithilfe dieser Parameter ordnungsgemäß zu drehen. (I82f9e)
Fehlerkorrekturen
- Die Grafiklatenz wurde durch Vorab-Rotation der Puffer vor dem Ausführen von
SurfaceControl
-Transaktionen verbessert. - Behoben: In den Fehlerprotokollen wurde der Fehler 300d (EGL_BAD_SURFACE) angezeigt.
- Das Problem, bei dem
GLFrontBufferedRenderer
ungültig wurde, nachdem die entsprechende Aktivität, in der es verwendet wurde, fortgesetzt wurde, wurde behoben. - Erweiterter Support für Emulatoren und ChromeOS-Geräte
- Ein Problem wurde behoben, durch das die vorderste Pufferebene möglicherweise zu früh ausgeblendet wurde.
Version 1.0.0-alpha01
24. Oktober 2022
androidx.graphics:graphics-core:1.0.0-alpha01
wird veröffentlicht. Version 1.0.0-alpha01 enthält diese Commits.
Neue Funktionen
- Erste Version der AndroidX-Bibliothek für den Grafikkern. Dazu gehören APIs zur Unterstützung von Anwendungsfällen mit niedriger Latenz, z. B. Eingaben per Eingabestift. Außerdem werden einige Hilfs-APIs für die Verwendung von OpenGL eingeführt.
API-Änderungen
- Einführung von
GLFrontBufferedRenderer
zur Unterstützung des Front- und Multi-Buffer-Renderings, um sowohl eine geringe Latenz als auch eine hohe Qualität der Rendering-Ausgabe zu erzielen. - Einführung der
GLRenderer
API zur Unterstützung des OpenGL-Renderings für verschiedene Surface-Anbieter wieSurfaceView
undTextureView
.