graphismes
Ce tableau présente tous les artefacts du groupe androidx.graphics
.
Artefact | Version stable | Version finale | Version bêta | Version alpha |
---|---|---|---|---|
graphics-core | 1.0.2 | - | - | - |
graphics-path | 1.0.1 | - | - | - |
graphics-shapes | 1.0.1 | - | - | 1.1.0-alpha01 |
Déclarer des dépendances
Pour ajouter une dépendance sur Graphics, vous devez ajouter le dépôt Maven de Google à votre projet. Pour en savoir plus, consultez la section Dépôt Maven de Google.
Ajoutez les dépendances correspondant aux artefacts dont vous avez besoin dans le fichier build.gradle
de votre application ou de votre module :
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") }
Pour en savoir plus sur les dépendances, consultez Ajouter des dépendances de compilation.
Commentaires
Vos commentaires nous aident à améliorer Jetpack. N'hésitez pas à nous contacter si vous découvrez de nouveaux problèmes ou si vous avez des idées pour améliorer cette bibliothèque. Veuillez consulter les problèmes existants de cette bibliothèque avant d'en signaler un nouveau. Vous pouvez ajouter votre vote à un problème existant en cliquant sur le bouton en forme d'étoile.
Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.
Aucune note de version pour cet artefact.
Graphics version 1.1
Version 1.1.0-alpha01
11 décembre 2024
Publication d'androidx.graphics:graphics-*:1.1.0-alpha01
. La version 1.1.0-alpha01 contient ces commits.
Nouvelles fonctionnalités
- La démo principale a été retravaillée pour devenir un éditeur de formes générique. Vous pouvez ainsi importer des formes à partir d'un chemin SVG, modifier manuellement les éléments détectés en cas d'erreurs dans le processus automatique et exporter le résultat dans un code pouvant être utilisé en production. (I1ac13)
- Remplacez les mesures d'angle pour la progression du contour de la forme par des mesures de longueur de courbe. Vous pourrez ainsi utiliser des formes plus complexes pour le morphing. (I75478) , I390dd
- Amélioration de l'algorithme de mappage des éléments afin que davantage de morphings soient plus naturels. (I83287)
Modifications apportées à l'API
- Ajout de l'importation de chemins SVG et du sérialiseur de fonctionnalités. Le processus habituel est le suivant :
- Utilisez le nouvel élément
SvgPathParser.parseFeatures()
pour convertir un tracé SVG (valeur de l'attributd
sur l'élémentpath
d'un SVG) enList<Feature>
. - Il peut être modifié, puis sérialisé en chaîne avec
FeatureSerializer.serialize()
. - La chaîne obtenue peut être utilisée dans le code de production, en l'important avec
FeatureSerializer.parse()
. - Notez que les étapes 1 et 2 sont effectuées une seule fois et peuvent être effectuées avec la nouvelle application. Le code de production ne nécessite que l'étape 3. (I9bd00, b/371196190), (Ic3842), (If68ed), (I10251)
- Utilisez le nouvel élément
- Exposez les éléments géographiques polygonaux et les types d'éléments géographiques. Vous pouvez désormais créer des
RoundedPolygons
plus génériques avec le constructeur de base qui utilise unList<Features>
. Les éléments géographiques sont principalement une liste de courbes de Bézier cubiques, mais ils sont tagués pour aider l'algorithme de morphing à faire correspondre les formes de début et de fin (les coins convexes sont mappés sur des coins convexes et les coins concaves sur des coins concaves). (I61e76), (I1fc5c) - Ajout de la compatibilité avec la cible KMP
watchosDeviceArm64
et la cible Kotlin 1.9. (Icf15d, b/364652024)
Correction de bugs
- Correction d'un cas particulier lorsque la dernière fonctionnalité était vide. (I390dd)
- Renforcer la création de
RoundedPolygon
(Ib862c, b/360888486) - Correction d'un bug lors de l'initialisation de
RoundedPolygon
. (I83ddb) - Correction d'une erreur dans l'algorithme permettant d'estimer le centre du polygone. (Ida147)
Graphics Shapes version 1.0
Version 1.0.0
21 août 2024
Publication d'androidx.graphics:graphics-shapes:1.0.0
, androidx.graphics:graphics-shapes-android:1.0.0
et androidx.graphics:graphics-shapes-desktop:1.0.0
. La version 1.0.0 contient ces commits.
Version 1.0.0-rc01
24 juillet 2024
Publication d'androidx.graphics:graphics-shapes:1.0.0-rc01
, androidx.graphics:graphics-shapes-android:1.0.0-rc01
et androidx.graphics:graphics-shapes-desktop:1.0.0-rc01
. La version 1.0.0-rc01 contient ces commits.
Version 1.0.0-beta01
1er mai 2024
Publication d'androidx.graphics:graphics-shapes:1.0.0-beta01
, androidx.graphics:graphics-shapes-android:1.0.0-beta01
et androidx.graphics:graphics-shapes-desktop:1.0.0-beta01
. La version 1.0.0-beta01 contient ces commits.
Modifications apportées à l'API
- Permet de pré-roter les formes pour qu'elles commencent à un autre point. Cette modification permet aux formes
pillStar
de commencer leurs courbes à partir d'un point non par défaut sur le périmètre. Cela peut être utile lorsque vous animez le trait du tracé de la forme pour commencer à dessiner à partir d'un emplacement spécifique sur le contour de la forme. (Ifbb4d, b/324303807) - Ajout de fonctions
calculateBounds()
à Morph, qui correspondent aux mêmes fonctions surRoundedPolygon
. (I8a3b6, b/325463575)
Version 1.0.0-alpha05
7 février 2024
Publication d'androidx.graphics:graphics-shapes:1.0.0-alpha05
, androidx.graphics:graphics-shapes-android:1.0.0-alpha05
et androidx.graphics:graphics-shapes-desktop:1.0.0-alpha05
. Liste des commits de la version 1.0.0-alpha05
Nouvelles fonctionnalités
- La bibliothèque propose désormais de nouvelles fonctions
pill()
etpillStar()
pour créer facilement ces formes arrondies/en forme d'étoile. De nouvelles API permettent également de calculer les limites exactes requises pour une forme (les limites précédentes n'étaient qu'une estimation basée sur l'ancrage et les points de contrôle de la courbe de Bézier sous-jacente), ainsi que les limites maximales possibles, ce qui peut être utile pour déterminer la taille du conteneur qui la contient si elle sera pivotée dans ce conteneur. (I71827)
Modifications apportées à l'API
- Plus d'options pour récupérer les limites exactes et maximales. (I6d49f, b/317286450)
Correction de bugs
- Des artefacts de rendu apparaissaient occasionnellement lorsque vous dessiniez ces formes en tant que tracés avec trait, en raison d'un problème de rendu de bas niveau lié aux courbes de longueur nulle. Ce bug a été corrigé en éliminant toutes les courbes de longueur nulle (dont les formes n'ont pas besoin, ce qui permet également de réduire les frais généraux des tracés produits par les formes).
Version 1.0.0-alpha04
13 décembre 2023
Publication d'androidx.graphics:graphics-shapes:1.0.0-alpha04
, androidx.graphics:graphics-shapes-android:1.0.0-alpha04
et androidx.graphics:graphics-shapes-desktop:1.0.0-alpha04
. Liste des commits de la version 1.0.0-alpha04
Nouvelles fonctionnalités
- Cette version contient plusieurs modifications apportées à l'API, ainsi que des corrections de bugs.
- De nombreuses modifications apportées à l'API rendent la bibliothèque Shapes compatible avec KMP. Cela facilite l'appel à partir de code autre qu'Android (tel que le code Compose indépendant d'Android). Par exemple, l'API ne contient aucun type Android, comme les types PointF, Matrix et Path précédents.
- Plusieurs modifications ont également été apportées aux API et à l'implémentation pour des raisons de performances, en particulier pour réduire l'allocation (et la collecte) d'objets. Par exemple, le passage de PointF à des paramètres Float distincts évite d'allouer de nombreuses structures PointF temporaires pour contenir ces sommets.
Modifications apportées à l'API
- Remplacement de
Morph.asMutableCubics
par une fonction permettant d'itérer surMutableCubics
. Modification de l'interface fonctionnellePointTransformer
. Elle prend désormais les coordonnées x et y d'unPoint
et renvoie unTransformedResult
(construit avec les coordonnées x et y transformées) (I6719e) - Suppression du constructeur
Cubic
public et transformation en fonction de fabrique. (I409ce) - Ajout d'API de transformation et de dessin spécifiques à Android (I079f6, b/292289543)
- Suppression des dépendances Android (Iadc1c, b/292289543)
- Les noms des propriétés d'ancrage et de contrôle sont désormais plus pertinents. (If13bd, b/294562941)
- Les paramètres
PointF
ont été remplacés par des pairesFloat
. (Id4705, b/276466399, b/290254314) progress
est désormais transmis directement aux commandes de dessinMorph
. (Icdca2)
Correction de bugs
- Correction d'un bug lors de la création de grandes formes. (I4fd66, b/313497325)
Version 1.0.0-alpha03
7 juin 2023
Publication d'androidx.graphics:graphics-shapes:1.0.0-alpha03
. Liste des commits de la version 1.0.0-alpha03
Modifications apportées à l'API
- Ajout d'une nouvelle fonction
RoundedPolygon.rectangle()
(I78e7e, b/280322189) - Les fonctions Star et Circle sont désormais décapitalisées et appelées via l'objet associé de
RoundedPolygon
: par exemple,RoundedPolygon.star(...)
(I14735)
Correction de bugs
- Correction d'un bug lié à l'adoucissement (Ibf894)
- Correction d'un bug qui se produisait lorsque la forme de début et de fin était la même. Mieux répartir l'espace disponible sur le côté pour les coupures, en utilisant d'abord l'espace disponible pour l'arrondi, puis pour l'adoucissement s'il reste de l'espace. (Ibd320, b/277936300)
Version 1.0.0-alpha02
19 avril 2023
Publication d'androidx.graphics:graphics-shapes:1.0.0-alpha02
. Liste des commits de la version 1.0.0-alpha02.
Modifications apportées à l'API
- La super-classe Polygon a été fusionnée avec sa sous-classe,
RoundedPolygon
. Tous les polygones sont désormais des polygones arrondis [facultatif]. - La fonction Star (qui renvoie toujours un
RoundedPolygon
, comme auparavant) accepte désormais une valeurinnerRadius
au lieu du paramètreinnerRadiusRatio
précédent. Il s'agit des mêmes unités que le paramètre de rayon existant, ce qui simplifie et améliore la cohérence. Le paramètrenumOuterVertices
a également été renomménumVerticesPerRadius
pour indiquer clairement que le même nombre est appliqué aux rayons intérieur et extérieur. CornerRounding.radius
était auparavant considéré comme relatif à la taille du polygone, mais il s'agissait (et doit s'agir) d'une valeur absolue, et non relative. Les documents ont été mis à jour et l'annotation qui la limitait à une valeur maximale de 1,0 a été corrigée.
Version 1.0.0-alpha01
5 avril 2023
Graphics-Shapes est une nouvelle bibliothèque qui permet de créer et d'afficher facilement des formes polygonales arrondies, ainsi que de transformer (animer) simplement et automatiquement des formes différentes.
Publication d'androidx.graphics:graphics-shapes:1.0.0-alpha01
. Cette version a été publiée à partir d'une branche interne.
Nouvelles fonctionnalités
- Utilisez l'API Polygone pour créer des polygones réguliers et en étoile avec le nombre de sommets souhaité.
- Utilisez les paramètres
CornerRounding
facultatifs pour spécifier le rayon d'arrondi et les paramètres de lissage des angles, ce qui permet d'obtenir des formes polygonales aux angles arrondis. - Utilisez la nouvelle API
Morph(Polygon, Polygon)
pour calculer automatiquement une forme de "morphing" dont la progression peut être définie entre 0 et 1 pour animer les formes de début et de fin. Animez cette progression au fil du temps, en dessinant le résultat à chaque frame, pour créer une animation fluide entre ces nouvelles formes arrondies.
Graphics Path version 1.0
Version 1.0.1
1er mai 2024
Publication d'androidx.graphics:graphics-path:1.0.1
. La version 1.0.1 contient ces commits.
Correction de bugs
- Améliorations apportées aux options de compilation.
Version 1.0.0
6 mars 2024
Publication d'androidx.graphics:graphics-path:1.0.0
.
Version 1.0.0-rc01
21 février 2024
Publication d'androidx.graphics:graphics-path:1.0.0-rc01
. Liste des commits de la version 1.0.0-rc01
Correction de bugs
- Amélioration des performances de PathIterator avec une API inférieure à 34 (Id4629)
Version 1.0.0-beta02
10 janvier 2024
Les modifications apportées à cette version visaient toutes à réduire la taille de la bibliothèque, qui était plus importante que nécessaire en raison des hypothèses formulées par le code natif.
Publication d'androidx.graphics:graphics-path:1.0.0-beta02
. Liste des commits de la version 1.0.0-beta02
Correction de bugs
- Réduction de la taille de
libandroidx.graphics.path.so
de 96%. (I71397) - Réduire la taille de
libandroidx.graphics.path.so
de 5%. (I2da7c) - Réduction de 43 % des composants natifs de
androidx.graphics:graphics-path
. (I8e40d)
Version 1.0.0-beta01
29 novembre 2023
Publication d'androidx.graphics:graphics-path:1.0.0-beta01
. Liste des commits de la version 1.0.0-beta01
Modifications apportées à l'API
- Suppression des utilisations de l'API expérimentale
isAtLeastU()
. (Ie9117, b/289269026)
Correction de bugs
- Diverses corrections et améliorations des performances, y compris la façon dont la bibliothèque gère les coniques.
Version 1.0.0-alpha02
7 juin 2023
Publication d'androidx.graphics:graphics-path:1.0.0-alpha02
. Cette version est développée dans une branche interne.
Nouvelles fonctionnalités
- Correction d'un problème lié à la vérification de la version de la plate-forme interne qui causait des problèmes lors de l'exécution sur les versions preview d'Android 14 (la vérification de la version échouait, mais le mécanisme d'exécution sur les versions précédentes ne fonctionnait pas correctement, en particulier sur Android 14).
Version 1.0.0-alpha01
22 mars 2023
Publication d'androidx.graphics:graphics-path:1.0.0-alpha01
. Liste des commits de la version 1.0.0-alpha01
Nouvelles fonctionnalités
- Cette nouvelle bibliothèque permet d'interroger les données de parcours via la nouvelle API
PathIterator
. À l'aide de cette API, les appelants peuvent itérer sur tous les segments d'un objet Path pour déterminer l'opération et les données de ces segments. - La bibliothèque utilise des API similaires introduites dans la version preview d'Android 14, mais cette version AndroidX de l'API fonctionne également avec les versions antérieures à l'API 21.
Graphics Core version 1.0
Version 1.0.2
16 octobre 2024
Publication d'androidx.graphics:graphics-core:1.0.2
. La version 1.0.2 contient ces commits.
Correction de bugs
- Correction d'un problème qui entraînait la gestion des instances
SurfaceControl
par le compositeur système même après leur publication. - Correction d'un problème où l'instance
HardwareBuffer
actuellement présentée n'était pas libérée après la suppression des dépendances à faible latence. - Correction d'un problème de clignotement sur certains appareils Android 14 ou version ultérieure qui n'étaient pas compatibles avec l'indicateur d'utilisation du tampon d'affichage.
Version 1.0.1
4 septembre 2024
Publication d'androidx.graphics:graphics-core:1.0.1
. La version 1.0.1 contient ces commits.
Correction de bugs
- Correction d'un problème qui empêchait parfois la libération des ressources de mémoire.
Version 1.0.0
29 mai 2024
Publication d'androidx.graphics:graphics-core:1.0.0
. La version 1.0.0 contient ces commits.
Principales fonctionnalités de la version 1.0.0
- Version stable officielle de la bibliothèque graphics-core. Inclut des corrections mineures de bugs et des améliorations des performances par rapport à la version 1.0.0-rc01
Version 1.0.0-rc01
17 avril 2024
Publication d'androidx.graphics:graphics-core:1.0.0-rc01
. Cette version est développée dans une branche interne.
Correction de bugs
- Correction d'un problème pouvant entraîner une double fermeture des descripteurs de fichiers avec
CanvasBufferedRendererAPI
sur certains appareils Android exécutant Android 14. - Correction d'un problème qui empêchait
FrameBuffer
de supprimer correctement les instances de framebuffer.
Version 1.0.0-beta01
13 décembre 2023
Publication d'androidx.graphics:graphics-core:1.0.0-beta01
. Liste des commits de la version 1.0.0-beta01
Nouvelles fonctionnalités
- Ajout d'une nouvelle API
LowLatencyCanvasView
pour prendre en charge le rendu à faible latence avec les API graphiques 2D d'Android (Canvas + Paint) dans la hiérarchie des vues. - Introduction de l'API
CanvasBufferedRenderer
pour prendre en charge le rendu Canvas avec accélération matérielle sur unHardwareBuffer
. Vous pouvez ainsi dessiner une partie d'une interface utilisateur dans un tampon pouvant être converti en bitmap à l'aide de l'APIBitmap.wrapHardwareBuffer
.
Modifications apportées à l'API
- Mise à jour de l'API
CanvasBufferRenderer#releaseBuffer
pour inclure un paramètre de clôture facultatif. Mise à jour de la documentation pour décrire quandRenderResult#fence
est renvoyé. (If1ea7) - Ajout de la méthode
draw
àRenderRequest
pour permettre d'utiliser des coroutines pour planifier des requêtes de dessin. La méthode de dessin précédente qui consommait un exécuteur a été renomméedrawAsync
. La méthodeisClosed()
a été refactorisée en propriété. (I5bff6) - Paramètre de format de tampon exposé à
CanvasFrontBufferRenderer
pour le mapper directement surCanvasBufferedRenderer.Builder#setBufferFormat
(I0f272) - Création de l'API
CanvasBufferedRenderer
pour gérer le rendu du canevas accéléré par le matériel dans unHardwareBuffer
. Cela fournit une implémentation rétroportée vers Android Q, ainsi qu'une configuration d'une profondeur de swapchain deHardwareBuffers
. La configurationColorSpace
est toujours limitée à Android U+, mais l'implémentation de la compatibilité fournit un comportement sans opération au nom des développeurs. (I9b1d8) - Ajoutez des API
setFrameRate
/clearFrameRate
àSurfaceControlCompat.Transaction
afin de contrôler la fréquence d'images avec la stratégie de modification pour des transitions fluides ou par défaut. (I6045c) - Réduction du niveau d'API requis pour
setDataSpace
à Android Q à partir d'Android T. (I59c34) - Ajout d'un rappel
onBufferReleased
à l'APIGLFrameBufferRenderer
pour permettre aux consommateurs de nettoyer l'état lorsqu'un tampon n'est plus présenté (I8a4e2) - Créez
LowLatencyCanvasView
pour prendre en charge un cas d'utilisation simple de rendu de contenu à faible latence qui est synchronisé avec le rendu de la hiérarchie des vues. Cela atténue la complexité associée à la gestion deSurfaceView
en gérant en interne l'instanceSurfaceView
qui est traduite hors/sur l'écran pour un rendu synchronisé et à faible latence, respectivement. (I9253b) - Ajout de la prise en charge de la configuration de l'espace colorimétrique à l'API
CanvasFrontBufferedRenderer
. Mise à jour des rappels multitamponnés pour inclure également leSurfaceControl
tamponné en arrière. (I24bd9)
Version 1.0.0-alpha05
6 septembre 2023
Publication d'androidx.graphics:graphics-core:1.0.0-alpha05
. Liste des commits de la version 1.0.0-alpha05.
Nouvelles fonctionnalités
- Introduction de l'API
GLFrameBufferRenderer
. Cela fournit une combinaison de dépendances OpenGL, de configuration de la chaîne de remplacement, de formats de pixel et de configurationSurfaceControl
. (Ic775b)
Modifications apportées à l'API
- Ajout des paramètres de largeur et de hauteur à diverses API de rappel pour les dimensions de canalisations à partir de
SurfaceHolder#Callbacks
. (I7f9fc) - Ajout d'une API clear pour effacer les calques de premier plan et multitamponnés. (Ic1f95)
- Prise en charge de la configuration du type de tampon sous-jacent des chaînes d'échange utilisées dans
GLFrontBufferedRenderer
. (I07a13) - Ajout de propriétés Kotlin pour les getters sur
GLFrameBufferRenderer
, d'une annotationIntRange
pour le nombre maximal d'entrées de tampon et d'annotationsHardwareBufferFormart
etHardwareBufferUsage
poursetFormat
/setUsage
, respectivement. (Ief89e) - Mise à jour de l'API
setBuffer
sur les transactionsSurfaceControl
pour fournir une barrière de libération. (Ice1bb) - Ajout d'API
SurfaceControlCompat.Transaction
pour configurer l'espace de données et définir la plage de luminosité étendue. (Ic378d)
Version 1.0.0-alpha04
7 juin 2023
Publication d'androidx.graphics:graphics-core:1.0.0-alpha04
. Liste des commits de la version 1.0.0-alpha04
Nouvelles fonctionnalités
- Introduction de
CanvasFrontBufferedRenderer
pour prendre en charge les graphiques à faible latence en exploitant l'APIandroid.graphics.Canvas
en plus de l'implémentation OpenGL existante
Modifications apportées à l'API
- Mise à jour de l'API
SurfaceControlCompat.Transaction#setBuffer
pour permettre aux instancesHardwareBuffer
nullables de refléter l'API de plate-forme correspondante (I173d7) - Renommez les méthodes faisant référence au rendu double tampon en "multitampon", car la chaîne d'échange de base peut contenir plus de deux tampons. (I830d7)
- Créez une API
CanvasFrontBufferedRenderer
pour permettre aux tiers d'exploiter un système de rendu tamponné avant à l'aide de l'API Canvas. (Ibfc29)
Correction de bugs
- Résolution du problème où
GLFrontBufferedRenderer
n'affichait pas le contenu après la reprise de l'activité correspondante. - Résolution d'un problème qui entraînait l'effacement prématuré du contenu de la mémoire tampon avant.
- Correction d'un problème qui empêchait la suppression de
SurfaceHolder.Callbacks
après la publication des API graphiques à faible latence.
Version 1.0.0-alpha03
22 mars 2023
Publication d'androidx.graphics:graphics-core:1.0.0-alpha03
. Liste des commits de la version 1.0.0-alpha03
Modifications apportées à l'API
- Mise à jour de l'implémentation du rappel
GLFrontBufferedRenderer
pour fournir un objetBufferInfo
contenant la largeur/hauteur du tampon, ainsi qu'un identifiant de tampon d'image pouvant être utilisé pour recibler la destination d'origine après le rendu dans un tampon d'effacement intermédiaire. (I7fe20) - Consolidation de la création de
SyncFence
en méthode de fabrique statique surSyncFenceCompat
. - Suppression de la méthode de compatibilité publique pour
eglDupNativeFenceFDANDROID
au profit de la méthode de fabriqueSyncFenceCompat
pour la création de SyncFence. Cela permet de s'assurer que toutes les surfaces d'API reçoivent l'implémentationSyncFence
appropriée, quel que soit le niveau d'API. (I849bb) - Ajout de documentation pour
FrameBufferRenderer
etSyncStrategy
.FrameBufferRenderer
+FrameBuffer
+FrameBufferPool
déplacés vers le packageandroidx.graphics.opengl
- Déplacement de
SyncStrategy
vers le packageandroidx.graphics.opengl
- Mise à jour des documents
RenderCallback#onDraw
- Mise à jour de la documentation de
RenderCallback#obtainFrameBuffer
, que l'implémentateur de l'API est chargé d'appelerFrameBuffer.close
- Mise à jour de
onDrawComplete
pour indiquer que les consommateurs sont chargés de diffuser les contenus à afficher - Déplacement des interfaces/classes de compatibilité
SyncFence
vers le packageandroidx.hardware
pour refléter le framework - L'API
SyncFence
a été renomméeSyncFenceV19
et rendue privée afin de consolider les utilisations deSyncFenceCompat
, qui exploite l'APISyncFence
du framework dans la mesure du possible. (I5149c)
- Ajout des méthodes
GLFrontBufferedRenderer#cancel
etGLFrontBufferedRenderer#execute
. Le premier est utile dans les scénarios de rejet de la paume de la main, où le rendu dans le tampon d'affichage doit être annulé et le tampon d'affichage masqué. Ce dernier est utile dans les scénarios de manipulation d'objets sur le thread GL sans avoir à planifier un rendu. (If0b7f) - Ajout d'une API pour le rendu directement dans la couche à double tampon. Cela permet de recréer une scène après la reprise et offre aux consommateurs la possibilité de déterminer de manière sélective quand exploiter le rendu tamponné en avant de manière dynamique en fonction de la scène à afficher. (Ied56c)
- Ajout d'une nouvelle API dans
SurfaceControlCompat.Builder
pour permettre de configurer leSurfaceControl
parent à partir d'une autre instanceSurfaceControl
en plus du mécanisme existant à partir d'unSurfaceView
. (I1d1b6) - Possibilité de valeur nulle de type renvoyé accrue pour les fonctions obsolètes ou masquées. (Ibf7b0)
- Ajout d'une constante d'extension
EGL_ANDROID_get_native_client_buffer
pour déterminer si l'appareil Android prend en charge l'importation d'instancesHardwareBuffer
dans des objetsEGLClientBuffer
pouvant être consommés en tant qu'instanceEGLImage
. (Iad767) - Ajout de l'annotation
@JvmDefaultWithCompatibility
. (I8f206)
Version 1.0.0-alpha02
9 novembre 2022
Publication d'androidx.graphics:graphics-core:1.0.0-alpha02
. Liste des commits de la version 1.0.0-alpha02.
Modifications apportées à l'API
- Correction de l'annotation
RequiresApi
manquante pouraddTransactionCommitListener
, introduite dans Android S. (I0a035) - Les rappels de tampon
onDraw<Front/Double>
ont été mis à jour pour fournir une matrice de transformation que les consommateurs peuvent transmettre à leurs nuanceurs de sommet en plus de la largeur/hauteur de tampon actuelle. Les consommateurs doivent utiliser ces paramètres pour effectuer une prérotation correcte de leur code de rendu OpenGL. (I82f9e)
Correction de bugs
- Amélioration de la latence graphique grâce à la prérotation des tampons avant l'émission de transactions
SurfaceControl
. - Résolution du problème lié aux journaux d'erreurs qui affichaient l'erreur 300d (EGL_BAD_SURFACE).
- Résolution du problème où
GLFrontBufferedRenderer
n'était pas valide après la réactivation de l'activité correspondante. - Amélioration de la compatibilité avec les émulateurs et les appareils Chrome OS.
- Résolution de problème qui entraînait le masquage prématuré de la couche avant de la mémoire tampon.
Version 1.0.0-alpha01
24 octobre 2022
Publication d'androidx.graphics:graphics-core:1.0.0-alpha01
. Liste des commits de la version 1.0.0-alpha01
Nouvelles fonctionnalités
- Version initiale de la bibliothèque graphique principale AndroidX. Inclut les API compatibles avec les cas d'utilisation à faible latence, comme la saisie au stylet. Introduction également d'API d'aide pour utiliser OpenGL.
Modifications apportées à l'API
- Introduction de
GLFrontBufferedRenderer
pour faciliter l'affichage multitampon et avant, afin d'obtenir une sortie à faible latence et de haute qualité. - Introduction de l'API
GLRenderer
pour faciliter le rendu OpenGL pour divers fournisseurs de surfaces, commeSurfaceView
etTextureView
, entre autres.