graphics
En esta tabla, se enumeran todos los artefactos del grupo androidx.graphics.
| Artefacto | Versión estable | Versión potencial | Versión beta | Versión alfa |
|---|---|---|---|---|
| graphics-core | 1.0.3 | - | - | - |
| graphics-path | 1.0.1 | - | - | 1.1.0-alpha01 |
| graphics-shapes | 1.1.0 | - | - | - |
Cómo declarar dependencias
Para agregar una dependencia en Graphics, debes agregar el repositorio de Maven de Google a tu proyecto. Consulta el repositorio de Maven de Google para obtener más información.
Agrega las dependencias de los artefactos que necesites en el archivo build.gradle de tu app o módulo:
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") }
Para obtener más información sobre las dependencias, consulta Cómo agregar dependencias de compilación.
Comentarios
Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes de esta biblioteca antes de crear uno nuevo. Puedes agregar tu voto a un error existente haciendo clic en el botón de la estrella.
Consulta la documentación sobre la Herramienta de seguimiento de errores para obtener más información.
No hay notas de la versión para este artefacto.
Versión de gráficos 1.1
Versión 1.1.0
22 de octubre de 2025
Lanzamiento de androidx.graphics:graphics-*:1.1.0. La versión 1.1.0 contiene estas confirmaciones.
Versión 1.1.0-rc01
10 de septiembre de 2025
Lanzamiento de androidx.graphics:graphics-*:1.1.0-rc01. La versión 1.1.0-rc01 contiene estas confirmaciones.
Versión 1.1.0-beta01
30 de julio de 2025
Lanzamiento de androidx.graphics:graphics-*:1.1.0-beta01. La versión 1.1.0-beta01 contiene estas confirmaciones.
Cambios en la API
- Los proyectos lanzados con Kotlin 2.0 requieren que se consuma KGP 2.0.0 o una versión posterior (Idb6b5).
- Se agregaron destinos de compilación de
mingwX64, js y wasm. (I2c46a)
Versión 1.1.0-alpha01
11 de diciembre de 2024
Lanzamiento de androidx.graphics:graphics-*:1.1.0-alpha01. La versión 1.1.0-alpha01 contiene estas confirmaciones.
Nuevas funciones
- Se rediseñó la demostración principal para convertirla en un editor de formas genérico. Esto te permite importar formas desde una ruta SVG, editar manualmente las funciones detectadas en caso de errores en el proceso automático y exportar el resultado a un código que se puede usar en el código de producción. (I1ac13)
- Se reemplazaron las mediciones de ángulos para el progreso del contorno de la forma por mediciones de longitud de la curva, lo que permite usar formas más complejas para la transformación. (I75478) , I390dd
- Se mejoró el algoritmo de asignación de rasgos, por lo que más transformaciones deberían verse más naturales. (I83287)
Cambios en la API
- Se agregaron la importación de rutas de acceso SVG y el serializador de atributos. El flujo habitual es el siguiente:
- Usa el nuevo
SvgPathParser.parseFeatures()para convertir una ruta de SVG (el valor del atributoden el elementopathde un SVG) en unList<Feature>. - Se puede modificar y, luego, serializar en una cadena con
FeatureSerializer.serialize(). - La cadena resultante se puede usar en el código de producción, importándola con
FeatureSerializer.parse(). - Ten en cuenta que los pasos 1 y 2 se realizan una sola vez y se pueden hacer con la app nueva. El código de producción solo debe realizar el paso 3. (I9bd00, b/371196190), (Ic3842), (If68ed), (I10251)
- Usa el nuevo
- Exponer los componentes y los tipos de componentes de polígono Ahora se pueden crear
RoundedPolygonsmás genéricos con el constructor base que toma unList<Features>. Las características son principalmente una lista de curvas Bézier cúbicas, pero se etiquetan para ayudar al algoritmo de transformación a hacer coincidir las formas inicial y final (las esquinas convexas se asignan a esquinas convexas y las esquinas cóncavas se asignan a esquinas cóncavas). (I61e76), (I1fc5c) - Se agregó compatibilidad con el destino
watchosDeviceArm64de KMP y con Kotlin 1.9 como destino. (Icf15d, b/364652024)
Correcciones de errores
- Se corrigió un caso límite en el que la última función estaba vacía. (I390dd)
- Se mejoró la creación de
RoundedPolygon. (Ib862c, b/360888486) - Se corrigió un error en la inicialización de
RoundedPolygon. (I83ddb) - Se corrigió un error en el algoritmo para estimar el centro del polígono. (Ida147)
Graphics Shapes versión 1.0
Versión 1.0.1
4 de septiembre de 2024
Lanzamiento de androidx.graphics:graphics-shapes:1.0.1, androidx.graphics:graphics-shapes-android:1.0.1 y androidx.graphics:graphics-shapes-desktop:1.0.1. La versión 1.0.1 contiene estas confirmaciones.
Versión 1.0.0
21 de agosto de 2024
Lanzamiento de androidx.graphics:graphics-shapes:1.0.0, androidx.graphics:graphics-shapes-android:1.0.0 y androidx.graphics:graphics-shapes-desktop:1.0.0. La versión 1.0.0 contiene estas confirmaciones.
Versión 1.0.0-rc01
24 de julio de 2024
Lanzamiento de androidx.graphics:graphics-shapes:1.0.0-rc01, androidx.graphics:graphics-shapes-android:1.0.0-rc01 y androidx.graphics:graphics-shapes-desktop:1.0.0-rc01. La versión 1.0.0-rc01 contiene estas confirmaciones.
Versión 1.0.0-beta01
1 de mayo de 2024
Lanzamiento de androidx.graphics:graphics-shapes:1.0.0-beta01, androidx.graphics:graphics-shapes-android:1.0.0-beta01 y androidx.graphics:graphics-shapes-desktop:1.0.0-beta01. La versión 1.0.0-beta01 contiene estas confirmaciones.
Cambios en la API
- Permite que las formas se roten previamente para comenzar en un punto diferente. Este cambio permite que las formas
pillStarcomiencen sus curvas desde un punto no predeterminado del perímetro. Esto puede ser útil cuando se anima el trazo de la ruta de la forma para comenzar a dibujar desde una ubicación específica en el contorno de la forma. (Ifbb4d, b/324303807) - Se agregaron funciones
calculateBounds()a Morph, que son paralelas a las mismas funciones enRoundedPolygon. (I8a3b6, b/325463575)
Versión 1.0.0-alpha05
7 de febrero de 2024
Lanzamiento de androidx.graphics:graphics-shapes:1.0.0-alpha05, androidx.graphics:graphics-shapes-android:1.0.0-alpha05 y androidx.graphics:graphics-shapes-desktop:1.0.0-alpha05. La versión 1.0.0-alpha05 contiene estas confirmaciones.
Nuevas funciones
- La biblioteca ahora ofrece nuevas funciones
pill()ypillStar()para crear fácilmente estas formas redondeadas o con estrellas. También hay nuevas APIs para calcular los límites exactos que requiere una forma (los límites anteriores eran solo una estimación basada en los puntos de anclaje y los puntos de control de la curva de Bézier subyacente), así como los límites máximos posibles, lo que puede ser útil para determinar el tamaño del contenedor que la contiene si se rotará dentro de ese contenedor. (I71827)
Cambios en la API
- Ahora hay más opciones para recuperar los límites exactos y máximos. (I6d49f, b/317286450)
Correcciones de errores
- Se producían artefactos de renderización ocasionales cuando se dibujaban estas formas como rutas con trazo, debido a un problema de renderización de bajo nivel relacionado con las curvas de longitud cero. Este error se corrigió eliminando todas las curvas de longitud cero (que las formas no necesitan, lo que también ahorra la sobrecarga de las rutas producidas por las formas).
Versión 1.0.0-alpha04
13 de diciembre de 2023
Lanzamiento de androidx.graphics:graphics-shapes:1.0.0-alpha04, androidx.graphics:graphics-shapes-android:1.0.0-alpha04 y androidx.graphics:graphics-shapes-desktop:1.0.0-alpha04. La versión 1.0.0-alpha04 contiene estas confirmaciones.
Nuevas funciones
- Esta versión contiene varios cambios en la API, así como correcciones de errores.
- Muchos de los cambios en la API hacen que la biblioteca de Shapes sea compatible con KMP. Esto facilita la llamada desde código que no es de Android (como código de Compose independiente de Android). Por ejemplo, no hay tipos de Android en la API, como los tipos PointF, Matrix y Path anteriores.
- También se realizaron varios cambios en las APIs y la implementación por motivos de rendimiento, específicamente para minimizar la asignación (y la recopilación) de objetos. Por ejemplo, el cambio de PointF a parámetros Float separados evita la asignación de muchas estructuras PointF temporales para contener esos vértices.
Cambios en la API
- Se reemplazó
Morph.asMutableCubicspor una función para iterar sobreMutableCubics. Se cambió la interfaz funcionalPointTransformer. Ahora toma las coordenadas X e Y de unPointy devuelve unTransformedResult(que se construye con las coordenadas X e Y transformadas) (I6719e). - Se quitó el constructor público
Cubicy se convirtió en una función de fábrica. (I409ce) - Se agregaron APIs de transformación y dibujo específicas para Android (I079f6, b/292289543).
- Se eliminaron las dependencias de Android (Iadc1c, b/292289543).
- Los nombres de las propiedades de anclaje y control ahora son más lógicos (If13bd, b/294562941).
- Se cambiaron los parámetros de
PointFa pares deFloat(Id4705, b/276466399, b/290254314). - Ahora,
progressse pasa directamente a los comandos de dibujo deMorph(Icdca2).
Correcciones de errores
- Se corrigió el error que se producía al crear formas grandes. (I4fd66, b/313497325)
Versión 1.0.0-alpha03
7 de junio de 2023
Lanzamiento de androidx.graphics:graphics-shapes:1.0.0-alpha03. La versión 1.0.0-alpha03 contiene estas confirmaciones.
Cambios en la API
- Se agregó la nueva función
RoundedPolygon.rectangle()(I78e7e, b/280322189). - Las funciones Star y Circle ahora se escriben con la primera letra en minúscula y se llaman a través del objeto complementario de
RoundedPolygon, p.ej.,RoundedPolygon.star(...)(I14735)
Correcciones de errores
- Se corrigió un error en el suavizado (Ibf894).
- Se corrigió un error que ocurría cuando la forma de inicio y la de finalización eran iguales. Se distribuye mejor el espacio disponible en el lateral para los cortes. Primero, se usa el espacio disponible para el redondeo y, luego, para el suavizado si queda espacio. (Ibd320, b/277936300)
Versión 1.0.0-alpha02
19 de abril de 2023
Lanzamiento de androidx.graphics:graphics-shapes:1.0.0-alpha02. La versión 1.0.0-alpha02 contiene estas confirmaciones.
Cambios en la API
- La superclase Polygon se combinó con su subclase,
RoundedPolygon; todos los polígonos ahora son polígonos redondeados [opcionalmente]. - La función Star (que sigue devolviendo un
RoundedPolygon, como antes) ahora toma un valorinnerRadius, en lugar del parámetroinnerRadiusRatioanterior. Esta unidad es la misma que la del parámetro de radio existente, lo que simplifica y uniformiza las cosas. Además, se cambió el nombre del parámetronumOuterVerticesanumVerticesPerRadiuspara aclarar que se aplica el mismo número a los radios interior y exterior. - Anteriormente, se documentó que
CornerRounding.radiusera relativo al tamaño del polígono, pero era (y debería ser) un valor absoluto, no relativo. Se actualizaron los documentos y se corrigió la anotación que lo limitaba a un valor máximo de 1.0.
Versión 1.0.0-alpha01
5 de abril de 2023
Graphics-Shapes es una nueva biblioteca que permite crear y renderizar fácilmente formas poligonales redondeadas, así como realizar transformaciones (animaciones) simples y automáticas entre diferentes formas.
Lanzamiento de androidx.graphics:graphics-shapes:1.0.0-alpha01. Esta versión se lanzó a partir de una rama interna.
Nuevas funciones
- Usa la API de Polygon para crear polígonos regulares y estrellados con la cantidad de vértices deseada.
- Usa los parámetros
CornerRoundingopcionales para especificar el radio de redondeo y los parámetros de suavizado de las esquinas, lo que genera formas poligonales con esquinas redondeadas. - Usa la nueva API de
Morph(Polygon, Polygon)para calcular automáticamente una forma de “transformación” cuyo progreso se puede establecer de 0 a 1 para animar entre las formas inicial y final. Anima ese progreso con el tiempo, dibuja el resultado en cada fotograma para crear una animación fluida entre estas nuevas formas redondeadas.
Ruta de gráficos, versión 1.0
Versión 1.1.0-alpha01
13 de agosto de 2025
Lanzamiento de androidx.graphics:graphics-path:1.1.0-alpha01. La versión 1.1.0-alpha01 contiene estas confirmaciones.
Correcciones de errores
- Se agregó la implementación para la conversión de cónica a cuadrática y se usa en plataformas de host. f059b1
Versión 1.0.1
1 de mayo de 2024
Lanzamiento de androidx.graphics:graphics-path:1.0.1. La versión 1.0.1 contiene estas confirmaciones.
Correcciones de errores
- Se mejoraron las marcas del compilador.
Versión 1.0.0
6 de marzo de 2024
Lanzamiento de androidx.graphics:graphics-path:1.0.0.
Versión 1.0.0-rc01
21 de febrero de 2024
Lanzamiento de androidx.graphics:graphics-path:1.0.0-rc01. La versión 1.0.0-rc01 contiene estas confirmaciones.
Correcciones de errores
- Se mejoró el rendimiento de PathIterator en niveles de API anteriores a 34 (Id4629).
Versión 1.0.0-beta02
10 de enero de 2024
Los cambios en esta versión se centraron en reducir el tamaño de la biblioteca, que era más grande de lo necesario debido a las suposiciones que hacía el código nativo.
Lanzamiento de androidx.graphics:graphics-path:1.0.0-beta02. La versión 1.0.0-beta02 contiene estas confirmaciones.
Correcciones de errores
- Se redujo el tamaño de
libandroidx.graphics.path.soen un 96%. (I71397) - Reduce el tamaño de
libandroidx.graphics.path.soen un 5%. (I2da7c) - Se redujo el tamaño de los componentes nativos de
androidx.graphics:graphics-pathen un 43%. (I8e40d)
Versión 1.0.0-beta01
29 de noviembre de 2023
Lanzamiento de androidx.graphics:graphics-path:1.0.0-beta01. La Versión 1.0.0-beta01 contiene estas confirmaciones.
Cambios en la API
- Se quitaron los usos de la API experimental de
isAtLeastU()(Ie9117, b/289269026).
Correcciones de errores
- Se realizaron varias correcciones y mejoras de rendimiento, incluido el modo en que la biblioteca controla las secciones cónicas.
Versión 1.0.0-alpha02
7 de junio de 2023
Lanzamiento de androidx.graphics:graphics-path:1.0.0-alpha02. Esta versión se desarrolló en una rama interna.
Nuevas funciones
- Se solucionó un problema con la verificación interna de la versión de la plataforma que causaba problemas cuando se ejecutaba en versiones preliminares de Android 14 (la verificación de la versión fallaba, pero el mecanismo para hacer cosas en versiones anteriores no funciona correctamente en Android 14 en particular).
Versión 1.0.0-alpha01
22 de marzo de 2023
Lanzamiento de androidx.graphics:graphics-path:1.0.0-alpha01. La versión 1.0.0-alpha01 contiene estas confirmaciones.
Nuevas funciones
- Esta nueva biblioteca permite consultar datos de rutas a través de la nueva API de
PathIterator. Con esta API, los llamadores pueden iterar todos los segmentos de un objeto Path para determinar la operación y los datos de esos segmentos. - La biblioteca usa APIs similares a las que se introdujeron en la versión preliminar de Android 14, pero esta versión de AndroidX de la API también funciona en versiones anteriores hasta la API 21.
Graphics Core versión 1.0
Versión 1.0.3
26 de marzo de 2025
Lanzamiento de androidx.graphics:graphics-core:1.0.3. La versión 1.0.3 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió el parpadeo en pantalla completa que se producía al dibujar en ciertos dispositivos con API<33.
Versión 1.0.2
16 de octubre de 2024
Lanzamiento de androidx.graphics:graphics-core:1.0.2. La versión 1.0.2 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió el problema por el que el compositor del sistema seguía administrando las instancias de
SurfaceControlincluso después de que se liberaban. - Se corrigió un problema por el que no se liberaba la instancia de
HardwareBufferque se presentaba actualmente después de que se descartaban las dependencias de baja latencia. - Se corrigió un problema de parpadeo en ciertos dispositivos con Android 14 y versiones posteriores que no admitían la marca de uso del búfer frontal.
Versión 1.0.1
4 de septiembre de 2024
Lanzamiento de androidx.graphics:graphics-core:1.0.1. La versión 1.0.1 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió un problema por el que, en ocasiones, no se liberaban los recursos de memoria.
Versión 1.0.0
29 de mayo de 2024
Lanzamiento de androidx.graphics:graphics-core:1.0.0. La versión 1.0.0 contiene estas confirmaciones.
Funciones principales de la versión 1.0.0
- Es la versión estable oficial de la biblioteca de graphics-core. Se incluyen correcciones de errores menores y mejoras de rendimiento de la versión 1.0.0-rc01.
Versión 1.0.0-rc01
17 de abril de 2024
Lanzamiento de androidx.graphics:graphics-core:1.0.0-rc01. Esta versión se desarrolló en una rama interna.
Correcciones de errores
- Se solucionó un problema que podía provocar el cierre doble de descriptores de archivos con
CanvasBufferedRendererAPIen ciertos dispositivos Android que ejecutan Android 14. - Se corrigió un problema por el que
FrameBufferno borraba correctamente las instancias de búfer de fotogramas.
Versión 1.0.0-beta01
13 de diciembre de 2023
Lanzamiento de androidx.graphics:graphics-core:1.0.0-beta01. La Versión 1.0.0-beta01 contiene estas confirmaciones.
Nuevas funciones
- Se introdujo una nueva API de
LowLatencyCanvasViewpara admitir la renderización de baja latencia con las APIs de gráficos 2D de Android (Canvas + Paint) dentro de la jerarquía de View. - Se introdujo la API de
CanvasBufferedRendererpara admitir el procesamiento de Canvas acelerado por hardware en unHardwareBuffer. Se puede usar para dibujar una parte de una interfaz de usuario en un búfer que se puede convertir en un objeto Bitmap con la API deBitmap.wrapHardwareBuffer.
Cambios en la API
- Se actualizó la API de
CanvasBufferRenderer#releaseBufferpara que tenga un parámetro de valla opcional. Se actualizó la documentación para describir cuándo se devuelveRenderResult#fence. (If1ea7) - Se agregó el método
drawaRenderRequestpara admitir el uso de corrutinas para programar solicitudes de dibujo. Se cambió el nombre del método de dibujo anterior que consumía un ejecutor adrawAsync. Se refactorizó el métodoisClosed()en una propiedad. (I5bff6) - Se expuso el parámetro de formato del búfer a
CanvasFrontBufferRendererpara que se asigne directamente aCanvasBufferedRenderer.Builder#setBufferFormat(I0f272). - Se creó la API de
CanvasBufferedRendererpara controlar la renderización del lienzo acelerado por hardware en unHardwareBuffer. Esto proporciona una implementación con portabilidad a versiones anteriores para Android Q junto con la configuración de una profundidad de cadena de intercambio deHardwareBuffers. La configuración deColorSpacesigue limitada a Android U+, pero la implementación de compatibilidad proporciona un comportamiento no operativo en nombre de los desarrolladores. (I9b1d8) - Agrega APIs de
setFrameRate/clearFrameRateaSurfaceControlCompat.Transactionpara controlar la velocidad de fotogramas junto con la estrategia de cambio para transiciones continuas o predeterminadas. (I6045c) - Se redujo el nivel de API requerido para
setDataSpacede Android T a Android Q. (I59c34) - Se agregó la devolución de llamada
onBufferReleaseda la API deGLFrameBufferRendererpara brindar a los consumidores la oportunidad de limpiar el estado cuando ya no se presenta un búfer (I8a4e2). - Crea
LowLatencyCanvasViewpara admitir un caso de uso simple de renderización de contenido con baja latencia que se sincroniza con la renderización de la jerarquía de View. Esto mitiga las complejidades asociadas con la administración deSurfaceView, ya que administra internamente la instancia deSurfaceViewque se traduce dentro y fuera de la pantalla para la renderización sincronizada y de latencia baja, respectivamente. (I9253b) - Se agregó compatibilidad con la configuración del espacio de color a la API de
CanvasFrontBufferedRenderer. Se actualizaron las devoluciones de llamada con varios búferes para que también incluyan elSurfaceControlcon búfer de respaldo (I24bd9).
Versión 1.0.0-alpha05
6 de septiembre de 2023
Lanzamiento de androidx.graphics:graphics-core:1.0.0-alpha05. La versión 1.0.0-alpha05 contiene estas confirmaciones.
Nuevas funciones
- Se introdujo la API de
GLFrameBufferRenderer. Esto proporciona una combinación de dependencias de OpenGL, configuración de la cadena de intercambio, formatos de píxeles y configuración deSurfaceControl. (Ic775b)
Cambios en la API
- Se agregaron parámetros de ancho y alto a varias APIs de devolución de llamada para canalizar dimensiones desde
SurfaceHolder#Callbacks. (I7f9fc) - Se agregó una API de borrado para borrar las capas almacenadas en búfer frontal y múltiple. (Ic1f95)
- Se agregó compatibilidad para configurar el tipo de búfer subyacente de los intercambios utilizados en
GLFrontBufferedRenderer. (I07a13) - Se agregaron propiedades de Kotlin para los métodos get en
GLFrameBufferRenderer, la anotaciónIntRangepara las entradas máximas del búfer y las anotacionesHardwareBufferFormartyHardwareBufferUsageparasetFormat/setUsage, respectivamente. (Ief89e) - Se actualizó la API de
setBufferen las transacciones deSurfaceControlpara proporcionar una barrera de lanzamiento. (Ice1bb) - Se agregaron APIs de
SurfaceControlCompat.Transactionpara configurar el espacio de datos y establecer el rango de brillo extendido. (Ic378d)
Versión 1.0.0-alpha04
7 de junio de 2023
Lanzamiento de androidx.graphics:graphics-core:1.0.0-alpha04. La versión 1.0.0-alpha04 contiene estas confirmaciones.
Nuevas funciones
- Se introdujo
CanvasFrontBufferedRendererpara admitir gráficos de baja latencia que aprovechan la API deandroid.graphics.Canvasjunto con la implementación existente de OpenGL
Cambios en la API
- Se actualizó la API de
SurfaceControlCompat.Transaction#setBufferpara permitir instancias deHardwareBufferanulables y reflejar la API de la plataforma correspondiente (I173d7). - Se cambiaron los nombres de los métodos que hacen referencia a la renderización de doble búfer a renderización de búfer múltiple, ya que la cadena de intercambio de respaldo puede contener más de 2 búferes. (I830d7)
- Crea la API de
CanvasFrontBufferedRendererpara permitir que terceros aprovechen un sistema de renderización con búfer frontal que usa la API de Canvas. (Ibfc29)
Correcciones de errores
- Se corrigió el problema por el que
GLFrontBufferedRendererno renderizaba contenido después de reanudar la actividad correspondiente. - Se solucionó el problema por el cual el contenido almacenado en búfer frontal se borraba antes de tiempo.
- Se corrigió un problema por el que no se quitaba
SurfaceHolder.Callbacksdespués del lanzamiento de las APIs de gráficos de baja latencia.
Versión 1.0.0-alpha03
22 de marzo de 2023
Lanzamiento de androidx.graphics:graphics-core:1.0.0-alpha03. La versión 1.0.0-alpha03 contiene estas confirmaciones.
Cambios en la API
- Se actualizó la implementación de la devolución de llamada
GLFrontBufferedRendererpara proporcionar el objetoBufferInfoque contiene el ancho y la altura del búfer, junto con un identificador del búfer de fotogramas que se puede usar para volver a segmentar el destino original después de la renderización en un búfer de borrador intermedio. (I7fe20) - Se consolidó la creación de
SyncFenceen el método de fábrica estático enSyncFenceCompat. - Se quitó el método de compatibilidad público para
eglDupNativeFenceFDANDROIDy se reemplazó por el método de fábricaSyncFenceCompatpara la creación de SyncFence. Esto garantiza que todas las superficies de la API reciban la implementación correcta deSyncFence, independientemente del nivel de API. (I849bb) - Se agregó documentación para
FrameBufferRendererySyncStrategy.- Se movió
FrameBufferRenderer+FrameBuffer+FrameBufferPoolal paqueteandroidx.graphics.opengl - Se movió
SyncStrategyal paqueteandroidx.graphics.opengl - Se actualizaron los documentos de
RenderCallback#onDraw - Se actualizó la documentación de
RenderCallback#obtainFrameBuffer, que es el implementador de la API responsable de llamar aFrameBuffer.close - Se actualizó
onDrawCompletepara indicar que los consumidores son responsables de enviar el contenido que se mostrará. - Se movieron las interfaces y clases de compatibilidad de
SyncFenceal paqueteandroidx.hardwarepara reflejar el framework. - Se cambió el nombre de la API de
SyncFenceaSyncFenceV19y se hizo privada para consolidar los usos enSyncFenceCompat, que aprovecha la API deSyncFencedel framework siempre que sea posible. (I5149c)
- Se movió
- Se agregaron los métodos
GLFrontBufferedRenderer#cancelyGLFrontBufferedRenderer#execute. El primero es útil en situaciones de rechazo de la palma en las que se debe cancelar la renderización en el búfer frontal y ocultarlo. Este último es útil en situaciones en las que se manipulan objetos en el subproceso de GL sin tener que programar una renderización. (If0b7f) - Se agregó la API para renderizar directamente en la capa de búfer doble. Esto ayuda a volver a renderizar una escena después de la reanudación y brinda a los consumidores la oportunidad de determinar de forma selectiva cuándo aprovechar el renderizado con búfer frontal de forma dinámica según la escena que se desee renderizar. (Ied56c)
- Se agregó una nueva API a
SurfaceControlCompat.Builderpara admitir la configuración delSurfaceControlprincipal desde otra instancia deSurfaceControl, además del mecanismo existente desde unSurfaceView. (I1d1b6) - Se aumentó la nulabilidad de tipo de datos que se muestra de las funciones ocultas obsoletas (Ibf7b0).
- Se agregó la constante de extensión
EGL_ANDROID_get_native_client_bufferpara consultar si el dispositivo Android admite la importación de instancias deHardwareBufferen objetosEGLClientBufferque se pueden consumir como una instancia deEGLImage. (Iad767) - Se agregó la anotación
@JvmDefaultWithCompatibility(I8f206).
Versión 1.0.0-alpha02
9 de noviembre de 2022
Lanzamiento de androidx.graphics:graphics-core:1.0.0-alpha02. La versión 1.0.0-alpha02 contiene estas confirmaciones.
Cambios en la API
- Se corrigió la anotación
RequiresApifaltante paraaddTransactionCommitListener, que se introdujo en Android S. (I0a035) - Se actualizaron las devoluciones de llamada del búfer
onDraw<Front/Double>para proporcionar una matriz de transformación que los consumidores puedan pasar a sus sombreadores de Vertex, además del ancho y la altura del búfer actual. Los consumidores son responsables de usar estos parámetros para prerrotar el código de renderización de OpenGL correctamente. (I82f9e)
Correcciones de errores
- Se mejoró la latencia de los gráficos mediante la rotación previa de búferes antes de emitir transacciones
SurfaceControl. - Se solucionó el problema por el que los registros de errores mostraban el error 300d (EGL_BAD_SURFACE).
- Se corrigió el problema por el que
GLFrontBufferedRendererno era válido después de que se reanudaba la actividad correspondiente en la que se usaba. - Mayor compatibilidad con emuladores y dispositivos ChromeOS.
- Se solucionó el problema por el cual la capa almacenada en búfer frontal podía ocultarse antes de tiempo.
Versión 1.0.0-alpha01
24 de octubre de 2022
Lanzamiento de androidx.graphics:graphics-core:1.0.0-alpha01. La versión 1.0.0-alpha01 contiene estas confirmaciones.
Nuevas funciones
- Versión inicial de la biblioteca de gráficos principales de AndroidX. Esto incluye las APIs para admitir casos de uso de latencia baja, como la entrada de pluma stylus. También se presentan algunas APIs auxiliares para el uso de OpenGL.
Cambios en la API
- Se introdujo
GLFrontBufferedRendererpara ayudar en la renderización frontal y en búfer múltiple a fin de lograr resultados renderización de baja latencia y alta calidad. - Se introdujo la API de
GLRendererpara ayudar en la renderización de OpenGL para varios proveedores de plataformas, comoSurfaceViewyTextureView, entre otros.