Grafiken

  
Grafikfunktionen in mehreren Android-Plattformversionen nutzen

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 -
Diese Bibliothek wurde zuletzt am 30. Juli 2025 aktualisiert.

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.

Neues Problem erstellen

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 Attributs d für das Element path eines SVG) in einen List<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)
  • Polygon-Elemente und ‑Elementtypen verfügbar machen Mit dem Basiskonstruktor, der ein List<Features> akzeptiert, können jetzt allgemeinere RoundedPolygons 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 auf RoundedPolygon 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()- und pillStar()-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 die MutableCubics durchlaufen werden kann. Die funktionale Schnittstelle von PointTransformer wurde geändert. Sie verwendet jetzt die x- und y-Koordinaten eines Point und gibt ein TransformedResult 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 in Float-Paare geändert (Id4705, b/276466399, b/290254314)
  • progress wird jetzt direkt an Morph-Zeichenbefehle übergeben (Icdca2).

Fehlerkorrekturen

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 einen innerRadius-Wert anstelle des bisherigen innerRadiusRatio-Parameters. Die Einheiten sind dieselben wie beim vorhandenen Parameter „radius“, was die Verwendung vereinfacht und für mehr Konsistenz sorgt. Außerdem wurde der Parameter numOuterVertices in numVerticesPerRadius 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

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 einem HardwareBuffer zu unterstützen. Damit kann ein Teil einer Benutzeroberfläche in einen Puffer gezeichnet werden, der mit der Bitmap.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, wann RenderResult#fence zurückgegeben wird. (If1ea7)
  • Die draw-Methode wurde RenderRequest hinzugefügt, um die Verwendung von Coroutinen zum Planen von Zeichenanforderungen zu unterstützen. Die vorherige Zeichenmethode, die einen Executor verwendet hat, wurde in drawAsync umbenannt. Die Methode isClosed() wurde in eine Property umgestaltet. (I5bff6)
  • Der Parameter für das freigegebene Pufferformat wurde in CanvasFrontBufferRenderer eingeführt, um direkt CanvasBufferedRenderer.Builder#setBufferFormat zuzuordnen (I0f272).
  • Die CanvasBufferedRenderer-API wurde erstellt, um das hardwarebeschleunigte Canvas-Rendering in ein HardwareBuffer zu verarbeiten. Dadurch wird eine backportierte Implementierung für Android Q zusammen mit der Konfiguration einer Swapchain-Tiefe von HardwareBuffers bereitgestellt. Die ColorSpace-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 zu SurfaceControlCompat.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 der GLFrameBufferRenderer-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 der SurfaceView-Verwaltung gemindert, da die SurfaceView-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 Backbuffer SurfaceControl 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 und SurfaceControl-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 Anmerkung IntRange für die maximale Anzahl von Puffereinträgen sowie die Anmerkungen HardwareBufferFormart und HardwareBufferUsage für setFormat bzw. setUsage. (Ief89e)
  • Die setBuffer API für SurfaceControl-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 der android.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 das BufferInfo-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ür SyncFenceCompat konsolidiert.
  • Die öffentliche Kompatibilitätsmethode für eglDupNativeFenceFDANDROID wurde zugunsten der SyncFenceCompat-Factory-Methode zum Erstellen von SyncFence entfernt. So wird sichergestellt, dass alle API-Oberflächen unabhängig vom API-Level die richtige SyncFence-Implementierung erhalten. (I849bb)
  • Dokumentation für FrameBufferRenderer und SyncStrategy hinzugefügt.
    • FrameBufferRenderer + FrameBuffer + FrameBufferPool wurden in das androidx.graphics.opengl-Paket verschoben
    • SyncStrategy wurde in das Paket androidx.graphics.opengl verschoben
    • Aktualisierte RenderCallback#onDraw-Dokumentation
    • Aktualisierte Dokumentation von RenderCallback#obtainFrameBuffer, in der der Implementierer der API für den Aufruf von FrameBuffer.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 das androidx.hardware-Paket verschoben, um das Framework zu spiegeln.
    • Die SyncFence API wurde in SyncFenceV19 umbenannt und privat gemacht, um die Verwendung auf SyncFenceCompat zu konsolidieren, die nach Möglichkeit die SyncFence API des Frameworks nutzt. (I5149c)
  • Die Methoden GLFrontBufferedRenderer#cancel und GLFrontBufferedRenderer#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 übergeordneten SurfaceControl über eine andere SurfaceControl-Instanz zu unterstützen. Dies ist zusätzlich zum vorhandenen Mechanismus über ein SurfaceView 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 von HardwareBuffer-Instanzen in EGLClientBuffer-Objekte unterstützt, die als EGLImage-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ür addTransactionCommitListener, 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 wie SurfaceView, TextureView und andere zu unterstützen.