graphics

  
Aprovecha las instalaciones de gráficos en diferentes versiones de la plataforma de Android.

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 - - -
graphics-shapes 1.0.1 - 1.1.0-beta01 -
Esta biblioteca se actualizó por última vez el 30 de julio de 2025

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.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")
}

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.

Crear un error nuevo

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-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 de 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 atributo d en el elemento path de un SVG) en un List<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)
  • Exponer los tipos de componentes y los componentes de polígono Ahora se pueden crear RoundedPolygons más genéricos con el constructor base que toma un List<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 watchosDeviceArm64 de 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 pillStar comiencen sus curvas desde un punto no predeterminado del perímetro. Esto puede ser útil cuando se anima el trazado 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 en RoundedPolygon. (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() y pillStar() 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 control y anclaje de la curva de Bézier subyacente), así como los límites máximos posibles, que pueden ser útiles 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 que producen 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.asMutableCubics por una función para iterar sobre MutableCubics. Se cambió la interfaz funcional PointTransformer. Ahora toma las coordenadas X e Y de un Point y devuelve un TransformedResult (que se construye con las coordenadas X e Y transformadas) (I6719e).
  • Se quitó el constructor público Cubic y se convirtió en una función de fábrica. (I409ce)
  • Se agregaron APIs de transformación y dibujo específicas de 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 PointF a pares de Float (Id4705, b/276466399, b/290254314).
  • Ahora, progress se pasa directamente a los comandos de dibujo de Morph (Icdca2).

Correcciones de errores

  • Se corrigió el error que se producía cuando se creaban 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 minúsculas 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 valor innerRadius, en lugar del parámetro innerRadiusRatio anterior. 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ámetro numOuterVertices a numVerticesPerRadius para aclarar que se aplica el mismo número a los radios interior y exterior.
  • Anteriormente, se documentó que CornerRounding.radius era 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 CornerRounding opcionales 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.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 los indicadores 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 enfocaron 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.so en un 96%. (I71397)
  • Reduce el tamaño de libandroidx.graphics.path.so en un 5%. (I2da7c)
  • Se redujo el tamaño de los componentes nativos de androidx.graphics:graphics-path en 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

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 presentaron 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 SurfaceControl incluso después de que se liberaban.
  • Se corrigió un problema por el que no se liberaba la instancia de HardwareBuffer que 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 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 CanvasBufferedRendererAPI en ciertos dispositivos Android que ejecutan Android 14.
  • Se corrigió un problema por el que FrameBuffer no 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 LowLatencyCanvasView para 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 CanvasBufferedRenderer para admitir el procesamiento de Canvas acelerado por hardware en un HardwareBuffer. 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 de Bitmap.wrapHardwareBuffer.

Cambios en la API

  • Se actualizó la API de CanvasBufferRenderer#releaseBuffer para que tenga un parámetro de valla opcional. Se actualizó la documentación para describir cuándo se devuelve RenderResult#fence. (If1ea7)
  • Se agregó el método draw a RenderRequest para 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 a drawAsync. Se refactorizó el método isClosed() en una propiedad. (I5bff6)
  • Se expuso el parámetro de formato del búfer a CanvasFrontBufferRenderer para que se asigne directamente a CanvasBufferedRenderer.Builder#setBufferFormat (I0f272).
  • Se creó la API de CanvasBufferedRenderer para controlar la renderización del lienzo acelerado por hardware en un HardwareBuffer. 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 de HardwareBuffers. La configuración de ColorSpace sigue limitada a Android U+, pero la implementación de compatibilidad proporciona un comportamiento no operativo en nombre de los desarrolladores. (I9b1d8)
  • Agrega las APIs de setFrameRate/clearFrameRate a SurfaceControlCompat.Transaction para 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 setDataSpace de Android T a Android Q. (I59c34)
  • Se agregó la devolución de llamada onBufferReleased a la API de GLFrameBufferRenderer para brindar a los consumidores la oportunidad de limpiar el estado cuando ya no se presenta un búfer (I8a4e2).
  • Crea LowLatencyCanvasView para 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 de SurfaceView, ya que administra internamente la instancia de SurfaceView que 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 el SurfaceControl con 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 de SurfaceControl. (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 clara 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ón IntRange para las entradas máximas del búfer y las anotaciones HardwareBufferFormart y HardwareBufferUsage para setFormat/setUsage, respectivamente. (Ief89e)
  • Se actualizó la API de setBuffer en las transacciones de SurfaceControl para proporcionar una barrera de lanzamiento. (Ice1bb)
  • Se agregaron APIs de SurfaceControlCompat.Transaction para 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 CanvasFrontBufferedRenderer para admitir gráficos de baja latencia que aprovechan la API de android.graphics.Canvas junto con la implementación existente de OpenGL

Cambios en la API

  • Se actualizó la API de SurfaceControlCompat.Transaction#setBuffer para permitir instancias de HardwareBuffer anulables 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 CanvasFrontBufferedRenderer para permitir que terceros aprovechen un sistema de renderización con búfer frontal a través de la API de Canvas. (Ibfc29)

Correcciones de errores

  • Se corrigió el problema por el que GLFrontBufferedRenderer no 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.Callbacks despué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 GLFrontBufferedRenderer para proporcionar el objeto BufferInfo que 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 renderizar en un búfer de borrador intermedio. (I7fe20)
  • Se consolidó la creación de SyncFence en el método de fábrica estático en SyncFenceCompat.
  • Se quitó el método de compatibilidad público para eglDupNativeFenceFDANDROID y se reemplazó por el método de fábrica SyncFenceCompat para la creación de SyncFence. Esto garantiza que todas las superficies de la API reciban la implementación correcta de SyncFence, independientemente del nivel de API. (I849bb)
  • Se agregó documentación para FrameBufferRenderer y SyncStrategy.
    • Se movió FrameBufferRenderer + FrameBuffer + FrameBufferPool al paquete androidx.graphics.opengl
    • Se movió SyncStrategy al paquete androidx.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 a FrameBuffer.close.
    • Se actualizó onDrawComplete para indicar que los consumidores son responsables de enviar el contenido que se mostrará.
    • Se movieron las interfaces y clases de compatibilidad de SyncFence al paquete androidx.hardware para reflejar el framework.
    • Se cambió el nombre de la API de SyncFence a SyncFenceV19 y se hizo privada para consolidar los usos en SyncFenceCompat, que aprovecha la API de SyncFence del framework siempre que sea posible. (I5149c)
  • Se agregaron los métodos GLFrontBufferedRenderer#cancel y GLFrontBufferedRenderer#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 desea renderizar. (Ied56c)
  • Se agregó una nueva API a SurfaceControlCompat.Builder para admitir la configuración del SurfaceControl principal desde otra instancia de SurfaceControl, además del mecanismo existente desde un SurfaceView. (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_buffer para consultar si el dispositivo Android admite la importación de instancias de HardwareBuffer en objetos EGLClientBuffer que se pueden consumir como una instancia de EGLImage. (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 RequiresApi faltante para addTransactionCommitListener, 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 GLFrontBufferedRenderer no 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 GLFrontBufferedRenderer para 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 GLRenderer para ayudar en la renderización de OpenGL para varios proveedores de plataformas, como SurfaceView y TextureView, entre otros.