Grafiken
In dieser Tabelle sind alle Artefakte in der Gruppe androidx.graphics aufgeführt.
| Artefakt | Stabile Version | Releasekandidat | Betarelease | Alpha-Release |
|---|---|---|---|---|
| graphics-core | 1.0.3 | - | - | - |
| graphics-path | 1.0.1 | - | - | 1.1.0-alpha01 |
| graphics-shapes | 1.1.0 | - | - | - |
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.1.0-alpha01" implementation "androidx.graphics:graphics-shapes:1.1.0" }
Kotlin
dependencies { implementation("androidx.graphics:graphics-core:1.0.3") implementation("androidx.graphics:graphics-path:1.1.0-alpha01") implementation("androidx.graphics:graphics-shapes:1.1.0") }
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 stimmen, 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.
Grafiken Version 1.1
Version 1.1.0
22. Oktober 2025
androidx.graphics:graphics-*:1.1.0 ist veröffentlicht. Version 1.1.0 enthält diese Commits.
Version 1.1.0-rc01
10. September 2025
androidx.graphics:graphics-*:1.1.0-rc01 ist veröffentlicht. Version 1.1.0-rc01 enthält diese Commits.
Version 1.1.0-beta01
30. Juli 2025
androidx.graphics:graphics-*:1.1.0-beta01 ist 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 ist 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 Attributsdfür das Elementpatheines 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-Features und ‑Feature-Typen verfügbar machen Mit dem Basiskonstruktor, der ein
List<Features>akzeptiert, können jetzt allgemeinereRoundedPolygonserstellt 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
RoundedPolygonrobuster gestalten (Ib862c, b/360888486) - Fehler bei der Initialisierung von
RoundedPolygonbeheben. (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 aufRoundedPolygonentsprechen. (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 platziert wird, wenn sie in diesem Container 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 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, Funktionen aus nicht Android-spezifischem 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“.
- Außerdem wurden aus Leistungsgründen mehrere Änderungen an 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 zum Speichern dieser Eckpunkte zugewiesen werden müssen.
API-Änderungen
Morph.asMutableCubicswurde durch eine Funktion ersetzt, mit der dieMutableCubicsdurchlaufen werden kann. Die funktionale Schnittstelle vonPointTransformerwurde geändert. Sie verwendet jetzt die x- und y-Koordinaten einesPointund gibt einTransformedResultzurü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 von Anker- und Kontrollattributen sind jetzt sinnvoller (If13bd, b/294562941).
PointF-Parameter inFloat-Paare geändert (Id4705, b/276466399, b/290254314)progresswird 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 ist 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
RoundedPolygonaufgerufen, 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 ist veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.
API-Änderungen
- Die Superklasse „Polygon“ wurde mit ihrer Unterklasse
RoundedPolygonzusammengefü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 ParameternumOuterVerticesinnumVerticesPerRadiusumbenannt, um zu verdeutlichen, dass dieselbe Zahl sowohl auf den inneren als auch auf den äußeren Radius angewendet wird. CornerRounding.radiuswurde zuvor als relativ zur Größe des Polygons dokumentiert, war (und sollte) aber 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 ist veröffentlicht. Diese Version wurde über einen internen Zweig 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.1.0-alpha01
13. August 2025
androidx.graphics:graphics-path:1.1.0-alpha01 ist veröffentlicht. Version 1.1.0-alpha01 enthält diese Commits.
Fehlerkorrekturen
- Implementierung für die Konvertierung von konisch zu quadratisch hinzufügen und auf Hostplattformen verwenden. f059b1
Version 1.0.1
1. Mai 2024
androidx.graphics:graphics-path:1.0.1 ist 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 ist veröffentlicht.
Version 1.0.0-rc01
21. Februar 2024
androidx.graphics:graphics-path:1.0.0-rc01 ist 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
Bei den Änderungen in dieser Version ging es darum, 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 ist veröffentlicht. Version 1.0.0-beta02 enthält diese Commits.
Fehlerkorrekturen
- Die Größe von
libandroidx.graphics.path.sowurde um 96 % reduziert. (I71397) - Reduziere die Größe von
libandroidx.graphics.path.soum 5%. (I2da7c) - Die nativen Komponenten von
androidx.graphics:graphics-pathwurden um 43 % verkleinert. (I8e40d)
Version 1.0.0-beta01
29. November 2023
androidx.graphics:graphics-path:1.0.0-beta01 ist 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 ist veröffentlicht. Diese Version wird in einem internen Zweig 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 ist veröffentlicht. Version 1.0.0-alpha01 enthält diese Commits.
Neue Funktionen
- Mit dieser neuen Bibliothek können Sie Pfaddaten über die neue
PathIteratorAPI 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 hinunter zu API 21.
Graphics Core Version 1.0
Version 1.0.3
26. März 2025
androidx.graphics:graphics-core:1.0.3 ist veröffentlicht. Version 1.0.3 enthält diese Commits.
Fehlerkorrekturen
- Problem behoben, bei dem auf bestimmten Geräten mit API<33 im Vollbildmodus Flackern auftrat, wenn gezeichnet wurde.
Version 1.0.2
16. Oktober 2024
androidx.graphics:graphics-core:1.0.2 ist 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. - Es wurde ein Problem behoben, bei dem auf bestimmten Geräten mit Android 14 oder höher, die das Flag für die Verwendung des Front-Buffers nicht unterstützten, ein Flimmern auftrat.
Version 1.0.1
4. September 2024
androidx.graphics:graphics-core:1.0.1 ist 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 ist veröffentlicht. Version 1.0.0 enthält diese Commits.
Wichtige Funktionen von Version 1.0.0
- Offizielle stabile 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 ist veröffentlicht. Diese Version wird in einem internen Zweig entwickelt.
Fehlerkorrekturen
- Ein Problem wurde behoben, das bei bestimmten Android-Geräten mit Android 14 zu einem potenziellen doppelten Schließen von Dateideskriptoren mit
CanvasBufferedRendererAPIführte. - Ein Problem wurde behoben, bei dem
FrameBufferFramebuffer-Instanzen nicht richtig gelöscht hat.
Version 1.0.0-beta01
13. Dezember 2023
androidx.graphics:graphics-core:1.0.0-beta01 ist veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.
Neue Funktionen
- Es wurde eine neue
LowLatencyCanvasViewAPI 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
CanvasBufferedRendererAPI wurde eingeführt, um das hardwarebeschleunigte Canvas-Rendering in einemHardwareBufferzu unterstützen. Damit kann ein Teil einer Benutzeroberfläche in einen Puffer gezeichnet werden, der mit derBitmap.wrapHardwareBufferAPI in ein Bitmap konvertiert werden kann.
API-Änderungen
- Die
CanvasBufferRenderer#releaseBufferAPI wurde aktualisiert und enthält jetzt einen optionalen Parameter für den Zaun. Die Dokumentation wurde aktualisiert, um zu beschreiben, wannRenderResult#fencezurückgegeben wird. (If1ea7) - Die
draw-Methode wurdeRenderRequesthinzugefügt, um die Verwendung von Coroutinen zum Planen von Zeichenanforderungen zu unterstützen. Die vorherige Zeichenmethode, die einen Executor verwendet hat, wurde indrawAsyncumbenannt. Die MethodeisClosed()wurde in ein Attribut umgestaltet. (I5bff6) - Der Pufferformatparameter wurde für
CanvasFrontBufferRendererverfügbar gemacht, um direktCanvasBufferedRenderer.Builder#setBufferFormatzuzuordnen (I0f272). - Die
CanvasBufferedRenderer-API wurde erstellt, um das hardwarebeschleunigte Canvas-Rendering in einHardwareBufferzu verarbeiten. Dadurch wird eine backportierte Implementierung für Android Q zusammen mit der Konfiguration einer Swapchain-Tiefe vonHardwareBuffersbereitgestellt. 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.Transactionhinzu, um die Frame-Rate zusammen mit der Änderungsstrategie für nahtlose oder Standardübergänge zu steuern. (I6045c) - Das erforderliche API‑Level für
setDataSpacewurde von Android T auf Android Q gesenkt. (I59c34) - Der
onBufferReleased-Callback wurde derGLFrameBufferRendererAPI hinzugefügt, damit Nutzer den Status bereinigen können, wenn ein Puffer nicht 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 bzw. latenzarmes Rendern auf dem Bildschirm ein- oder ausgeblendet wird, intern verwaltet wird. (I9253b) - Unterstützung für die Konfiguration des Farbraums in der
CanvasFrontBufferedRendererAPI hinzugefügt. Multibuffer-Callbacks wurden aktualisiert, um auch den BackbufferSurfaceControleinzuschließen (I24bd9)
Version 1.0.0-alpha05
6. September 2023
androidx.graphics:graphics-core:1.0.0-alpha05 ist veröffentlicht. Version 1.0.0-alpha05 enthält diese Commits.
Neue Funktionen
- Die
GLFrameBufferRendererAPI 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 aus
SurfaceHolder#Callbackszu übertragen. (I7f9fc) - Es wurde eine API zum Löschen von Front- und Multi-Buffered-Layern hinzugefügt. (Ic1f95)
- Es wurde Unterstützung für die Konfiguration des zugrunde liegenden Puffertyps von Swapchains hinzugefügt, die in
GLFrontBufferedRendererverwendet werden. (I07a13) - Für Getter in
GLFrameBufferRendererwurden Kotlin-Attribute hinzugefügt, die AnmerkungIntRangefür die maximale Anzahl von Puffereinträgen sowie die AnmerkungenHardwareBufferFormartundHardwareBufferUsagefürsetFormatbzw.setUsage. (Ief89e) - Die
setBufferAPI 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 ist veröffentlicht. Version 1.0.0-alpha04 enthält diese Commits.
Neue Funktionen
CanvasFrontBufferedRendererwurde eingeführt, um Grafiken mit geringer Latenz mithilfe derandroid.graphics.CanvasAPI neben der vorhandenen OpenGL-Implementierung zu unterstützen.
API-Änderungen
- Die
SurfaceControlCompat.Transaction#setBufferAPI 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
CanvasFrontBufferedRendererAPI, damit Drittanbieter ein Front-Buffered-Rendering-System mit der Canvas API nutzen können. (Ibfc29)
Fehlerkorrekturen
- Das Problem, bei dem
GLFrontBufferedRenderernach 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.Callbacksnach 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 ist 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/-höhe sowie eine 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
SyncFencewurde in eine statische Factory-Methode fürSyncFenceCompatkonsolidiert. - Die öffentliche Kompatibilitätsmethode für
eglDupNativeFenceFDANDROIDwurde zugunsten der Factory-MethodeSyncFenceCompatzum 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
FrameBufferRendererundSyncStrategyhinzugefügt.FrameBufferRenderer+FrameBuffer+FrameBufferPoolwurden in dasandroidx.graphics.opengl-Paket verschobenSyncStrategywurde in dasandroidx.graphics.opengl-Paket verschoben- Aktualisierte
RenderCallback#onDraw-Dokumentation - Aktualisierte Dokumentation von
RenderCallback#obtainFrameBuffer, für deren Aufruf der Implementierer der API verantwortlich istFrameBuffer.close onDrawCompletewurde aktualisiert, um darauf hinzuweisen, dass Verbraucher für die Bereitstellung von Inhalten zur Anzeige verantwortlich sindSyncFence-Kompatibilitätsschnittstellen/-Klassen wurden in dasandroidx.hardware-Paket verschoben, um das Framework zu spiegeln.- Die
SyncFenceAPI wurde inSyncFenceV19umbenannt und privat gemacht, um die Verwendung aufSyncFenceCompatzu konsolidieren, die nach Möglichkeit dieSyncFenceAPI des Frameworks nutzt. (I5149c)
- Die Methoden
GLFrontBufferedRenderer#cancelundGLFrontBufferedRenderer#executewurden hinzugefügt. Letzteres ist in Szenarien nützlich, in denen die Handflächenerkennung aktiv ist und 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.Builderhinzugefügt, um die Konfiguration des übergeordnetenSurfaceControlüber eine andereSurfaceControl-Instanz zu unterstützen. Dies ist zusätzlich zum vorhandenen Mechanismus über einSurfaceViewmöglich. (I1d1b6) - Weitere Informationen zur Nullable-Eigenschaft des Rückgabetyps von eingestellten, ausgeblendeten Funktionen (Ibf7b0)
- Die Erweiterungskonstante
EGL_ANDROID_get_native_client_bufferwurde 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
@JvmDefaultWithCompatibilitywurde hinzugefügt. (I8f206)
Version 1.0.0-alpha02
9. November 2022
androidx.graphics:graphics-core:1.0.0-alpha02 ist 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 von Consumern zusätzlich zur aktuellen Pufferbreite/-höhe an ihre 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
GLFrontBufferedRenderernach 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 ist 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
- Führt
GLFrontBufferedRendererein, um das Rendern mit Front- und Multi-Buffer zu unterstützen und so sowohl eine geringe Latenz als auch eine hohe Qualität der Rendering-Ausgabe zu erzielen. - Die
GLRendererAPI wird eingeführt, um das OpenGL-Rendering für verschiedene Surface-Anbieter wieSurfaceView,TextureViewund andere zu unterstützen.