Grafiken

  
Grafikfunktionen für mehrere Android-Plattformversionen nutzen

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
Diese Bibliothek wurde zuletzt am 11. Dezember 2024 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 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.

Neues Problem erstellen

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 des d-Attributs im path-Element einer SVG-Datei) in einen List<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)
  • Polygonelemente und -typen sichtbar machen Mit dem Basiskonstruktor, der eine List<Features> annimmt, können jetzt generischere RoundedPolygons 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 in 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 werden losgelassen. 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 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 die MutableCubics iteriert. Die Funktionsweise von PointTransformer wurde geändert. Jetzt werden die X- und Y-Koordinaten eines Point übergeben und ein TransformedResult 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 in Float-Paare geändert (Id4705, b/276466399, b/290254314)
  • progress wird jetzt direkt an Morph-Zeichnebefehle ü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 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 einen innerRadius-Wert anstelle des bisherigen innerRadiusRatio-Parameters an. Dieser Wert wird in denselben Einheiten wie der vorhandene Radiusparameter angegeben, was die Nutzung vereinfacht und einheitlicher macht. Außerdem wurde der Parameter numOuterVertices in numVerticesPerRadius 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

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 einem HardwareBuffer. So können Sie einen Teil einer Benutzeroberfläche in einen Puffer zeichnen, der mit der Bitmap.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, wann RenderResult#fence zurückgegeben wird. (If1ea7)
  • Die draw-Methode wurde RenderRequest hinzugefügt, um die Nutzung von coroutines zum Planen von Abrufanfragen zu unterstützen. Die vorherige draw-Methode, die einen Executor verbraucht hat, wurde in drawAsync umbenannt. Die isClosed()-Methode wurde in ein Attribut umstrukturiert. (I5bff6)
  • Der Parameter „Bufferformat“ wurde für CanvasFrontBufferRenderer freigegeben, um direkt auf CanvasBufferedRenderer.Builder#setBufferFormat zu verweisen (I0f272)
  • Die CanvasBufferedRenderer API wurde erstellt, um hardwarebeschleunigtes Canvas-Rendering in einer HardwareBuffer zu verarbeiten. Dies bietet eine Backport-Implementierung für Android Q sowie die Konfiguration einer Swapchain-Tiefe von HardwareBuffers. Die ColorSpace-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 der GLFrameBufferRenderer 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 der SurfaceView-Verwaltung verbundenen Komplexitäten reduziert, da die SurfaceView-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-Buffer SurfaceControl 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 und SurfaceControl-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 sowie HardwareBufferFormart- und HardwareBufferUsage-Anmerkungen für setFormat/setUsage hinzugefügt. (Ief89e)
  • Die setBuffer API für SurfaceControl-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 der android.graphics.Canvas API neben der vorhandenen OpenGL-Implementierung

API-Änderungen

  • Die SurfaceControlCompat.Transaction#setBuffer API wurde aktualisiert, damit nullable HardwareBuffer-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 ein BufferInfo-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 von SyncFenceCompat konsolidiert.
  • Die öffentliche Kompatibilitätsmethode für eglDupNativeFenceFDANDROID wurde zugunsten der SyncFenceCompat-Werksmethode für die Erstellung von SyncFence entfernt. So wird sichergestellt, dass alle API-Oberflächen unabhängig von der API-Ebene die richtige SyncFence-Implementierung erhalten. (I849bb)
  • Dokumentation für FrameBufferRenderer und SyncStrategy hinzugefügt.
    • FrameBufferRenderer + FrameBuffer + FrameBufferPool in das androidx.graphics.opengl-Paket verschoben
    • SyncStrategy in das androidx.graphics.opengl-Paket verschoben
    • RenderCallback#onDraw Dokumente aktualisiert
    • Aktualisierte Dokumentation von RenderCallback#obtainFrameBuffer, die der Implementator der API für den Aufruf von FrameBuffer.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 das androidx.hardware-Paket verschoben, um das Framework widerzuspiegeln
    • Die SyncFence API wurde in SyncFenceV19 umbenannt und zu einer privaten API, um die Nutzung auf SyncFenceCompat zu konzentrieren, die nach Möglichkeit die SyncFence API des Frameworks nutzt. (I5149c)
  • Die Methoden GLFrontBufferedRenderer#cancel und GLFrontBufferedRenderer#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 übergeordnete SurfaceControl neben dem vorhandenen Mechanismus über eine SurfaceView-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 von HardwareBuffer-Instanzen in EGLClientBuffer-Objekte unterstützt, die als EGLImage-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ür addTransactionCommitListener 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 wie SurfaceView und TextureView.