grafica
Questa tabella elenca tutti gli elementi nel gruppo androidx.graphics
.
Elemento | Release stabile | Candidato per la release | Versione beta | Versione alpha |
---|---|---|---|---|
graphics-core | 1.0.2 | - | - | - |
graphics-path | 1.0.1 | - | - | - |
graphics-shapes | 1.0.1 | - | - | 1.1.0-alpha01 |
Dichiarazione delle dipendenze
Per aggiungere una dipendenza da Graphics, devi aggiungere il repository Maven di Google al tuo progetto. Per ulteriori informazioni, consulta il repository Maven di Google.
Aggiungi le dipendenze per gli elementi necessari nel file build.gradle
per la tua app o il tuo modulo:
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") }
Per ulteriori informazioni sulle dipendenze, consulta Aggiungere dipendenze di compilazione.
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa raccolta. Prima di crearne uno nuovo, 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 del Monitoraggio problemi.
Non sono disponibili note di rilascio per questo elemento.
Versione grafica 1.1
Versione 1.1.0-alpha01
11 dicembre 2024
androidx.graphics:graphics-*:1.1.0-alpha01
viene rilasciato. La versione 1.1.0-alpha01 contiene questi commit.
Nuove funzionalità
- La demo principale è stata ristrutturata in un editor di forme generico. In questo modo puoi importare le forme da un percorso svg, modificare manualmente gli elementi rilevati 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 dell'angolo 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à, quindi le trasformazioni dovrebbero apparire più naturali. (I83287)
Modifiche all'API
- Aggiungi l'importazione del percorso SVG e il serializzatore delle funzionalità. Il flusso usuale è:
- Utilizza il nuovo
SvgPathParser.parseFeatures()
per convertire un percorso SVG (il valore dell'attributod
nell'elementopath
di un file SVG) in unList<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. Per il codice di produzione è necessario eseguire solo il passaggio 3. (I9bd00, b/371196190), (Ic3842), (If68ed), (I10251)
- Utilizza il nuovo
- Mostra gli elementi poligono e i relativi tipi. Ora è possibile creare
RoundedPolygons
più generici con il costruttore di base che accetta unList<Features>
. Gli elementi sono principalmente un elenco di curve cubiche di Bézier, ma sono taggati per aiutare l'algoritmo Morph a trovare una corrispondenza tra le forme iniziale e finale (i vertici convessi vengono mappati ai vertici convessi e i vertici concavi ai vertici concavi). (I61e76), (I1fc5c) - Aggiunta del supporto per il target KMP
watchosDeviceArm64
e il target Kotlin 1.9. (Icf15d, b/364652024)
Correzioni di bug
- È stato corretto un caso limite in cui l'ultima funzionalità era vuota. (I390dd)
- Migliorare la creazione di
RoundedPolygon
. (Ib862c, b/360888486) - Correzione di un bug relativo all'inizializzazione di
RoundedPolygon
. (I83ddb) - Correggere un errore nell'algoritmo per stimare il centro del poligono. (Ida147)
Forme grafiche versione 1.0
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
vengono 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
vengono 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
vengono rilasciati. La versione 1.0.0-beta01 contiene questi commit.
Modifiche all'API
- Consente di pre-ruotare le forme in modo che inizino in un punto diverso. Questa modifica consente alle forme
pillStar
di iniziare le curve da un punto diverso da quello predefinito sul perimetro. Questa opzione può essere utile per animare il tratto del percorso della forma, in modo da iniziare a disegnare da una posizione specifica sul contorno della forma. (Ifbb4d, b/324303807) - A Morph sono state aggiunte le funzioni
calculateBounds()
, che corrispondono alle stesse funzioni diRoundedPolygon
. (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
vengono 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/con stelle. Esistono anche nuove API per calcolare i limiti esatti richiesti per una forma (i limiti precedenti erano solo una stima basata sui punti di ancoraggio e di controllo della curva di Bezier sottostante), nonché i limiti massimi possibili, che possono essere utili per determinare le dimensioni del contenitore che la contiene se verrà ruotata all'interno di quel contenitore. (I71827)
Modifiche all'API
- Ora sono disponibili più opzioni per il recupero dei limiti esatti e massimi. (I6d49f, b/317286450)
Correzioni di bug
- Occasionalmente si verificavano artefatti di rendering durante il disegno di queste forme come percorsi con tratto, a causa di un problema di rendering a basso livello relativo alle curve di lunghezza pari a zero. Questo bug è stato corretto eliminando tutte le curve di lunghezza pari a zero (che non sono necessarie per le forme, risparmiando così anche sui costi generali dei percorsi 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
vengono rilasciati. La versione 1.0.0-alpha04 contiene questi commit.
Nuove funzionalità
- Questa release contiene diverse modifiche all'API, oltre a correzioni di bug.
- Molte delle modifiche all'API rendono la libreria Shapes compatibile con KMP. In questo modo è più facile chiamare da codice non Android (ad esempio codice Compose agnostico 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 all'API
Morph.asMutableCubics
sostituito con una funzione per eseguire l'iterazione suMutableCubics
. È stata modificata l'interfaccia funzionalePointTransformer
, ora prende le coordinate x e y di unPoint
e restituisce unTransformedResult
(costruito con le coordinate x e y trasformate) (I6719e)- È stato rimosso il costruttore pubblico
Cubic
e trasformato in una funzione di fabbrica. (I409ce) - Aggiunta di API di trasformazione e disegno specifiche per Android (I079f6, b/292289543)
- Elimina le dipendenze da Android (Iadc1c, b/292289543)
- I nomi delle proprietà di ancoraggio e di controllo sono ora più significativi (If13bd, b/294562941)
- Parametri
PointF
modificati in coppieFloat
(Id4705, b/276466399, b/290254314) progress
viene ora passato direttamente ai comandi di disegnoMorph
(Icdca2)
Correzioni di bug
- Bug corretto 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
viene rilasciato. La versione 1.0.0-alpha03 contiene questi commit.
Modifiche all'API
- È stata aggiunta una nuova funzione
RoundedPolygon.rectangle()
(I78e7e, b/280322189) - Le funzioni Stella e Cerchio ora non sono più maiuscole e vengono chiamate tramite l'oggetto companion di
RoundedPolygon
: ad es.RoundedPolygon.star(...)
(I14735)
Correzioni di bug
- Bug relativo all'appiattimento corretto (Ibf894)
- È stato risolto un bug che si verificava quando le forme di inizio e di fine erano uguali. Distribuisci meglio lo spazio disponibile sui lati per i tagli, utilizzando prima lo spazio disponibile per arrotondare, poi per smussare se rimane spazio. (Ibd320, b/277936300)
Versione 1.0.0-alpha02
19 aprile 2023
androidx.graphics:graphics-shapes:1.0.0-alpha02
viene rilasciato. La versione 1.0.0-alpha02 contiene questi commit.
Modifiche all'API
- La superclasse Polygon è stata unita alla sua sottoclasse
RoundedPolygon
; tutti i poligoni ora sono [facoltativamente] arrotondati. - La funzione ASTRA (che restituisce ancora un
RoundedPolygon
, come prima) ora accetta un valoreinnerRadius
anziché il parametroinnerRadiusRatio
precedente. Si tratta delle stesse unità del parametro raggio esistente, il che semplifica e rende più coerente la situazione. Inoltre, il parametronumOuterVertices
è stato rinominato innumVerticesPerRadius
per chiarire che lo stesso numero viene applicato sia ai raggi interni che a quelli esterni. - In precedenza,
CornerRounding.radius
era documentato come relativo alle dimensioni del poligono, ma era (e dovrebbe essere) un valore assoluto, non relativo. La documentazione è stata aggiornata 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 morphing (animazione) semplici e automatici tra forme diverse.
androidx.graphics:graphics-shapes:1.0.0-alpha01
viene rilasciato. 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 facoltativi
CornerRounding
per specificare il raggio di arrotondamento e i parametri di smussamento per gli angoli, in modo da ottenere 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 le forme iniziale e finale. Anima l'avanzamento nel tempo, disegnando il risultato in ogni frame, per creare un'animazione fluida tra queste nuove forme arrotondate.
Percorso grafico versione 1.0
Versione 1.0.1
1° maggio 2024
androidx.graphics:graphics-path:1.0.1
viene 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
viene rilasciato.
Versione 1.0.0-rc01
21 febbraio 2024
androidx.graphics:graphics-path:1.0.0-rc01
viene rilasciato. La versione 1.0.0-rc01 contiene questi commit.
Correzioni di bug
- Migliorare le prestazioni di PathIterator su API < 34 (Id4629)
Versione 1.0.0-beta02
10 gennaio 2024
Le modifiche di questa release hanno riguardato esclusivamente la riduzione delle dimensioni della libreria, che erano maggiori del necessario a causa di ipotesi fatte dal codice nativo.
androidx.graphics:graphics-path:1.0.0-beta02
viene rilasciato. 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) - Ridotti i componenti nativi di
androidx.graphics:graphics-path
del 43%. (I8e40d)
Versione 1.0.0-beta01
29 novembre 2023
androidx.graphics:graphics-path:1.0.0-beta01
viene rilasciato. La versione 1.0.0-beta01 contiene questi commit.
Modifiche all'API
- Sono stati rimossi gli utilizzi dell'API
isAtLeastU()
sperimentale (Ie9117, b/289269026)
Correzioni di bug
- Vari bug fix e miglioramenti delle prestazioni, tra cui il modo in cui la libreria gestisce le coniche.
Versione 1.0.0-alpha02
7 giugno 2023
androidx.graphics:graphics-path:1.0.0-alpha02
viene rilasciato. Questa versione è sviluppata in un ramo interno.
Nuove funzionalità
- È stato risolto un problema con il controllo della versione della piattaforma interna che causava problemi durante l'esecuzione nelle anteprime di Android 14 (il controllo della versione non andava a buon fine, ma il meccanismo per eseguire operazioni nelle release precedenti non funziona correttamente in particolare su Android 14).
Versione 1.0.0-alpha01
22 marzo 2023
androidx.graphics:graphics-path:1.0.0-alpha01
viene rilasciato. La versione 1.0.0-alpha01 contiene questi commit.
Nuove funzionalità
- Questa nuova libreria consente di eseguire query sui dati di Path tramite la nuova API
PathIterator
. Con questa API, gli utenti chiamanti possono eseguire l'iterazione di tutti i segmenti di un oggetto Path per determinare l'operazione e i dati relativi a questi segmenti. - La libreria utilizza API simili a quelle introdotte nella versione di anteprima di Android 14, ma questa versione AndroidX dell'API funziona anche sulle versioni precedenti all'API 21.
Graphics Core Version 1.0
Versione 1.0.2
16 ottobre 2024
androidx.graphics:graphics-core:1.0.2
viene rilasciato. La versione 1.0.2 contiene questi commit.
Correzioni di bug
- È stato risolto il problema per cui le istanze
SurfaceControl
continuavano a essere gestite dal compositore di sistema anche dopo essere state rilasciate. - È stato risolto il problema per cui l'istanza
HardwareBuffer
attualmente presentata non veniva rilasciata dopo lo smaltimento delle dipendenze a bassa latenza - È stato risolto un problema di sfarfallio su alcuni dispositivi Android 14 e versioni successive che non supportavano l'indicatore di utilizzo del buffer anteriore
Versione 1.0.1
4 settembre 2024
androidx.graphics:graphics-core:1.0.1
viene rilasciato. La versione 1.0.1 contiene questi commit.
Correzioni di bug
- È stato risolto un problema per cui a volte le risorse di memoria non venivano rilasciate.
Versione 1.0.0
29 maggio 2024
androidx.graphics:graphics-core:1.0.0
viene rilasciato. La versione 1.0.0 contiene questi commit.
Funzionalità principali della versione 1.0.0
- Uscita stabile ufficiale della libreria graphics-core. Sono incluse correzioni di bug minori e miglioramenti delle prestazioni rispetto alla versione 1.0.0-rc01
Versione 1.0.0-rc01
17 aprile 2024
androidx.graphics:graphics-core:1.0.0-rc01
viene rilasciato. Questa versione è sviluppata in un ramo interno.
Correzioni di bug
- È stato risolto un problema che poteva causare la potenziale doppia chiusura dei descrittori file con
CanvasBufferedRendererAPI
su alcuni dispositivi Android con Android 14. - È stato risolto un 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 rilasciato. 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 di grafica 2D di Android (Canvas + Paint) all'interno della gerarchia View. - È stata introdotta l'API
CanvasBufferedRenderer
per supportare il rendering di Canvas con accelerazione hardware in unHardwareBuffer
. Questo può essere utilizzato per disegnare una parte di un'interfaccia utente in un buffer che può essere convertito in un bitmap utilizzando l'APIBitmap.wrapHardwareBuffer
.
Modifiche all'API
- L'API
CanvasBufferRenderer#releaseBuffer
è stata aggiornata per includere un parametro recinto facoltativo. Documentazione aggiornata per descrivere quando viene restituitoRenderResult#fence
. (If1ea7) - Aggiungi il metodo
draw
aRenderRequest
per supportare l'utilizzo delle coroutine per pianificare le richieste di estrazione. Il metodo draw precedente che utilizzava un'esecuzione è stato rinominato indrawAsync
. MetodoisClosed()
sottoposto a refactoring in una proprietà. (I5bff6) - Parametro del formato del buffer esposto a
CanvasFrontBufferRenderer
per mappare direttamente aCanvasBufferedRenderer.Builder#setBufferFormat
(I0f272) - È stata creata l'API
CanvasBufferedRenderer
per gestire il rendering della tela con accelerazione hardware in unHardwareBuffer
. Ciò fornisce un'implementazione di backporting ad Android Q insieme alla configurazione di una profondità della catena di scambio diHardwareBuffers
. La configurazione diColorSpace
è ancora limitata ad Android U e versioni successive, ma l'implementazione di compatibilità fornisce un comportamento di no-op per conto degli sviluppatori. (I9b1d8) - Aggiungi le API
setFrameRate
/clearFrameRate
aSurfaceControlCompat.Transaction
per controllare la frequenza dei fotogrammi insieme alla strategia di modifica per le transizioni senza interruzioni o predefinite. (I6045c) - È stato abbassato il livello API richiesto per
setDataSpace
ad Android Q da Android T. (I59c34) - È stato aggiunto il callback
onBufferReleased
all'APIGLFrameBufferRenderer
per offrire ai consumatori l'opportunità di ripulire lo stato quando un buffer non viene più presentato (I8a4e2) - Crea
LowLatencyCanvasView
per supportare un semplice caso d'uso di rendering dei contenuti con bassa latenza che viene sincronizzato con il rendering della gerarchia delle visualizzazioni. In questo modo, le complessità associate alla gestione diSurfaceView
vengono mitigate gestendo internamente l'istanzaSurfaceView
che viene tradotta sullo schermo/al di fuori dello schermo per il rendering rispettivamente sincronizzato e a bassa latenza. (I9253b) - È stato aggiunto il supporto della configurazione dello spazio di colore all'API
CanvasFrontBufferedRenderer
. Aggiornamento dei callback con più buffer per includere ancheSurfaceControl
con buffer posteriore (I24bd9)
Versione 1.0.0-alpha05
6 settembre 2023
androidx.graphics:graphics-core:1.0.0-alpha05
viene 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 catena di scambio, formati pixel e configurazione diSurfaceControl
. (Ic775b)
Modifiche all'API
- Sono stati aggiunti i parametri larghezza + altezza a varie API di callback per le dimensioni del canale a partire da
SurfaceHolder#Callbacks
. (I7f9fc) - È stata aggiunta l'API clear per cancellare i livelli anteriori e con più buffer. (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 su
GLFrameBufferRenderer
, l'annotazioneIntRange
per le voci del buffer massimo e le annotazioniHardwareBufferFormart
eHardwareBufferUsage
persetFormat
/setUsage
rispettivamente. (Ief89e) - È stata aggiornata l'API
setBuffer
per le transazioniSurfaceControl
per fornire una barriera di rilascio. (Ice1bb) - Sono state aggiunte API
SurfaceControlCompat.Transaction
per configurare lo spazio dati e impostare l'intervallo di luminosità esteso. (Ic378d)
Versione 1.0.0-alpha04
7 giugno 2023
androidx.graphics:graphics-core:1.0.0-alpha04
viene rilasciato. La versione 1.0.0-alpha04 contiene questi commit.
Nuove funzionalità
- È stato introdotto
CanvasFrontBufferedRenderer
per supportare la grafica a bassa latenza sfruttando l'APIandroid.graphics.Canvas
insieme all'implementazione OpenGL esistente
Modifiche all'API
- L'API
SurfaceControlCompat.Transaction#setBuffer
è stata aggiornata per consentire alle istanzeHardwareBuffer
nullable di rispecchiare l'API della piattaforma corrispondente (I173d7) - Rinomina i metodi che fanno riferimento al rendering con doppio buffer in Multi Buffered, poiché la swapchain di supporto potrebbe contenere più di 2 buffer. (I830d7)
- Crea l'API
CanvasFrontBufferedRenderer
per consentire ai fornitori di terze parti di sfruttare un sistema di rendering con buffering in primo piano utilizzando l'API Canvas. (Ibfc29)
Correzioni di bug
- È stato risolto il problema per cui
GLFrontBufferedRenderer
non mostrava i contenuti dopo la ripresa dell'attività corrispondente. - È stato risolto il problema per cui i contenuti in primo piano memorizzati nella cache venivano cancellati prematuramente.
- È stato risolto il problema per cui
SurfaceHolder.Callbacks
non veniva rimosso dopo il rilascio delle API di grafica a bassa latenza.
Versione 1.0.0-alpha03
22 marzo 2023
androidx.graphics:graphics-core:1.0.0-alpha03
viene rilasciato. La versione 1.0.0-alpha03 contiene questi commit.
Modifiche all'API
- È stata aggiornata l'implementazione del callback
GLFrontBufferedRenderer
per fornire un oggettoBufferInfo
contenente la larghezza/l'altezza del buffer e un identificatore del frame buffer che può essere utilizzato per eseguire il ricliccamento della destinazione originale dopo il rendering in un buffer intermedio. (I7fe20) - Creazione consolidata di
SyncFence
nel metodo di fabbrica statico suSyncFenceCompat
. - È stato rimosso il metodo di compatibilità pubblico per
eglDupNativeFenceFDANDROID
a favore del metodo di fabbricaSyncFenceCompat
per la creazione di SyncFence. Questo serve ad assicurarti che tutte le interfacce API ricevano l'implementazione corretta diSyncFence
, indipendentemente dal livello dell'API. (I849bb) - È stata aggiunta la documentazione per
FrameBufferRenderer
eSyncStrategy
.FrameBufferRenderer
+FrameBuffer
+FrameBufferPool
spostati nel pacchettoandroidx.graphics.opengl
SyncStrategy
spostato nel pacchettoandroidx.graphics.opengl
- Documenti
RenderCallback#onDraw
aggiornati - Documentazione aggiornata di
RenderCallback#obtainFrameBuffer
che l'implementatore dell'API è responsabile di chiamareFrameBuffer.close
- Aggiornamento di
onDrawComplete
per indicare che i consumatori sono responsabili dell'invio dei contenuti da visualizzare - Le interfacce/classi di compatibilità
SyncFence
sono state spostate nel pacchettoandroidx.hardware
per rispecchiare il framework - L'API
SyncFence
è stata rinominata inSyncFenceV19
e resa privata per consolidare gli utilizzi inSyncFenceCompat
, che sfrutta l'APISyncFence
del framework ove possibile. (I5149c)
- Sono stati aggiunti i metodi
GLFrontBufferedRenderer#cancel
eGLFrontBufferedRenderer#execute
. Il primo è utile negli scenari di rifiuto della palma in cui l'elaborazione nel buffer anteriore deve essere annullata e il buffer anteriore deve essere nascosto. Quest'ultimo è utile in scenari per manipolare gli oggetti nel thread GL senza dover pianificare un rendering. (If0b7f) - Aggiungi l'API per eseguire il rendering direttamente nel livello con doppio buffer. Questo consente di eseguire nuovamente il rendering di una scena dopo la ripresa e offre ai consumatori l'opportunità di determinare in modo selettivo quando utilizzare il rendering con buffering in primo piano in base alla scena da eseguire. (Ied56c)
- È stata aggiunta una nuova API a
SurfaceControlCompat.Builder
per supportare la configurazione delSurfaceControl
principale da un'altra istanza diSurfaceControl
, oltre al meccanismo esistente da unSurfaceView
. (I1d1b6) - Maggiore nullabilità del tipo di ritorno delle funzioni nascoste ritirate (Ibf7b0)
- È stata aggiunta la costante di estensione
EGL_ANDROID_get_native_client_buffer
per verificare se il dispositivo Android supporta l'importazione di istanzeHardwareBuffer
in oggettiEGLClientBuffer
che possono essere utilizzati come istanzeEGLImage
. (Iad767) - Aggiunta di un'annotazione
@JvmDefaultWithCompatibility
(I8f206)
Versione 1.0.0-alpha02
9 novembre 2022
androidx.graphics:graphics-core:1.0.0-alpha02
viene rilasciato. La versione 1.0.0-alpha02 contiene questi commit.
Modifiche all'API
- È stata corretta l'annotazione
RequiresApi
mancante peraddTransactionCommitListener
, introdotta in Android S (I0a035) - Aggiornati i
onDraw<Front/Double>
callback del buffer per fornire una matrice di trasformazione che gli utenti possono passare ai loro shader vertex, oltre alla larghezza/all'altezza del buffer corrente. È responsabilità dei consumatori utilizzare questi parametri per pre-ruotare correttamente il codice di rendering OpenGL. (I82f9e)
Correzioni di bug
- La latenza della grafica è stata migliorata mediante la pre-rotazione dei buffer prima dell'emissione delle transazioni
SurfaceControl
. - Risolto un 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 utilizzato. - Maggiore supporto per emulatori e dispositivi ChromeOS.
- È stato risolto il problema per cui il livello in primo piano con buffer potrebbe essere nascosto prematuramente.
Versione 1.0.0-alpha01
24 ottobre 2022
androidx.graphics:graphics-core:1.0.0-alpha01
viene rilasciato. La versione 1.0.0-alpha01 contiene questi commit.
Nuove funzionalità
- Versione iniziale della libreria AndroidX Graphics Core. Sono incluse le API per supportare casi d'uso a bassa latenza come l'input con lo stilo. Vengono inoltre introdotte alcune API di supporto per l'utilizzo di OpenGL.
Modifiche all'API
- Viene introdotto
GLFrontBufferedRenderer
per supportare il rendering in primo piano e con più buffer al fine di ottenere sia una latenza ridotta sia un'uscita di rendering di alta qualità. - Viene introdotta l'API
GLRenderer
per supportare il rendering OpenGL per vari fornitori di piattaforme comeSurfaceView
,TextureView
e altri.