grafica

  
Sfruttare le funzionalità grafiche in più versioni della piattaforma Android

Questa tabella elenca tutti gli artefatti nel gruppo androidx.graphics.

Elemento Release stabile Candidato per la release Versione beta Alpha Release
graphics-core 1.0.3 - - -
graphics-path 1.0.1 - - -
graphics-shapes 1.0.1 - 1.1.0-beta01 -
Ultimo aggiornamento di questa libreria: 30 luglio 2025

Dichiarazione di dipendenze

Per aggiungere una dipendenza da Graphics, devi aggiungere il repository Maven di Google al tuo progetto. Per saperne di più, consulta il repository Maven di Google.

Aggiungi le dipendenze per gli artefatti che ti servono nel file build.gradle per la tua app o il tuo modulo:

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")
}

Per ulteriori informazioni sulle dipendenze, consulta Aggiungere dipendenze di build.

Feedback

Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa libreria. Prima di crearne uno nuovo, dai un'occhiata ai problemi esistenti in questa libreria. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.

Creare un nuovo problema

Per ulteriori informazioni, consulta la documentazione di Issue Tracker.

Non sono disponibili note di rilascio per questo artefatto.

Versione 1.1 di Graphics

Versione 1.1.0-beta01

30 luglio 2025

androidx.graphics:graphics-*:1.1.0-beta01 viene ritirata. La versione 1.1.0-beta01 contiene questi commit.

Modifiche alle API

  • I progetti rilasciati con Kotlin 2.0 richiedono l'utilizzo di KGP 2.0.0 o versioni successive (Idb6b5)
  • Aggiungi le destinazioni di compilazione mingwX64, js e wasm. (I2c46a)

Versione 1.1.0-alpha01

11 dicembre 2024

androidx.graphics:graphics-*:1.1.0-alpha01 viene ritirata. La versione 1.1.0-alpha01 contiene questi commit.

Nuove funzionalità

  • È stata rielaborata la demo principale in un editor di forme generico. Ciò ti consente di importare forme da un percorso SVG, modificare manualmente le funzionalità rilevate in caso di errori nel processo automatico ed esportare il risultato in un codice che può essere utilizzato nel codice di produzione. (I1ac13)
  • Sostituisci le misurazioni degli angoli per l'avanzamento del contorno della forma con le misurazioni della lunghezza della curva, in modo da poter utilizzare forme più complesse per la trasformazione. (I75478) , I390dd
  • È stato migliorato l'algoritmo di mappatura delle funzionalità, in modo che più morph abbiano un aspetto più naturale. (I83287)

Modifiche alle API

  • Aggiungi l'importazione del percorso SVG e il serializzatore delle funzionalità. Il flusso abituale è:
    • Utilizza il nuovo SvgPathParser.parseFeatures() per convertire un percorso SVG (il valore dell'attributo d nell'elemento path di un SVG) in un List<Feature>.
    • che può essere modificato e poi serializzato in una stringa con FeatureSerializer.serialize().
    • La stringa risultante può essere utilizzata nel codice di produzione, importandola con FeatureSerializer.parse()
    • Tieni presente che i passaggi 1 e 2 vengono eseguiti una sola volta e possono essere eseguiti con la nuova app. Il codice di produzione deve eseguire solo il passaggio 3. (I9bd00, b/371196190), (Ic3842), (If68ed), (I10251)
  • Mostra le funzionalità dei poligoni e i tipi di funzionalità. Ora è possibile creare RoundedPolygons più generici con il costruttore di base che accetta un List<Features>. Le funzionalità sono principalmente un elenco di curve di Bézier cubiche, ma sono taggate per aiutare l'algoritmo di Morph a trovare la corrispondenza tra le forme iniziale e finale (gli angoli convessi vengono mappati agli angoli convessi e gli angoli concavi vengono mappati agli angoli concavi). (I61e76), (I1fc5c)
  • Aggiunge il supporto per watchosDeviceArm64 KMP target e target kotlin 1.9. (Icf15d, b/364652024)

Correzioni di bug

  • È stato corretto un caso limite in cui l'ultima funzionalità era vuota. (I390dd)
  • Rendi più solida la creazione di RoundedPolygon. (Ib862c, b/360888486)
  • Correzione di un bug durante l'inizializzazione di RoundedPolygon. (I83ddb)
  • Correggi un errore nell'algoritmo per stimare il centro del poligono. (Ida147)

Graphics Shapes versione 1.0

Versione 1.0.1

4 settembre 2024

androidx.graphics:graphics-shapes:1.0.1, androidx.graphics:graphics-shapes-android:1.0.1 e androidx.graphics:graphics-shapes-desktop:1.0.1 sono rilasciati. La versione 1.0.1 contiene questi commit.

Versione 1.0.0

21 agosto 2024

androidx.graphics:graphics-shapes:1.0.0, androidx.graphics:graphics-shapes-android:1.0.0 e androidx.graphics:graphics-shapes-desktop:1.0.0 sono rilasciati. La versione 1.0.0 contiene questi commit.

Versione 1.0.0-rc01

24 luglio 2024

androidx.graphics:graphics-shapes:1.0.0-rc01, androidx.graphics:graphics-shapes-android:1.0.0-rc01 e androidx.graphics:graphics-shapes-desktop:1.0.0-rc01 sono rilasciati. La versione 1.0.0-rc01 contiene questi commit.

Versione 1.0.0-beta01

1° maggio 2024

androidx.graphics:graphics-shapes:1.0.0-beta01, androidx.graphics:graphics-shapes-android:1.0.0-beta01 e androidx.graphics:graphics-shapes-desktop:1.0.0-beta01 sono rilasciati. La versione 1.0.0-beta01 contiene questi commit.

Modifiche alle API

  • Consente di pre-ruotare le forme per iniziare da un punto diverso. Questa modifica consente alle forme pillStar di iniziare le curve da un punto non predefinito del perimetro. Può essere utile quando si anima il tratto del percorso della forma, per iniziare a disegnare da una posizione specifica sul contorno della forma. (Ifbb4d, b/324303807)
  • Sono state aggiunte le funzioni calculateBounds() a Morph, che sono parallele alle stesse funzioni su RoundedPolygon. (I8a3b6, b/325463575)

Versione 1.0.0-alpha05

7 febbraio 2024

androidx.graphics:graphics-shapes:1.0.0-alpha05, androidx.graphics:graphics-shapes-android:1.0.0-alpha05 e androidx.graphics:graphics-shapes-desktop:1.0.0-alpha05 sono rilasciati. La versione 1.0.0-alpha05 contiene questi commit.

Nuove funzionalità

  • La libreria ora offre nuove funzioni pill() e pillStar() per creare facilmente queste forme arrotondate/a stella. Sono disponibili anche nuove API per calcolare i limiti esatti richiesti per una forma (i limiti precedenti erano solo una stima basata sui punti di controllo e di ancoraggio della curva di Bézier sottostante), nonché i limiti massimi possibili, che possono essere utili per determinare le dimensioni del contenitore che la contiene se verrà ruotata al suo interno. (I71827)

Modifiche alle API

  • Ora sono disponibili più opzioni per recuperare i limiti esatti e massimi. (I6d49f, b/317286450)

Correzioni di bug

  • Si sono verificati occasionalmente artefatti di rendering durante il disegno di queste forme come tracciati con tratto, a causa di un problema di rendering di basso livello relativo alle curve di lunghezza zero. Questo bug è stato corretto eliminando tutte le curve di lunghezza zero (che le forme non richiedono, risparmiando così anche l'overhead dei tracciati prodotti dalle forme).

Versione 1.0.0-alpha04

13 dicembre 2023

androidx.graphics:graphics-shapes:1.0.0-alpha04, androidx.graphics:graphics-shapes-android:1.0.0-alpha04 e androidx.graphics:graphics-shapes-desktop:1.0.0-alpha04 sono rilasciati. La versione 1.0.0-alpha04 contiene questi commit.

Nuove funzionalità

  • Questa release contiene diverse modifiche alle API, nonché correzioni di bug.
  • Molte modifiche all'API rendono la libreria Shapes compatibile con KMP. In questo modo è più facile chiamare da codice non Android (ad esempio codice Compose indipendente da Android). Ad esempio, nell'API non sono presenti tipi Android, come i tipi PointF, Matrix e Path precedenti.
  • Sono state apportate anche diverse modifiche alle API e all'implementazione per motivi di rendimento, in particolare per ridurre al minimo l'allocazione (e la raccolta) degli oggetti. Ad esempio, il passaggio da PointF a parametri Float separati evita di allocare molte strutture PointF temporanee per contenere questi vertici.

Modifiche alle API

  • Morph.asMutableCubics è stato sostituito con una funzione per iterare su MutableCubics. Interfaccia funzionale PointTransformer modificata, ora accetta le coordinate x e y di un Point e restituisce un TransformedResult (costruito con le coordinate x e y trasformate) (I6719e)
  • È stato rimosso il costruttore pubblico Cubic ed è stata creata una funzione di fabbrica. (I409ce)
  • Aggiunta di API di trasformazione e disegno specifiche per Android (I079f6, b/292289543)
  • Elimina le dipendenze di Android (Iadc1c, b/292289543)
  • I nomi delle proprietà di ancoraggio e controllo ora sono più sensati (If13bd, b/294562941)
  • Parametri PointF modificati in coppie Float (Id4705, b/276466399, b/290254314)
  • progress viene ora passato direttamente ai comandi di disegno Morph (Icdca2)

Correzioni di bug

Versione 1.0.0-alpha03

7 giugno 2023

androidx.graphics:graphics-shapes:1.0.0-alpha03 viene ritirata. La versione 1.0.0-alpha03 contiene questi commit.

Modifiche alle API

  • Aggiunta nuova funzione RoundedPolygon.rectangle() (I78e7e, b/280322189)
  • Le funzioni Star e Circle ora sono scritte in minuscolo e chiamate tramite l'oggetto complementare di RoundedPolygon: ad esempio, RoundedPolygon.star(...)(I14735)

Correzioni di bug

  • È stato corretto un bug relativo al livellamento (Ibf894)
  • È stato corretto un bug che si verificava quando la forma iniziale e quella finale erano uguali. Distribuisci meglio lo spazio disponibile sul lato per i tagli, utilizzando prima lo spazio disponibile per l'arrotondamento, poi per l'uniformità se rimane spazio. (Ibd320, b/277936300)

Versione 1.0.0-alpha02

19 aprile 2023

androidx.graphics:graphics-shapes:1.0.0-alpha02 viene ritirata. La versione 1.0.0-alpha02 contiene questi commit.

Modifiche alle API

  • La superclasse Polygon è stata unita alla relativa sottoclasse, RoundedPolygon; tutti i poligoni ora sono poligoni [facoltativamente] arrotondati.
  • La funzione Stella (che restituisce ancora un valore RoundedPolygon, come prima) ora accetta un valore innerRadius, anziché il parametro innerRadiusRatio precedente. Le unità di misura sono le stesse del parametro raggio esistente, il che rende tutto più semplice e coerente. Inoltre, il parametro numOuterVertices è stato rinominato numVerticesPerRadius per chiarire che lo stesso numero viene applicato sia al raggio interno che a quello esterno.
  • In precedenza, CornerRounding.radius era documentato come relativo alle dimensioni del poligono, ma era (e dovrebbe essere) un valore assoluto, non relativo. I documenti sono stati aggiornati e l'annotazione che lo limitava a un valore massimo di 1.0 è stata corretta.

Versione 1.0.0-alpha01

5 aprile 2023

Graphics-Shapes è una nuova libreria che consente di creare e visualizzare facilmente forme poligonali arrotondate, nonché di eseguire il morphing (animazione) semplice e automatico tra forme diverse.

androidx.graphics:graphics-shapes:1.0.0-alpha01 viene ritirata. Questa versione è stata rilasciata da un ramo interno.

Nuove funzionalità

  • Utilizza l'API Polygon per creare poligoni regolari e a stella con il numero di vertici desiderato.
  • Utilizza i parametri CornerRounding facoltativi per specificare il raggio di arrotondamento e i parametri di smussatura per gli angoli, ottenendo forme poligonali con angoli arrotondati.
  • Utilizza la nuova API Morph(Polygon, Polygon) per calcolare automaticamente una forma "morph" il cui avanzamento può essere impostato da 0 a 1 per animare la transizione tra le forme iniziale e finale. Anima l'avanzamento nel tempo, disegnando il risultato su ogni frame, per creare un'animazione fluida tra queste nuove forme arrotondate.

Graphics Path Version 1.0

Versione 1.0.1

1° maggio 2024

androidx.graphics:graphics-path:1.0.1 viene ritirata. La versione 1.0.1 contiene questi commit.

Correzioni di bug

  • Miglioramenti ai flag del compilatore.

Versione 1.0.0

6 marzo 2024

androidx.graphics:graphics-path:1.0.0 viene ritirata.

Versione 1.0.0-rc01

21 febbraio 2024

androidx.graphics:graphics-path:1.0.0-rc01 viene ritirata. La versione 1.0.0-rc01 contiene questi commit.

Correzioni di bug

  • Migliora le prestazioni di PathIterator su API < 34 (Id4629)

Versione 1.0.0-beta02

10 gennaio 2024

Le modifiche di questa release riguardano la riduzione delle dimensioni della libreria, che erano maggiori del necessario a causa delle ipotesi formulate dal codice nativo.

androidx.graphics:graphics-path:1.0.0-beta02 viene ritirata. La versione 1.0.0-beta02 contiene questi commit.

Correzioni di bug

  • Le dimensioni di libandroidx.graphics.path.so sono state ridotte del 96%. (I71397)
  • Riduci le dimensioni di libandroidx.graphics.path.so del 5%. (I2da7c)
  • I componenti nativi di androidx.graphics:graphics-path sono stati ridotti del 43%. (I8e40d)

Versione 1.0.0-beta01

29 novembre 2023

androidx.graphics:graphics-path:1.0.0-beta01 viene ritirata. La versione 1.0.0-beta01 contiene questi commit.

Modifiche alle API

Correzioni di bug

  • Varie correzioni e miglioramenti delle prestazioni, tra cui la gestione delle coniche nella libreria.

Versione 1.0.0-alpha02

7 giugno 2023

androidx.graphics:graphics-path:1.0.0-alpha02 viene ritirata. Questa versione è sviluppata in un ramo interno.

Nuove funzionalità

  • È stato risolto il problema relativo al controllo della versione della piattaforma interna che causava problemi durante l'esecuzione delle anteprime di Android 14 (il controllo della versione non riusciva, ma il meccanismo per eseguire operazioni nelle versioni precedenti non funziona correttamente su Android 14 in particolare).

Versione 1.0.0-alpha01

22 marzo 2023

androidx.graphics:graphics-path:1.0.0-alpha01 viene ritirata. La versione 1.0.0-alpha01 contiene questi commit.

Nuove funzionalità

  • Questa nuova libreria consente di eseguire query sui dati di percorso tramite la nuova API PathIterator. Utilizzando questa API, i chiamanti possono scorrere tutti i segmenti di un oggetto Path per determinare l'operazione e i dati per questi segmenti.
  • La libreria utilizza API simili introdotte nell'anteprima di Android 14, ma questa versione AndroidX dell'API funziona anche su versioni precedenti fino all'API 21.

Graphics Core Version 1.0

Versione 1.0.3

26 marzo 2025

androidx.graphics:graphics-core:1.0.3 viene ritirata. La versione 1.0.3 contiene questi commit.

Correzioni di bug

  • Correzione dei sfarfallii a schermo intero durante il disegno su alcuni dispositivi con API<33.

Versione 1.0.2

16 ottobre 2024

androidx.graphics:graphics-core:1.0.2 viene ritirata. La versione 1.0.2 contiene questi commit.

Correzioni di bug

  • È stato risolto il problema per cui le istanze SurfaceControl venivano comunque gestite dal compositore di sistema anche dopo il rilascio.
  • È stato risolto il problema a causa del quale l'istanza HardwareBuffer attualmente presentata non veniva rilasciata dopo l'eliminazione delle dipendenze a bassa latenza
  • Risolto il problema di sfarfallio su alcuni dispositivi Android 14+ che non supportavano il flag di utilizzo del buffer anteriore

Versione 1.0.1

4 settembre 2024

androidx.graphics:graphics-core:1.0.1 viene ritirata. La versione 1.0.1 contiene questi commit.

Correzioni di bug

  • È stato risolto il problema a causa del quale le risorse di memoria a volte non venivano rilasciate.

Versione 1.0.0

29 maggio 2024

androidx.graphics:graphics-core:1.0.0 viene ritirata. La versione 1.0.0 contiene questi commit.

Funzionalità principali della versione 1.0.0

  • Versione stabile ufficiale della libreria graphics-core. Include correzioni di bug minori e miglioramenti delle prestazioni della versione 1.0.0-rc01

Versione 1.0.0-rc01

17 aprile 2024

androidx.graphics:graphics-core:1.0.0-rc01 viene ritirata. Questa versione è sviluppata in un ramo interno.

Correzioni di bug

  • È stato risolto un problema che portava alla potenziale doppia chiusura dei descrittori di file con CanvasBufferedRendererAPI con alcuni dispositivi Android con Android 14.
  • È stato risolto il problema per cui FrameBuffer non eliminava correttamente le istanze del framebuffer.

Versione 1.0.0-beta01

13 dicembre 2023

androidx.graphics:graphics-core:1.0.0-beta01 viene ritirata. La versione 1.0.0-beta01 contiene questi commit.

Nuove funzionalità

  • È stata introdotta una nuova API LowLatencyCanvasView per supportare il rendering a bassa latenza con le API grafiche 2D di Android (Canvas + Paint) all'interno della gerarchia View.
  • È stata introdotta l'API CanvasBufferedRenderer per supportare il rendering di Canvas con accelerazione hardware su un HardwareBuffer. Può essere utilizzato per disegnare una parte di un'interfaccia utente in un buffer che può essere convertito in una bitmap utilizzando l'API Bitmap.wrapHardwareBuffer.

Modifiche alle API

  • L'API CanvasBufferRenderer#releaseBuffer è stata aggiornata per includere un parametro di recinzione facoltativo. Documentazione aggiornata per descrivere quando viene restituito RenderResult#fence. (If1ea7)
  • Aggiungi il metodo draw a RenderRequest per supportare l'utilizzo di coroutine per pianificare le richieste di estrazione. È stato rinominato il metodo di disegno precedente che utilizzava un executor in drawAsync. È stato eseguito il refactoring del metodo isClosed() in una proprietà. (I5bff6)
  • Parametro del formato del buffer esposto a CanvasFrontBufferRenderer per il mapping diretto a CanvasBufferedRenderer.Builder#setBufferFormat (I0f272)
  • È stata creata l'API CanvasBufferedRenderer per gestire il rendering della tela con accelerazione hardware in un HardwareBuffer. Ciò fornisce un'implementazione di backporting per Android Q insieme alla configurazione di una profondità della swapchain di HardwareBuffers. La configurazione di ColorSpace è ancora limitata ad Android U+, ma l'implementazione della compatibilità fornisce un comportamento no-op per conto degli sviluppatori. (I9b1d8)
  • Aggiungi le API setFrameRate/clearFrameRate a SurfaceControlCompat.Transaction per controllare il frame rate insieme alla strategia di modifica per transizioni fluide o predefinite. (I6045c)
  • È stato abbassato il livello API richiesto per setDataSpace da Android T ad Android Q. (I59c34)
  • È stato aggiunto il callback onBufferReleased all'API GLFrameBufferRenderer per dare ai consumatori l'opportunità di pulire lo stato quando un buffer non viene più presentato (I8a4e2)
  • Crea LowLatencyCanvasView per supportare un semplice caso d'uso di rendering dei contenuti a bassa latenza che vengono sincronizzati con il rendering della gerarchia della visualizzazione. In questo modo si riducono le complessità associate alla gestione di SurfaceView gestendo internamente l'istanza di SurfaceView che viene tradotta sullo schermo o meno per il rendering sincronizzato e a bassa latenza, rispettivamente. (I9253b)
  • Aggiunto il supporto della configurazione dello spazio colore all'API CanvasFrontBufferedRenderer. Aggiornamento dei callback multibufferati per includere anche il buffer posteriore SurfaceControl (I24bd9)

Versione 1.0.0-alpha05

6 settembre 2023

androidx.graphics:graphics-core:1.0.0-alpha05 viene ritirata. La versione 1.0.0-alpha05 contiene questi commit.

Nuove funzionalità

  • È stata introdotta l'API GLFrameBufferRenderer. Fornisce una combinazione di dipendenze OpenGL, configurazione della swap chain, formati dei pixel e configurazione SurfaceControl. (Ic775b)

Modifiche alle API

  • Sono stati aggiunti parametri di larghezza e altezza a varie API di callback per trasferire le dimensioni da SurfaceHolder#Callbacks. (I7f9fc)
  • È stata aggiunta l'API clear per cancellare sia i livelli bufferizzati anteriori che quelli multipli. (Ic1f95)
  • È stato aggiunto il supporto per configurare il tipo di buffer sottostante delle swapchain utilizzate in GLFrontBufferedRenderer. (I07a13)
  • Sono state aggiunte proprietà Kotlin per i getter nelle annotazioni GLFrameBufferRenderer e IntRange per le voci del buffer massimo e nelle annotazioni HardwareBufferFormart e HardwareBufferUsage per setFormat/setUsage rispettivamente. (Ief89e)
  • API setBuffer aggiornata sulle transazioni SurfaceControl per fornire una barriera di rilascio. (Ice1bb)
  • Sono state aggiunte API SurfaceControlCompat.Transaction per configurare lo spazio colore e impostare la gamma di luminosità estesa. (Ic378d)

Versione 1.0.0-alpha04

7 giugno 2023

androidx.graphics:graphics-core:1.0.0-alpha04 viene ritirata. La versione 1.0.0-alpha04 contiene questi commit.

Nuove funzionalità

  • È stato introdotto CanvasFrontBufferedRenderer per supportare la grafica a bassa latenza sfruttando l'API android.graphics.Canvas insieme all'implementazione OpenGL esistente

Modifiche alle API

  • È stata aggiornata l'API SurfaceControlCompat.Transaction#setBuffer per consentire alle istanze HardwareBuffer nullable di rispecchiare l'API della piattaforma corrispondente (I173d7)
  • Rinomina i metodi che fanno riferimento al rendering a doppio buffer in rendering a più buffer, in quanto la swapchain di supporto può contenere più di due buffer. (I830d7)
  • Crea l'API CanvasFrontBufferedRenderer per consentire alle terze parti di sfruttare un sistema di rendering con buffer frontale utilizzando l'API Canvas. (Ibfc29)

Correzioni di bug

  • È stato risolto il problema per cui GLFrontBufferedRenderer non visualizzava i contenuti dopo la ripresa dell'attività corrispondente.
  • È stato risolto il problema a causa del quale i contenuti del buffer anteriore venivano cancellati prematuramente.
  • È stato risolto il problema per cui SurfaceHolder.Callbacks non veniva rimosso dopo il rilascio delle API grafiche a bassa latenza.

Versione 1.0.0-alpha03

22 marzo 2023

androidx.graphics:graphics-core:1.0.0-alpha03 viene ritirata. La versione 1.0.0-alpha03 contiene questi commit.

Modifiche alle API

  • Implementazione del callback GLFrontBufferedRenderer aggiornata per fornire l'oggetto BufferInfo che contiene la larghezza/altezza del buffer insieme a un identificatore del buffer dei frame che può essere utilizzato per reindirizzare la destinazione originale dopo il rendering a un buffer temporaneo intermedio. (I7fe20)
  • Creazione SyncFence consolidata nel metodo statico di fabbrica su SyncFenceCompat.
  • È stato rimosso il metodo di compatibilità pubblico per eglDupNativeFenceFDANDROID a favore del metodo di fabbrica SyncFenceCompat per la creazione di SyncFence. In questo modo, tutte le superfici API ricevono l'implementazione corretta di SyncFence indipendentemente dal livello API. (I849bb)
  • È stata aggiunta la documentazione per FrameBufferRenderer e SyncStrategy.
    • Spostato FrameBufferRenderer + FrameBuffer + FrameBufferPool nel pacchetto androidx.graphics.opengl
    • Elemento SyncStrategy spostato nel pacchetto androidx.graphics.opengl
    • RenderCallback#onDraw documenti aggiornati
    • Documentazione aggiornata di RenderCallback#obtainFrameBuffer che l'implementatore dell'API è responsabile della chiamata di FrameBuffer.close
    • onDrawComplete aggiornato per indicare che i consumatori sono responsabili dell'invio dei contenuti da visualizzare
    • Interfacce/classi di compatibilità SyncFence spostate nel pacchetto androidx.hardware per rispecchiare il framework
    • È stata rinominata l'API SyncFence in SyncFenceV19 ed è stata resa privata per consolidare gli utilizzi in SyncFenceCompat, che sfrutta l'API SyncFence del framework ove possibile. (I5149c)
  • Sono stati aggiunti i metodi GLFrontBufferedRenderer#cancel e GLFrontBufferedRenderer#execute. Il primo è utile negli scenari di rifiuto del palmo in cui il rendering nel buffer anteriore deve essere annullato e il buffer anteriore deve essere nascosto. Quest'ultimo è utile negli scenari per manipolare gli oggetti sul thread GL senza dover pianificare un rendering. (If0b7f)
  • Aggiungi l'API per il rendering direttamente al livello a doppio buffer. Ciò consente di eseguire nuovamente il rendering di una scena dopo la ripresa, nonché di offrire ai consumatori l'opportunità di determinare in modo selettivo quando sfruttare il rendering con buffer frontale in modo dinamico in base alla scena da eseguire il rendering. (Ied56c)
  • È stata aggiunta una nuova API a SurfaceControlCompat.Builder per supportare la configurazione di SurfaceControl principale da un'altra istanza di SurfaceControl, oltre al meccanismo esistente da un SurfaceView. (I1d1b6)
  • Maggiore annullabilità del tipo restituito delle funzioni ritirate e nascoste (Ibf7b0)
  • È stata aggiunta la costante di estensione EGL_ANDROID_get_native_client_buffer per verificare se il dispositivo Android supporta l'importazione di istanze HardwareBuffer in oggetti EGLClientBuffer che possono essere utilizzati come istanza EGLImage. (Iad767)
  • Aggiunta dell'annotazione @JvmDefaultWithCompatibility (I8f206)

Versione 1.0.0-alpha02

9 novembre 2022

androidx.graphics:graphics-core:1.0.0-alpha02 viene ritirata. La versione 1.0.0-alpha02 contiene questi commit.

Modifiche alle API

  • È stata corretta l'annotazione RequiresApi mancante per addTransactionCommitListener, introdotta in Android S (I0a035)
  • Aggiornamento dei callback del buffer onDraw<Front/Double> per fornire una matrice di trasformazione che i consumatori possono passare ai propri vertex shader oltre all'attuale larghezza/altezza del buffer. I consumatori sono responsabili dell'utilizzo di questi parametri per pre-ruotare correttamente il codice di rendering OpenGL. (I82f9e)

Correzioni di bug

  • Miglioramento della latenza della grafica mediante la pre-rotazione dei buffer prima dell'emissione delle transazioni SurfaceControl.
  • Risolto il problema per cui i log degli errori mostravano l'errore 300d (EGL_BAD_SURFACE).
  • È stato risolto il problema per cui GLFrontBufferedRenderer non era valido dopo la ripresa dell'attività corrispondente in cui era stato utilizzato.
  • Maggiore supporto per gli emulatori e i dispositivi ChromeOS.
  • È stato risolto il problema a causa del quale il livello buffer anteriore potrebbe essere nascosto prematuramente.

Versione 1.0.0-alpha01

24 ottobre 2022

androidx.graphics:graphics-core:1.0.0-alpha01 viene ritirata. La versione 1.0.0-alpha01 contiene questi commit.

Nuove funzionalità

  • Versione iniziale della libreria AndroidX del core grafico. Sono incluse le API per supportare casi d'uso a bassa latenza come l'input con stilo. Vengono inoltre introdotte alcune API helper per l'utilizzo di OpenGL.

Modifiche alle API

  • Introduce GLFrontBufferedRenderer per assistere nel rendering frontale e multi-buffer per ottenere un output di rendering a bassa latenza e di alta qualità.
  • Introduce l'API GLRenderer per facilitare il rendering OpenGL per vari fornitori di Surface, come SurfaceView, TextureView e altri.