grafica
Questa tabella elenca tutti gli artefatti nel gruppo androidx.graphics.
| Elemento | Release stabile | Candidato per la release | Release beta | Release alpha |
|---|---|---|---|---|
| graphics-core | 1.0.3 | - | - | - |
| graphics-path | 1.0.1 | - | - | 1.1.0-alpha01 |
| graphics-shapes | 1.1.0 | - | - | - |
Dichiara le dipendenze
Per aggiungere una dipendenza in 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 necessari 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.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") }
Per saperne di più sulle dipendenze, consulta Aggiungi 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 segnalare un nuovo problema, dai un'occhiata ai problemi esistenti in questa raccolta. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.
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
22 ottobre 2025
androidx.graphics:graphics-*:1.1.0 è stato rilasciato. La versione 1.1.0 contiene questi commit.
Versione 1.1.0-rc01
10 settembre 2025
androidx.graphics:graphics-*:1.1.0-rc01 è stato rilasciato. La versione 1.1.0-rc01 contiene questi commit.
Versione 1.1.0-beta01
30 luglio 2025
androidx.graphics:graphics-*:1.1.0-beta01 è stato rilasciato. 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 è stato rilasciato. 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'attributodnell'elementopathdi un SVG) in unList<Feature>. - 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)
- Utilizza il nuovo
- Mostra le funzionalità dei poligoni e i tipi di funzionalità. Ora è possibile creare
RoundedPolygonspiù generici con il costruttore di base che accetta unList<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 la destinazione
watchosDeviceArm64KMP e per 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) - Correggere un errore nell'algoritmo per stimare il centro del poligono. (Ida147)
Versione 1.0 di Graphics Shapes
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 stati 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 stati 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 stati 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 stati rilasciati. La versione 1.0.0-beta01 contiene questi commit.
Modifiche alle API
- Consenti di pre-ruotare le forme per iniziare da un punto diverso. Questa modifica consente alle forme
pillStardi 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 suRoundedPolygon. (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 stati rilasciati. La versione 1.0.0-alpha05 contiene questi commit.
Nuove funzionalità
- La libreria ora offre nuove funzioni
pill()epillStar()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 stati 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 suMutableCubics. È stata modificata l'Interfaccia funzionalePointTransformer, che ora accetta le coordinate x e y di unPointe restituisce unTransformedResult(costruito con le coordinate x e y trasformate) (I6719e)- È stato rimosso il costruttore pubblico
Cubiced è 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
PointFmodificati in coppieFloat(Id4705, b/276466399, b/290254314) progressora viene passato direttamente ai comandi di disegnoMorph(Icdca2)
Correzioni di bug
- È stato corretto un bug durante la creazione di forme grandi. (I4fd66, b/313497325)
Versione 1.0.0-alpha03
7 giugno 2023
androidx.graphics:graphics-shapes:1.0.0-alpha03 è stato rilasciato. La versione 1.0.0-alpha03 contiene questi commit.
Modifiche alle API
- È stata aggiunta la 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 es.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 è stato rilasciato. 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 valoreinnerRadius, anziché il parametroinnerRadiusRatioprecedente. Le unità di misura sono le stesse del parametro raggio esistente, il che rende tutto più semplice e coerente. Inoltre, il parametronumOuterVerticesè stato rinominatonumVerticesPerRadiusper chiarire che lo stesso numero viene applicato sia al raggio interno che a quello esterno. - In precedenza,
CornerRounding.radiusera 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 rilasciata. Questa versione è stata rilasciata da un branch interno.
Nuove funzionalità
- Utilizza l'API Polygon per creare poligoni regolari e a stella con il numero di vertici desiderato.
- Utilizza i parametri
CornerRoundingfacoltativi 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 la forma iniziale e quella finale. Anima l'avanzamento nel tempo, disegnando il risultato su ogni frame, per creare un'animazione fluida tra queste nuove forme arrotondate.
Graphics Path versione 1.0
Versione 1.1.0-alpha01
13 agosto 2025
androidx.graphics:graphics-path:1.1.0-alpha01 è stato rilasciato. La versione 1.1.0-alpha01 contiene questi commit.
Correzioni di bug
- Aggiungi l'implementazione per la conversione da conica a quadratica e utilizzala sulle piattaforme host. f059b1
Versione 1.0.1
1° maggio 2024
androidx.graphics:graphics-path:1.0.1 è stato rilasciato. 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 è stato rilasciato.
Versione 1.0.0-rc01
21 febbraio 2024
androidx.graphics:graphics-path:1.0.0-rc01 è stato rilasciato. 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 è stato rilasciato. La versione 1.0.0-beta02 contiene questi commit.
Correzioni di bug
- Le dimensioni di
libandroidx.graphics.path.sosono state ridotte del 96%. (I71397) - Riduci le dimensioni di
libandroidx.graphics.path.sodel 5%. (I2da7c) - I componenti nativi di
androidx.graphics:graphics-pathsono stati ridotti del 43%. (I8e40d)
Versione 1.0.0-beta01
29 novembre 2023
androidx.graphics:graphics-path:1.0.0-beta01 è stato rilasciato. La versione 1.0.0-beta01 contiene questi commit.
Modifiche alle API
- Sono stati rimossi gli utilizzi dell'API sperimentale
isAtLeastU()(Ie9117, b/289269026)
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 rilasciata. Questa versione è sviluppata in un branch interno.
Nuove funzionalità
- È stato risolto un problema con il controllo interno della versione della piattaforma 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 è stato rilasciato. La versione 1.0.0-alpha01 contiene questi commit.
Nuove funzionalità
- Questa nuova libreria consente di eseguire query sui dati Path 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.
Versione 1.0 di Graphics Core
Versione 1.0.3
26 marzo 2025
androidx.graphics:graphics-core:1.0.3 è stato rilasciato. 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 è stato rilasciato. La versione 1.0.2 contiene questi commit.
Correzioni di bug
- È stato risolto il problema per cui le istanze
SurfaceControlvenivano comunque gestite dal compositore di sistema anche dopo il rilascio. - È stato risolto il problema a causa del quale l'istanza
HardwareBufferattualmente presentata non veniva rilasciata dopo l'eliminazione delle dipendenze a bassa latenza - È stato 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 è stato rilasciato. 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 è stato rilasciato. 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 rilasciata. Questa versione è sviluppata in un branch interno.
Correzioni di bug
- È stato risolto un problema che portava alla potenziale doppia chiusura dei descrittori del file con
CanvasBufferedRendererAPIcon alcuni dispositivi Android con Android 14. - È stato risolto il problema per cui
FrameBuffernon eliminava correttamente le istanze del framebuffer.
Versione 1.0.0-beta01
13 dicembre 2023
androidx.graphics:graphics-core:1.0.0-beta01 è stato rilasciato. La versione 1.0.0-beta01 contiene questi commit.
Nuove funzionalità
- È stata introdotta una nuova API
LowLatencyCanvasViewper supportare il rendering a bassa latenza con le API grafiche 2D di Android (Canvas + Paint) all'interno della gerarchia di oggetti View. - È stata introdotta l'API
CanvasBufferedRendererper supportare il rendering di Canvas con accelerazione hardware in unHardwareBuffer. Può essere utilizzato per disegnare una parte di un'interfaccia utente in un buffer che può essere convertito in una bitmap utilizzando l'APIBitmap.wrapHardwareBuffer.
Modifiche alle API
- L'API
CanvasBufferRenderer#releaseBufferè stata aggiornata per includere un parametro di recinzione facoltativo. Documentazione aggiornata per descrivere quando viene restituitoRenderResult#fence. (If1ea7) - Aggiungi il metodo
drawaRenderRequestper supportare l'utilizzo di coroutine per pianificare le richieste di estrazione. È stato rinominato il metodo di disegno precedente che utilizzava un executor indrawAsync. È stato eseguito il refactoring del metodoisClosed()in una proprietà. (I5bff6) - Parametro del formato del buffer esposto a
CanvasFrontBufferRendererper il mapping diretto aCanvasBufferedRenderer.Builder#setBufferFormat(I0f272) - È stata creata l'API
CanvasBufferedRendererper gestire il rendering della tela con accelerazione hardware in unHardwareBuffer. Ciò fornisce un'implementazione di backporting per Android Q insieme alla configurazione di una profondità della swapchain diHardwareBuffers. La configurazione diColorSpaceè ancora limitata ad Android U+, ma l'implementazione della compatibilità fornisce un comportamento no-op per conto degli sviluppatori. (I9b1d8) - Aggiungi le API
setFrameRate/clearFrameRateaSurfaceControlCompat.Transactionper controllare il frame rate insieme alla strategia di modifica per transizioni fluide o predefinite. (I6045c) - È stato abbassato il livello API richiesto per
setDataSpaceda Android T ad Android Q. (I59c34) - È stato aggiunto il callback
onBufferReleasedall'APIGLFrameBufferRendererper dare ai consumatori l'opportunità di ripulire lo stato quando un buffer non viene più presentato (I8a4e2) - Crea
LowLatencyCanvasViewper 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 diSurfaceViewgestendo internamente l'istanza diSurfaceViewche viene tradotta sullo schermo o meno per un rendering sincronizzato e a bassa latenza, rispettivamente. (I9253b) - Aggiunto il supporto della configurazione dello spazio colore all'API
CanvasFrontBufferedRenderer. Aggiornamento dei callback con buffer multiplo per includere anche il buffer secondarioSurfaceControl(I24bd9)
Versione 1.0.0-alpha05
6 settembre 2023
androidx.graphics:graphics-core:1.0.0-alpha05 è stato rilasciato. 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 configurazioneSurfaceControl. (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,IntRangeper le voci del buffer massimo eHardwareBufferFormarteHardwareBufferUsagepersetFormat/setUsagerispettivamente. (Ief89e) - API
setBufferaggiornata sulle transazioniSurfaceControlper fornire una barriera di rilascio. (Ice1bb) - Sono state aggiunte API
SurfaceControlCompat.Transactionper 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 è stato rilasciato. La versione 1.0.0-alpha04 contiene questi commit.
Nuove funzionalità
- È stata introdotta
CanvasFrontBufferedRendererper supportare la grafica a bassa latenza sfruttando l'APIandroid.graphics.Canvasinsieme all'implementazione OpenGL esistente
Modifiche alle API
- Aggiornamento dell'API
SurfaceControlCompat.Transaction#setBufferper consentire alle istanzeHardwareBuffernullable 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
CanvasFrontBufferedRendererper 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
GLFrontBufferedRenderernon 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.Callbacksnon 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 è stato rilasciato. La versione 1.0.0-alpha03 contiene questi commit.
Modifiche alle API
- L'implementazione del callback
GLFrontBufferedRendererè stata aggiornata per fornire l'oggettoBufferInfoche contiene la larghezza/altezza del buffer insieme a un identificatore del frame buffer che può essere utilizzato per reindirizzare la destinazione originale dopo il rendering in un buffer temporaneo intermedio. (I7fe20) - Creazione
SyncFenceconsolidata nel metodo di fabbrica statico suSyncFenceCompat. - È stato rimosso il metodo di compatibilità pubblico per
eglDupNativeFenceFDANDROIDa favore del metodo di fabbricaSyncFenceCompatper la creazione di SyncFence. In questo modo, tutte le superfici API ricevono l'implementazione corretta diSyncFenceindipendentemente dal livello API. (I849bb) - È stata aggiunta la documentazione per
FrameBufferRenderereSyncStrategy.- Elementi
FrameBufferRenderer+FrameBuffer+FrameBufferPoolspostati nel pacchettoandroidx.graphics.opengl - Elemento
SyncStrategyspostato nel pacchettoandroidx.graphics.opengl RenderCallback#onDrawdocumenti aggiornati- È stata aggiornata la documentazione di
RenderCallback#obtainFrameBufferper indicare che l'implementatore dell'API è responsabile della chiamata diFrameBuffer.close onDrawCompleteè stato aggiornato per indicare che i consumatori sono responsabili dell'invio dei contenuti da visualizzare- Interfacce/classi di compatibilità
SyncFencespostate nel pacchettoandroidx.hardwareper rispecchiare il framework - L''API è stata rinominata
SyncFenceinSyncFenceV19ed è stata resa privata per consolidare gli utilizzi inSyncFenceCompat, che sfrutta l'APISyncFencedel framework ove possibile. (I5149c)
- Elementi
- Sono stati aggiunti i metodi
GLFrontBufferedRenderer#canceleGLFrontBufferedRenderer#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 di cui eseguire il rendering. (Ied56c)
- È stata aggiunta una nuova API a
SurfaceControlCompat.Builderper supportare la configurazione diSurfaceControlprincipale da un'altra istanza diSurfaceControloltre al meccanismo esistente da unSurfaceView. (I1d1b6) - Maggiore supporto di valori null nel tipo restituito delle funzioni ritirate e nascoste (Ibf7b0)
- È stata aggiunta la costante di estensione
EGL_ANDROID_get_native_client_bufferper verificare se il dispositivo Android supporta l'importazione di istanzeHardwareBufferin oggettiEGLClientBufferche possono essere utilizzati come istanzaEGLImage. (Iad767) - Aggiunta dell'annotazione
@JvmDefaultWithCompatibility(I8f206)
Versione 1.0.0-alpha02
9 novembre 2022
androidx.graphics:graphics-core:1.0.0-alpha02 è stato rilasciato. La versione 1.0.0-alpha02 contiene questi commit.
Modifiche alle API
- È stata corretta l'annotazione
RequiresApimancante peraddTransactionCommitListener, introdotta in Android S (I0a035) - I callback del buffer
onDraw<Front/Double>sono stati aggiornati 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. - È stato risolto il problema per cui i log degli errori mostravano l'errore 300d (EGL_BAD_SURFACE).
- È stato risolto il problema per cui
GLFrontBufferedRenderernon 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 è stato rilasciato. 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
GLFrontBufferedRendererper assistere nel rendering frontale e multi-buffer per ottenere un output di rendering a bassa latenza e di alta qualità. - Introduce l'API
GLRendererper facilitare il rendering OpenGL per vari fornitori di Surface, comeSurfaceView,TextureViewe altri.