grafica
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 | - |
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.
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'attributod
nell'elementopath
di un 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. 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
RoundedPolygons
più 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
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 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 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 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
. Interfaccia funzionalePointTransformer
modificata, ora accetta 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
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 coppieFloat
(Id4705, b/276466399, b/290254314) progress
viene ora passato direttamente ai comandi di disegnoMorph
(Icdca2)
Correzioni di bug
- 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
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 valoreinnerRadius
, anziché il parametroinnerRadiusRatio
precedente. Le unità di misura sono le stesse del parametro raggio esistente, il che rende tutto più semplice e coerente. Inoltre, il parametronumOuterVertices
è stato rinominatonumVerticesPerRadius
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
- Utilizzi rimossi 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 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 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
draw
aRenderRequest
per 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
CanvasFrontBufferRenderer
per il mapping diretto 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 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
/clearFrameRate
aSurfaceControlCompat.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'APIGLFrameBufferRenderer
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 diSurfaceView
gestendo internamente l'istanza diSurfaceView
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 posterioreSurfaceControl
(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 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
eIntRange
per le voci del buffer massimo e nelle annotazioniHardwareBufferFormart
eHardwareBufferUsage
persetFormat
/setUsage
rispettivamente. (Ief89e) - API
setBuffer
aggiornata sulle transazioniSurfaceControl
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'APIandroid.graphics.Canvas
insieme all'implementazione OpenGL esistente
Modifiche alle API
- È stata aggiornata l'API
SurfaceControlCompat.Transaction#setBuffer
per consentire alle istanzeHardwareBuffer
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'oggettoBufferInfo
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 suSyncFenceCompat
. - È stato rimosso il metodo di compatibilità pubblico per
eglDupNativeFenceFDANDROID
a favore del metodo di fabbricaSyncFenceCompat
per la creazione di SyncFence. In questo modo, tutte le superfici API ricevono l'implementazione corretta diSyncFence
indipendentemente dal livello API. (I849bb) - È stata aggiunta la documentazione per
FrameBufferRenderer
eSyncStrategy
.- Spostato
FrameBufferRenderer
+FrameBuffer
+FrameBufferPool
nel pacchettoandroidx.graphics.opengl
- Elemento
SyncStrategy
spostato nel pacchettoandroidx.graphics.opengl
RenderCallback#onDraw
documenti aggiornati- Documentazione aggiornata di
RenderCallback#obtainFrameBuffer
che l'implementatore dell'API è responsabile della chiamata diFrameBuffer.close
onDrawComplete
aggiornato per indicare che i consumatori sono responsabili dell'invio dei contenuti da visualizzare- Interfacce/classi di compatibilità
SyncFence
spostate nel pacchettoandroidx.hardware
per rispecchiare il framework - È stata rinominata l'API
SyncFence
inSyncFenceV19
ed è stata resa privata per consolidare gli utilizzi inSyncFenceCompat
, che sfrutta l'APISyncFence
del framework ove possibile. (I5149c)
- Spostato
- Sono stati aggiunti i metodi
GLFrontBufferedRenderer#cancel
eGLFrontBufferedRenderer#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 diSurfaceControl
principale da un'altra istanza diSurfaceControl
, oltre al meccanismo esistente da unSurfaceView
. (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 istanzeHardwareBuffer
in oggettiEGLClientBuffer
che 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
viene ritirata. La versione 1.0.0-alpha02 contiene questi commit.
Modifiche alle API
- È stata corretta l'annotazione
RequiresApi
mancante peraddTransactionCommitListener
, 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, comeSurfaceView
,TextureView
e altri.