Grafiken
In dieser Tabelle sind alle Artefakte in der Gruppe androidx.graphics
aufgeführt.
Artefakt | Stabile Version | Releasekandidat | Beta-Ausgabe | Alpharelease |
---|---|---|---|---|
graphics-core | 1.0.3 | - | – | - |
graphics-path | 1.0.1 | - | – | - |
graphics-shapes | 1.0.1 | - | 1.1.0-beta01 | - |
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 benötigten Artefakte hinzu:
Groovy
dependencies { implementation "androidx.graphics:graphics-core:1.0.3" implementation "androidx.graphics:graphics-path:1.0.1" implementation "androidx.graphics:graphics-shapes:1.1.0-beta01" }
Kotlin
dependencies { implementation("androidx.graphics:graphics-core:1.0.3") implementation("androidx.graphics:graphics-path:1.0.1") implementation("androidx.graphics:graphics-shapes:1.1.0-beta01") }
Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.
Feedback
Ihr Feedback hilft uns, Jetpack zu verbessern. Lassen Sie es uns wissen, wenn Sie neue Probleme entdecken 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 für ein vorhandenes Problem abstimmen, indem Sie auf die Schaltfläche mit dem Stern klicken.
Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung.
Für dieses Artefakt gibt es keine Versionshinweise.
Grafiken Version 1.1
Version 1.1.0-beta01
30. Juli 2025
androidx.graphics:graphics-*:1.1.0-beta01
wird veröffentlicht. Version 1.1.0-beta01 enthält diese Commits.
API-Änderungen
- Für Projekte, die mit Kotlin 2.0 veröffentlicht wurden, ist KGP 2.0.0 oder höher erforderlich (Idb6b5).
- Fügen Sie
mingwX64
-, JS- und WASM-Kompilierungsziele hinzu. (I2c46a)
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 Form-Editor umgewandelt. So können Sie Formen aus einem SVG-Pfad importieren, die erkannten Features bei Fehlern im automatischen Prozess manuell bearbeiten und das Ergebnis in Code exportieren, der im Produktionscode verwendet werden kann. (I1ac13)
- Winkelmessungen für den Fortschritt der Formkontur werden durch Messungen der Kurvenlänge ersetzt. Dadurch können komplexere Formen für das Morphen verwendet werden. (I75478) , I390dd
- Der Algorithmus für die Merkmalszuordnung wurde verbessert, sodass mehr Morphs natürlicher aussehen sollten. (I83287)
API-Änderungen
- SVG-Pfadimport und Feature-Serialisierung hinzufügen. Der übliche Ablauf ist:
- Mit dem neuen
SvgPathParser.parseFeatures()
können Sie einen SVG-Pfad (den Wert des Attributsd
für das Elementpath
eines SVG) in einenList<Feature>
konvertieren. - Das kann geändert und dann mit
FeatureSerializer.serialize()
in einen String serialisiert werden. - Der resultierende String kann im 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. Im Produktionscode muss nur Schritt 3 ausgeführt werden. (I9bd00, b/371196190), (Ic3842), (If68ed), (I10251)
- Mit dem neuen
- Polygon-Elemente und ‑Elementtypen verfügbar machen Mit dem Basiskonstruktor, der ein
List<Features>
akzeptiert, können jetzt allgemeinereRoundedPolygons
erstellt werden. Die Funktionen bestehen hauptsächlich aus einer Liste von kubischen Bézierkurven. Sie werden jedoch getaggt, damit der Morphing-Algorithmus die Start- und Endformen besser abgleichen kann (konvexe Ecken werden konvexen Ecken und konkave Ecken konkaven Ecken zugeordnet). (I61e76), (I1fc5c) - Unterstützung für das
watchosDeviceArm64
-KMP-Ziel und Kotlin 1.9 hinzugefügt. (Icf15d, b/364652024)
Fehlerkorrekturen
- Ein Grenzfall wurde behoben, bei dem das letzte Feature leer war. (I390dd)
- Die Erstellung von
RoundedPolygon
robuster gestalten (Ib862c, b/360888486) - Fehler bei der Initialisierung von
RoundedPolygon
beheben. (I83ddb) - Beheben Sie einen Fehler im Algorithmus zur Schätzung des Mittelpunkts des Polygons. (Ida147)
Grafikformen, Version 1.0
Version 1.0.1
4. September 2024
androidx.graphics:graphics-shapes:1.0.1
, androidx.graphics:graphics-shapes-android:1.0.1
und androidx.graphics:graphics-shapes-desktop:1.0.1
sind veröffentlicht. Version 1.0.1 enthält diese Commits.
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
sind veröffentlicht. 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
sind veröffentlicht. 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
sind veröffentlicht. 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
pillStar
-Formen ihre Kurven an einem nicht standardmäßigen Punkt auf dem Umfang beginnen. Das kann nützlich sein, wenn Sie die Strichführung des Pfads der Form animieren möchten, um das Zeichnen an einer bestimmten Stelle auf der Kontur der Form zu beginnen. (Ifbb4d, b/324303807) calculateBounds()
-Funktionen für Morph hinzugefügt, die den entsprechenden Funktionen aufRoundedPolygon
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
sind veröffentlicht. 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 Grenzen, die für eine Form erforderlich sind. Die bisherigen Grenzen waren nur eine Schätzung basierend auf den Anker- und Kontrollpunkten der zugrunde liegenden Bézierkurve. Außerdem gibt es APIs zum Berechnen der maximal möglichen Grenzen, was hilfreich sein kann, um die Größe des Containers zu bestimmen, in dem die Form rotiert 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 gestrichelte Pfade traten gelegentlich Rendering-Artefakte auf, die auf ein Low-Level-Rendering-Problem im Zusammenhang mit Kurven mit der Länge null zurückzuführen waren. Dieser Fehler wurde behoben, indem alle Kurven mit der Länge null entfernt wurden. Die Formen benötigen diese nicht, sodass auch der Overhead der von den Formen erstellten Pfade reduziert wird.
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
sind veröffentlicht. 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-freundlicher. Dadurch wird es einfacher, die Funktion aus Nicht-Android-Code (z. B. Android-agnostischem Compose-Code) aufzurufen. So gibt es in der API beispielsweise keine Android-Typen wie die vorherigen Typen PointF, Matrix und Path.
- Aus Leistungsgründen wurden auch mehrere Änderungen an APIs und der Implementierung vorgenommen, insbesondere um die Objektzuweisung (und -sammlung) zu minimieren. Durch die Umstellung von PointF auf separate Float-Parameter wird beispielsweise vermieden, dass viele temporäre PointF-Strukturen zum Speichern dieser Eckpunkte zugewiesen werden müssen.
API-Änderungen
Morph.asMutableCubics
wurde durch eine Funktion ersetzt, mit der dieMutableCubics
durchlaufen werden kann. Die funktionale Schnittstelle vonPointTransformer
wurde geändert. Sie verwendet jetzt die x- und y-Koordinaten einesPoint
und gibt einTransformedResult
zurück, das mit den transformierten x- und y-Koordinaten erstellt wird (I6719e).- Der öffentliche
Cubic
-Konstruktor wurde entfernt und in eine Factory-Funktion umgewandelt. (I409ce) - Android-spezifische Transformations- und Zeichen-APIs hinzugefügt (I079f6, b/292289543)
- Android-Abhängigkeiten entfernen (Iadc1c, b/292289543)
- Die Namen der Anker- und Kontrollattribute sind jetzt sinnvoller (If13bd, b/294562941).
PointF
-Parameter inFloat
-Paare geändert (Id4705, b/276466399, b/290254314)progress
wird jetzt direkt anMorph
-Zeichenbefehle ü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 Funktion
RoundedPolygon.rectangle()
hinzugefügt (I78e7e, b/280322189) - Die Funktionen „Star“ und „Circle“ werden jetzt klein geschrieben und über das Companion-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. Verfügbaren Platz an den Seiten besser für Schnitte nutzen. Zuerst verfügbaren Platz für das Abrunden und dann für das Glätten verwenden, wenn noch Platz vorhanden 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] gerundete Polygone. - Die Star-Funktion (die wie bisher einen
RoundedPolygon
-Wert zurückgibt) verwendet jetzt eineninnerRadius
-Wert anstelle des bisherigeninnerRadiusRatio
-Parameters. Die Einheiten sind dieselben wie beim vorhandenen Parameter „radius“, was die Verwendung vereinfacht und für mehr Konsistenz sorgt. Außerdem wurde der ParameternumOuterVertices
innumVerticesPerRadius
umbenannt, um zu verdeutlichen, dass dieselbe Zahl sowohl auf den inneren als auch auf den äußeren Radius angewendet wird. CornerRounding.radius
wurde zuvor als relativ zur Größe des Polygons dokumentiert. Es war (und sollte) jedoch ein absoluter und kein relativer Wert sein. Die Dokumentation wurde aktualisiert und die Anmerkung, die den Wert auf maximal 1,0 begrenzt, wurde korrigiert.
Version 1.0.0-alpha01
5. April 2023
Graphics-Shapes ist eine neue Bibliothek, mit der sich abgerundete polygonale Formen einfach erstellen und rendern lassen. Außerdem ermöglicht sie das einfache und automatische Morphen (Animieren) zwischen verschiedenen Formen.
androidx.graphics:graphics-shapes:1.0.0-alpha01
wird veröffentlicht. Diese Version wurde über einen internen Branch veröffentlicht.
Neue Funktionen
- Mit der Polygon API können Sie regelmäßige und Sternpolygone mit der gewünschten Anzahl von Eckpunkten erstellen.
- Mit optionalen
CornerRounding
-Parametern können Sie den Rundungsradius und die Glättungsparameter für die Ecken angeben. So lassen sich polygonale Formen mit abgerundeten Ecken erstellen. - Mit der neuen
Morph(Polygon, Polygon)
API lässt sich automatisch eine „Morph“-Form berechnen, deren Fortschritt von 0 bis 1 festgelegt werden kann, um zwischen der Start- und der Endform zu animieren. Animieren Sie diesen Fortschritt im Zeitverlauf und zeichnen Sie das Ergebnis in jedem Frame, 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 bei 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-Versionen unter 34 verbessern (Id4629)
Version 1.0.0-beta02
10. Januar 2024
Bei den Änderungen in dieser Version ging es darum, die Größe der Bibliothek zu reduzieren. Sie war aufgrund von Annahmen im nativen Code größer als nötig.
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) - Reduziere 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
- Verwendungen der experimentellen
isAtLeastU()
API entfernt (Ie9117, b/289269026)
Fehlerkorrekturen
- Verschiedene Fehlerkorrekturen und Leistungsverbesserungen, einschließlich der Art und Weise, wie die Bibliothek mit Kegelschnitten umgeht.
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
- Das Problem mit der internen Versionsprüfung der Plattform wurde behoben. Es hatte Probleme bei der Ausführung auf Android 14-Vorabversionen verursacht. Die Versionsprüfung schlug fehl, aber der Mechanismus für die Ausführung von Aktionen auf früheren Releases funktionierte unter 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 Sie Pfaddaten über die neue
PathIterator
API abfragen. Mit dieser API können Aufrufer alle Segmente eines Path-Objekts 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 in Versionen bis zurück zu API 21.
Graphics Core Version 1.0
Version 1.0.3
26. März 2025
androidx.graphics:graphics-core:1.0.3
wird veröffentlicht. Version 1.0.3 enthält diese Commits.
Fehlerkorrekturen
- Problem behoben, bei dem im Vollbildmodus Flackern auftrat, wenn auf bestimmten Geräten mit API<33 gezeichnet wurde.
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 weiterhin vom System-Compositor verwaltet wurden, auch nachdem sie freigegeben wurden. - Ein Problem wurde behoben, durch das die aktuell präsentierte
HardwareBuffer
-Instanz nicht freigegeben wurde, nachdem Abhängigkeiten mit geringer Latenz entfernt wurden. - Ein Flimmerproblem auf bestimmten Geräten mit Android 14 oder höher, die das Flag für die Verwendung des Front-Buffers nicht unterstützten, wurde behoben.
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 Version 1.0.0
- Offizielle stabile Release-Version der graphics-core-Bibliothek. Enthält kleinere Fehlerkorrekturen und Leistungsverbesserungen aus Version 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, das bei bestimmten Android-Geräten mit Android 14 zu einem potenziellen doppelten Schließen von Dateideskriptoren mit
CanvasBufferedRendererAPI
geführt hat. - Ein Problem wurde behoben, bei dem
FrameBuffer
Framebuffer-Instanzen nicht richtig gelöscht hat.
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
- Es wurde eine neue
LowLatencyCanvasView
API eingeführt, um das Rendern mit geringer Latenz mit den 2D-Grafik-APIs (Canvas + Paint) von Android in der View-Hierarchie zu unterstützen. - Die
CanvasBufferedRenderer
-API wurde eingeführt, um das hardwarebeschleunigte Canvas-Rendering in einemHardwareBuffer
zu unterstützen. Damit kann ein Teil einer Benutzeroberfläche in einen Puffer gezeichnet werden, der mit derBitmap.wrapHardwareBuffer
API in ein Bitmap konvertiert werden kann.
API-Änderungen
- Die
CanvasBufferRenderer#releaseBuffer
API wurde aktualisiert und enthält jetzt einen optionalen Parameter für den Zaun. Die Dokumentation wurde aktualisiert, um zu beschreiben, wannRenderResult#fence
zurückgegeben wird. (If1ea7) - Die
draw
-Methode wurdeRenderRequest
hinzugefügt, um die Verwendung von Coroutinen zum Planen von Zeichenanforderungen zu unterstützen. Die vorherige Zeichenmethode, die einen Executor verwendet hat, wurde indrawAsync
umbenannt. Die MethodeisClosed()
wurde in eine Property umgestaltet. (I5bff6) - Der Parameter für das freigegebene Pufferformat wurde in
CanvasFrontBufferRenderer
eingeführt, um direktCanvasBufferedRenderer.Builder#setBufferFormat
zuzuordnen (I0f272). - Die
CanvasBufferedRenderer
-API wurde erstellt, um das hardwarebeschleunigte Canvas-Rendering in einHardwareBuffer
zu verarbeiten. Dadurch wird eine backportierte Implementierung für Android Q zusammen mit der Konfiguration einer Swapchain-Tiefe vonHardwareBuffers
bereitgestellt. DieColorSpace
-Konfiguration ist weiterhin auf Android U+ beschränkt. Die Kompatibilitätsimplementierung bietet jedoch ein No-Op-Verhalten im Namen der Entwickler. (I9b1d8) - Fügen Sie
setFrameRate
-/clearFrameRate
-APIs zuSurfaceControlCompat.Transaction
hinzu, um die Frame-Rate 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 kein Puffer mehr präsentiert wird (I8a4e2). - Erstellen Sie
LowLatencyCanvasView
, um einen einfachen Anwendungsfall des Renderns von Inhalten mit niedriger Latenz zu unterstützen, die mit dem Rendern der Ansichtshierarchie synchronisiert werden. Dadurch werden die Komplexitäten im Zusammenhang mit derSurfaceView
-Verwaltung gemindert, da dieSurfaceView
-Instanz, die für synchronisiertes und latenzarmes Rendern auf dem Bildschirm bzw. außerhalb des Bildschirms übersetzt wird, intern verwaltet wird. (I9253b) - Unterstützung für die Konfiguration des Farbraums in der
CanvasFrontBufferedRenderer
API wurde hinzugefügt. Multibuffer-Callbacks wurden aktualisiert, um auch den BackbufferSurfaceControl
einzuschließen (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
- Die
GLFrameBufferRenderer
API wurde eingeführt. Dies bietet eine Kombination aus OpenGL-Abhängigkeiten, Swapchain-Konfiguration, Pixelformaten undSurfaceControl
-Konfiguration. (Ic775b)
API-Änderungen
- Den verschiedenen Callback-APIs wurden Breiten- und Höhenparameter hinzugefügt, um Dimensionen von
SurfaceHolder#Callbacks
zu übertragen. (I7f9fc) - Es wurde eine Clear-API hinzugefügt, um sowohl die vorderen als auch die mehrfach gepufferten 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) - Für Getter in
GLFrameBufferRenderer
wurden Kotlin-Attribute hinzugefügt, die AnmerkungIntRange
für die maximale Anzahl von Puffereinträgen sowie die AnmerkungenHardwareBufferFormart
undHardwareBufferUsage
fürsetFormat
bzw.setUsage
. (Ief89e) - Die
setBuffer
API fürSurfaceControl
-Transaktionen wurde aktualisiert, um eine Release-Sperre zu ermöglichen. (Ice1bb) - Es wurden
SurfaceControlCompat.Transaction
-APIs zum Konfigurieren des Datenbereichs und zum Festlegen des erweiterten Helligkeitsbereichs hinzugefügt. (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
CanvasFrontBufferedRenderer
wurde eingeführt, um Grafiken mit geringer Latenz mithilfe derandroid.graphics.Canvas
API neben der vorhandenen OpenGL-Implementierung zu unterstützen.
API-Änderungen
- Die
SurfaceControlCompat.Transaction#setBuffer
API wurde aktualisiert, um Nullable-HardwareBuffer
-Instanzen zu ermöglichen, die der entsprechenden Plattform-API entsprechen (I173d7). - Benennen Sie Methoden, die sich auf das Double-Buffered-Rendering beziehen, in Multi-Buffered um, da die zugrunde liegende Swapchain mehr als zwei Puffer enthalten kann. (I830d7)
- Erstellen Sie die
CanvasFrontBufferedRenderer
API, damit Drittanbieter ein Front-Buffered-Rendering-System mit der Canvas API nutzen können. (Ibfc29)
Fehlerkorrekturen
- Das Problem, bei dem
GLFrontBufferedRenderer
nach dem Fortsetzen der entsprechenden Aktivität keine Inhalte gerendert hat, wurde behoben. - Ein Problem wurde behoben, durch das Inhalte im Frontbuffer vorzeitig gelöscht wurden.
- Das Problem, bei dem
SurfaceHolder.Callbacks
nach der Veröffentlichung von Grafiken-APIs mit geringer Latenz nicht entfernt wurde, wurde behoben.
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 dasBufferInfo
-Objekt mit der Pufferbreite und ‑höhe sowie einer Framebuffer-ID bereitzustellen, mit der das ursprüngliche Ziel nach dem Rendern in einen temporären Scratch-Puffer neu ausgerichtet werden kann. (I7fe20) - Die Erstellung von
SyncFence
wurde in eine statische Factory-Methode fürSyncFenceCompat
konsolidiert. - Die öffentliche Kompatibilitätsmethode für
eglDupNativeFenceFDANDROID
wurde zugunsten derSyncFenceCompat
-Factory-Methode zum Erstellen von SyncFence entfernt. So wird sichergestellt, dass alle API-Oberflächen unabhängig vom API-Level die richtigeSyncFence
-Implementierung erhalten. (I849bb) - Dokumentation für
FrameBufferRenderer
undSyncStrategy
hinzugefügt.FrameBufferRenderer
+FrameBuffer
+FrameBufferPool
wurden in dasandroidx.graphics.opengl
-Paket verschobenSyncStrategy
wurde in das Paketandroidx.graphics.opengl
verschoben- Aktualisierte
RenderCallback#onDraw
-Dokumentation - Aktualisierte Dokumentation von
RenderCallback#obtainFrameBuffer
, in der der Implementierer der API für den Aufruf vonFrameBuffer.close
verantwortlich ist onDrawComplete
wurde aktualisiert, um darauf hinzuweisen, dass Verbraucher für die Bereitstellung von Inhalten zur Anzeige verantwortlich sind.SyncFence
-Kompatibilitätsschnittstellen/-Klassen wurden in dasandroidx.hardware
-Paket verschoben, um das Framework zu spiegeln.- Die
SyncFence
API wurde inSyncFenceV19
umbenannt und privat gemacht, um die Verwendung aufSyncFenceCompat
zu konsolidieren, die nach Möglichkeit dieSyncFence
API des Frameworks nutzt. (I5149c)
- Die Methoden
GLFrontBufferedRenderer#cancel
undGLFrontBufferedRenderer#execute
wurden hinzugefügt. Letzteres ist in Szenarien mit Handflächenabweisung nützlich, in 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 bearbeitet werden sollen, ohne dass ein Rendering geplant werden muss. (If0b7f) - API zum direkten Rendern auf der Double-Buffered-Ebene hinzugefügt. Dies hilft beim erneuten Rendern einer Szene nach dem Fortsetzen und bietet Nutzern die Möglichkeit, selektiv zu bestimmen, wann das Front-Buffered-Rendering dynamisch basierend auf der gewünschten Szene verwendet werden soll. (Ied56c)
- Eine neue API wurde
SurfaceControlCompat.Builder
hinzugefügt, um die Konfiguration des übergeordnetenSurfaceControl
über eine andereSurfaceControl
-Instanz zu unterstützen. Dies ist zusätzlich zum vorhandenen Mechanismus über einSurfaceView
möglich. (I1d1b6) - Weitere Informationen zur Nullable-Eigenschaft des Rückgabetyps von eingestellten, ausgeblendeten Funktionen (Ibf7b0)
- Die Erweiterungskonstante
EGL_ANDROID_get_native_client_buffer
wurde 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) - Annotation „
@JvmDefaultWithCompatibility
“ wird hinzugefügt (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
- Die fehlende
RequiresApi
-Annotation füraddTransactionCommitListener
, die in Android S eingeführt wurde (I0a035), wurde behoben. - Die
onDraw<Front/Double>
-Puffer-Callbacks wurden aktualisiert, um eine Transformationsmatrix bereitzustellen, die zusätzlich zur aktuellen Pufferbreite/-höhe an die Vertex-Shader übergeben werden kann. Verbraucher sind dafür verantwortlich, diese Parameter zu verwenden, um ihren OpenGL-Rendering-Code richtig vorzudrehen. (I82f9e)
Fehlerkorrekturen
- Die Grafiklatenz wurde durch das Vorrotieren von Puffern vor dem Ausgeben von
SurfaceControl
-Transaktionen verbessert. - Ein Problem wurde behoben, durch das in Fehlerprotokollen der Fehler 300d (EGL_BAD_SURFACE) angezeigt wurde.
- Ein Problem wurde behoben, bei dem
GLFrontBufferedRenderer
nach dem Fortsetzen der entsprechenden Aktivität, in der es verwendet wurde, ungültig war. - Bessere Unterstützung für Emulatoren und ChromeOS-Geräte.
- Ein Problem wurde behoben, durch das die vordere gepufferte Ebene 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 Grafik-Core. Dazu gehören APIs zur Unterstützung von Anwendungsfällen mit niedriger Latenz wie die Stifteingabe. Außerdem werden einige Hilfs-APIs für die OpenGL-Nutzung eingeführt.
API-Änderungen
GLFrontBufferedRenderer
wird eingeführt, um das Rendern mit Front- und Multi-Buffering zu unterstützen und so sowohl eine geringe Latenz als auch eine hohe Qualität der Renderausgabe zu erreichen.- Die
GLRenderer
API wird eingeführt, um das OpenGL-Rendering für verschiedene Surface-Anbieter wieSurfaceView
,TextureView
und andere zu unterstützen.