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.2 | - | - | - |
graphics-path | 1.0.1 | - | - | - |
graphics-shapes | 1.0.1 | - | - | 1.1.0-alpha01 |
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.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") }
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.
Gráficos versión 1.1
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 modificó la demostración principal en un editor de formas genérico. Esto te permite importar formas desde una ruta de acceso svg, editar manualmente las características detectadas en caso de que se pierdan 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).
- Reemplaza las mediciones de ángulo para el progreso del contorno de la forma con mediciones de longitud de curva. Esto permite usar formas más complejas para la transformación. (I75478) , I390dd
- Se mejoró el algoritmo de asignación de componentes, por lo que más transformaciones deberían verse más naturales. (I83287)
Cambios en la API
- Se agregó la importación de rutas de SVG y el serializador de componentes. El flujo habitual es el siguiente:
- Usa el nuevo
SvgPathParser.parseFeatures()
para convertir una ruta de acceso svg (el valor del atributod
en el elementopath
de 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 y se puede importar con
FeatureSerializer.parse()
. - Ten en cuenta que los pasos 1 y 2 se realizan una vez y se pueden realizar 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
- Expone componentes y tipos de componentes de polígono. Ahora se pueden crear
RoundedPolygons
más genéricos con el constructor base que toma unList<Features>
. Los componentes son principalmente una lista de curvas de Bézier cúbicas, pero están etiquetados para ayudar al algoritmo de transformación a hacer coincidir las formas de inicio y finalización (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 objetivo de KMP
watchosDeviceArm64
y el objetivo de Kotlin 1.9. (Icf15d, b/364652024).
Correcciones de errores
- Se corrigió el caso extremo cuando el último componente estaba vacío. (I390dd)
- Hacer que la creación de
RoundedPolygon
sea más sólida (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.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 giren previamente para comenzar en un punto diferente. Este cambio permite que las formas
pillStar
comiencen sus curvas desde un punto que no sea predeterminado en el 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 APIs nuevas para calcular los límites exactos necesarios para una forma (los límites anteriores eran solo una estimación basada en el ancla y los puntos de control 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 lo contiene si se rota dentro de ese contenedor. (I71827)
Cambios en la API
- Ahora hay más opciones para recuperar límites exactos y máximos. (I6d49f, b/317286450).
Correcciones de errores
- Ocasionalmente, se producían artefactos de renderización 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. Para corregir este error, se eliminaron 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, además de correcciones de errores.
- Muchos de los cambios en la API hacen que la biblioteca de Shapes sea compatible con KMP. Esto facilita las llamadas desde código que no es de Android (como el 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 de Float separados evita asignar muchas estructuras PointF temporales para contener esos vértices.
Cambios en la API
- Se reemplazó
Morph.asMutableCubics
por una función para iterar sobreMutableCubics
. Se cambió la interfaz funcional dePointTransformer
, ahora toma las coordenadas x e y de unPoint
y muestra unTransformedResult
(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 ancla y control ahora son más sensibles (If13bd, b/294562941).
- Los parámetros
PointF
cambiaron a paresFloat
(Id4705, b/276466399, b/290254314). progress
ahora se pasa directamente a los comandos de dibujoMorph
(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ó una nueva función
RoundedPolygon.rectangle()
(I78e7e, b/280322189). - Las funciones de Star y Circle ahora se descapitalizan y se llaman a través del objeto complementario de
RoundedPolygon
: p.ej.,RoundedPolygon.star(...)
(I14735)
Correcciones de errores
- Se corrigió un error en la suavización (Ibf894).
- Se corrigió un error que se producía cuando las formas de inicio y finalización eran las mismas. Distribuye mejor el espacio disponible en los lados para los cortes, primero usa el espacio disponible para redondear y, luego, para suavizar 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 fusionó con su subclase,
RoundedPolygon
. Todos los polígonos ahora son polígonos redondeados [de forma opcional]. - La función Star (que aún muestra un
RoundedPolygon
, como antes) ahora toma un valorinnerRadius
, en lugar del parámetroinnerRadiusRatio
anterior. Se mide en las mismas unidades que el parámetro de radio existente, lo que simplifica y da coherencia a la información. Además, se cambió el nombre del parámetronumOuterVertices
anumVerticesPerRadius
para aclarar que el mismo número se aplica a los radios interiores y exteriores. - Anteriormente, se documentó que
CornerRounding.radius
era relativo al tamaño del polígono, pero era (y debe ser) un valor absoluto, no relativo. Se actualizaron los documentos y se corrigió la anotación que la 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 una transformación (animación) simple y automática 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 en forma de estrella con la cantidad deseada de vértices.
- 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 y dibuja el resultado en cada fotograma para crear una animación fluida entre estas nuevas formas redondeadas.
Graphics Path 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 realizaron mejoras en 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 al 34 (Id4629).
Versión 1.0.0-beta02
10 de enero de 2024
Los cambios de 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.so
en un 96%. (I71397). - Reduce el tamaño de
libandroidx.graphics.path.so
en un 5%. (I2da7c). - Se redujeron 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
- Se quitaron los usos de la API experimental de
isAtLeastU()
(Ie9117, b/289269026).
Correcciones de errores
- Se realizaron varias correcciones y mejoras de rendimiento, incluida la forma en que la biblioteca controla las 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ó el problema con la verificación de versión interna de la plataforma que causaba problemas cuando se ejecutaba en versiones preliminares de Android 14 (la verificación de versión fallaba, pero el mecanismo para realizar acciones 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 ruta a través de la nueva API de
PathIterator
. Con esta API, los llamadores pueden iterar por 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 al nivel de API 21.
Graphics Core versión 1.0
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ó un problema por el que el compositor del sistema seguía administrando instancias de
SurfaceControl
incluso después de que se liberaban. - Se corrigió un problema por el que no se liberaba la instancia de
HardwareBuffer
presentada actualmente después de que se descartaban las dependencias de baja latencia. - Se corrigió el 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
- Versión estable oficial de la biblioteca de gráficos principales. Incluye 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 corrigió un problema que generaba un posible cierre doble de descriptores de archivos con
CanvasBufferedRendererAPI
en ciertos dispositivos Android que ejecutaban Android 14. - Se solucionó 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 presentó una nueva API de
LowLatencyCanvasView
para admitir la renderización de baja latencia con las APIs de gráficos en 2D de Android (Canvas + Paint) dentro de la jerarquía de View. - Se introdujo la API de
CanvasBufferedRenderer
para admitir la renderización de Canvas acelerada 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 mapa de bits con la API deBitmap.wrapHardwareBuffer
.
Cambios en la API
- Se actualizó la API de
CanvasBufferRenderer#releaseBuffer
para que tenga un parámetro de cerca opcional. Se actualizó la documentación para describir cuándo se muestraRenderResult#fence
. (If1ea7). - Se agregó el método
draw
aRenderRequest
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 adrawAsync
. Se refactorizó el métodoisClosed()
a una propiedad. (I5bff6). - Se expuso el parámetro de formato de búfer a
CanvasFrontBufferRenderer
para asignarlo directamente aCanvasBufferedRenderer.Builder#setBufferFormat
(I0f272). - Se creó la API de
CanvasBufferedRenderer
para controlar la renderización de lienzos con aceleración de hardware en unHardwareBuffer
. Esto proporciona una implementación con portabilidad a versiones anteriores a Android Q junto con la configuración de una profundidad de cadena de intercambio deHardwareBuffers
. La configuración deColorSpace
aún se limita a Android U y versiones posteriores, pero la implementación de compatibilidad proporciona un comportamiento sin operaciones en nombre de los desarrolladores. (I9b1d8). - Agrega APIs de
setFrameRate
/clearFrameRate
aSurfaceControlCompat.Transaction
para controlar la velocidad de fotogramas junto con la estrategia de cambio para transiciones fluidas o predeterminadas. (I6045c) - Se redujo el nivel de API requerido para
setDataSpace
de Android T a Android Q. (I59c34). - Se agregó una devolución de llamada
onBufferReleased
a la API deGLFrameBufferRenderer
para darles 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 jerarquía de View. Esto mitiga las complejidades asociadas con la administración deSurfaceView
, ya que administra internamente la instancia deSurfaceView
que se traduce fuera o dentro de la pantalla para la renderización sincronizada y de baja latencia, respectivamente. (I9253b) - Se agregó compatibilidad con la configuración de espacio de color a la API de
CanvasFrontBufferedRenderer
. Se actualizaron las devoluciones de llamada de búfer múltiple para que también incluyan elSurfaceControl
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 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 clara para borrar las capas de búfer frontal y múltiple. (Ic1f95).
- Se agregó compatibilidad para configurar el tipo de búfer subyacente de las cadenas de intercambio que se usan en
GLFrontBufferedRenderer
. (I07a13). - Se agregaron propiedades de Kotlin para métodos get en
GLFrameBufferRenderer
, la anotaciónIntRange
para entradas de búfer máximas y las anotacionesHardwareBufferFormart
yHardwareBufferUsage
parasetFormat
/setUsage
, respectivamente. (Ief89e). - Se actualizó la API de
setBuffer
en las transacciones deSurfaceControl
para proporcionar un límite 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 deandroid.graphics.Canvas
junto con la implementación existente de OpenGL.
Cambios en la API
- Se actualizó la API de
SurfaceControlCompat.Transaction#setBuffer
para permitir que las instancias deHardwareBuffer
nulas reflejen la API de la plataforma correspondiente (I173d7). - Se cambió el nombre de los métodos que se referían a la renderización de doble búfer a renderización de varios búferes, ya que el grupo de intercambio de respaldo puede contener más de 2 búferes. (I830d7).
- Crea la API de
CanvasFrontBufferedRenderer
para permitir que los proveedores de terceros aprovechen un sistema de renderización con búfer frontal con 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 que se borraba el contenido almacenado en búfer frontal antes de tiempo.
- Se corrigió un problema por el que no se quitaba
SurfaceHolder.Callbacks
después de que se lanzaban 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 devolución de llamada de
GLFrontBufferedRenderer
para proporcionar un objetoBufferInfo
que contiene el ancho y la altura del búfer junto con un identificador de búfer de trama que se puede usar para volver a segmentar el destino original después de renderizarlo en un búfer de borrado intermedio. (I7fe20). - Se consolidó la creación de
SyncFence
en el método de fábrica estático enSyncFenceCompat
. - Se quitó el método de compatibilidad pública para
eglDupNativeFenceFDANDROID
en favor del método de fábricaSyncFenceCompat
para la creación de SyncFence. Esto se hace para garantizar que todas las plataformas de API reciban la implementación correcta deSyncFence
, independientemente del nivel de API. (I849bb) - Se agregó documentación para
FrameBufferRenderer
ySyncStrategy
.- Se movió
FrameBufferRenderer
+FrameBuffer
+FrameBufferPool
al paqueteandroidx.graphics.opengl
- Se movió
SyncStrategy
al paqueteandroidx.graphics.opengl
- Se actualizaron
RenderCallback#onDraw
documentos - Se actualizó la documentación de
RenderCallback#obtainFrameBuffer
que el implementador de la API es responsable de llamar aFrameBuffer.close
- Se actualizó
onDrawComplete
para indicar que los consumidores son responsables de enviar el contenido para mostrarlo - Se movieron las interfaces o clases de compatibilidad de
SyncFence
al paqueteandroidx.hardware
para duplicar el framework. - Se cambió el nombre de la API de
SyncFence
aSyncFenceV19
y se hizo privada para consolidar los usos enSyncFenceCompat
, que aprovecha la API deSyncFence
del framework siempre que sea posible. (I5149c).
- Se movió
- Se agregaron los métodos
GLFrontBufferedRenderer#cancel
yGLFrontBufferedRenderer#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. Esto último es útil en situaciones para manipular objetos en el subproceso 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 reanudarla y les brinda a los consumidores la oportunidad de determinar de forma selectiva cuándo aprovechar la renderización 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 delSurfaceControl
superior 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_buffer
para consultar si el dispositivo Android admite la importación de instancias deHardwareBuffer
en objetosEGLClientBuffer
que 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
RequiresApi
faltante 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
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, comoSurfaceView
yTextureView
, entre otros.