графика
В этой таблице перечислены все артефакты в группе androidx.graphics .
| Артефакт | Стабильный релиз | Кандидат на релиз | Бета-версия | Альфа-релиз |
|---|---|---|---|---|
| графическое ядро | 1.0.3 | - | - | - |
| графический путь | 1.0.1 | - | - | 1.1.0-альфа01 |
| графические формы | 1.1.0 | - | - | - |
Объявление зависимостей
Чтобы добавить зависимость от Graphics, необходимо добавить репозиторий Google Maven в свой проект. Подробнее см. в репозитории Google Maven .
Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:
Круто
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" }
Котлин
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") }
Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .
Обратная связь
Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с уже существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав на кнопку со звёздочкой.
Более подробную информацию см. в документации по системе отслеживания проблем .
Заметок о выпуске для этого артефакта нет.
Графика версии 1.1
Версия 1.1.0
22 октября 2025 г.
Выпущена версия androidx.graphics:graphics-*:1.1.0 . Версия 1.1.0 содержит следующие коммиты .
Версия 1.1.0-rc01
10 сентября 2025 г.
Выпущена версия androidx.graphics:graphics-*:1.1.0-rc01 . Версия 1.1.0-rc01 содержит следующие коммиты .
Версия 1.1.0-beta01
30 июля 2025 г.
Выпущена версия androidx.graphics:graphics-*:1.1.0-beta01 . Версия 1.1.0-beta01 содержит следующие изменения .
Изменения API
- Для проектов, выпущенных с использованием Kotlin 2.0, требуется использование KGP 2.0.0 или более поздней версии ( Idb6b5 ).
- Добавить цели компиляции
mingwX64, js и wasm. ( I2c46a )
Версия 1.1.0-альфа01
11 декабря 2024 г.
Выпущена версия androidx.graphics:graphics-*:1.1.0-alpha01 . Версия 1.1.0-alpha01 содержит следующие коммиты .
Новые функции
- Основная демонстрационная версия переработана в универсальный редактор фигур. Это позволяет импортировать фигуры из SVG-контура, вручную редактировать обнаруженные объекты в случае ошибок в автоматическом процессе и экспортировать результат в код, который можно использовать в производственном коде. ( I1ac13 )
- Заменить измерения углов для определения прогресса контура фигуры на измерения длины кривой, это позволяет использовать более сложные фигуры для морфинга. ( I75478 ), I390dd
- Улучшен алгоритм сопоставления объектов, поэтому больше морфов должны выглядеть более естественно. ( I83287 )
Изменения API
- Добавьте импорт пути SVG и сериализатор функций. Обычный процесс выглядит следующим образом:
- Используйте новый метод
SvgPathParser.parseFeatures()для преобразования пути SVG (значения атрибутаdэлементаpathSVG) вList<Feature>. - Его можно изменить, а затем сериализовать в строку с помощью
FeatureSerializer.serialize(). - Полученную строку можно использовать в производственном коде, импортировав ее с помощью
FeatureSerializer.parse() - Обратите внимание, что шаги 1 и 2 выполняются один раз и могут быть выполнены в новом приложении. В производственном коде достаточно выполнить только шаг 3. ( I9bd00 , b/371196190 ), ( Ic3842 ), ( If68ed ), ( I10251 )
- Используйте новый метод
- Откройте полигональные объекты и типы объектов. Более общие
RoundedPolygonsтеперь можно создавать с помощью базового конструктора, принимающегоList<Features>. Объекты в основном представляют собой список кубических кривых Безье, но они помечены тегами, чтобы помочь алгоритму Morph сопоставлять начальные и конечные формы (выпуклые углы отображаются как выпуклые, а вогнутые — как вогнутые). ( I61e76 ), ( I1fc5c ) - Добавляет поддержку
watchosDeviceArm64KMP target и kotlin 1.9. ( Icf15d , b/364652024 )
Исправления ошибок
- Исправлен краевой случай, когда последний объект был пустым. ( I390dd )
- Сделать создание
RoundedPolygonболее надежным. ( Ib862c , b/360888486 ) - Исправлена ошибка при инициализации
RoundedPolygon. ( I83ddb ) - Исправлена ошибка в алгоритме оценки центра многоугольника. ( Ida147 )
Графические фигуры версии 1.0
Версия 1.0.1
4 сентября 2024 г.
Выпущены androidx.graphics:graphics-shapes:1.0.1 , androidx.graphics:graphics-shapes-android:1.0.1 и androidx.graphics:graphics-shapes-desktop:1.0.1 . Версия 1.0.1 содержит эти коммиты .
Версия 1.0.0
21 августа 2024 г.
Выпущены androidx.graphics:graphics-shapes:1.0.0 , androidx.graphics:graphics-shapes-android:1.0.0 и androidx.graphics:graphics-shapes-desktop:1.0.0 . Версия 1.0.0 содержит следующие коммиты .
Версия 1.0.0-rc01
24 июля 2024 г.
Выпущены androidx.graphics:graphics-shapes:1.0.0-rc01 , androidx.graphics:graphics-shapes-android:1.0.0-rc01 и androidx.graphics:graphics-shapes-desktop:1.0.0-rc01 . Версия 1.0.0-rc01 содержит эти коммиты .
Версия 1.0.0-beta01
1 мая 2024 г.
Выпущены androidx.graphics:graphics-shapes:1.0.0-beta01 , androidx.graphics:graphics-shapes-android:1.0.0-beta01 и androidx.graphics:graphics-shapes-desktop:1.0.0-beta01 . Версия 1.0.0-beta01 содержит эти коммиты .
Изменения API
- Разрешить предварительный поворот фигур для начала в другой точке. Это изменение позволяет фигурам
pillStarначинать свои изгибы с точки на периметре, отличной от точки по умолчанию. Это может быть полезно при анимации обводки контура фигуры, чтобы начать рисование с определённой точки на её контуре. ( Ifbb4d , b/324303807 ) - Добавлены функции
calculateBounds()в Morph, которые аналогичны тем же функциям вRoundedPolygon. ( I8a3b6 , b/325463575 )
Версия 1.0.0-альфа05
7 февраля 2024 г.
Выпущены androidx.graphics:graphics-shapes:1.0.0-alpha05 , androidx.graphics:graphics-shapes-android:1.0.0-alpha05 и androidx.graphics:graphics-shapes-desktop:1.0.0-alpha05 . Версия 1.0.0-alpha05 содержит эти коммиты.
Новые функции
- Библиотека теперь предлагает новые функции
pill()иpillStar()для лёгкого создания фигур со скруглёнными краями и звёздочками. Также появились новые API для расчёта точных границ, необходимых для фигуры (ранее границы были лишь приблизительными, основанными на опорных и контрольных точках кривой Безье), а также максимально возможных границ, что может быть полезно для определения размера контейнера, содержащего фигуру, если она будет вращаться внутри этого контейнера. ( I71827 )
Изменения API
- Теперь больше возможностей для получения точных и максимальных границ. ( I6d49f , b/317286450 )
Исправления ошибок
- При отрисовке этих фигур в виде обводки контуров время от времени возникали артефакты рендеринга из-за низкоуровневой проблемы рендеринга, связанной с кривыми нулевой длины. Эта ошибка была исправлена путём удаления всех кривых нулевой длины (которые фигурам не нужны, что также позволило сократить накладные расходы на контуры, создаваемые фигурами).
Версия 1.0.0-альфа04
13 декабря 2023 г.
Выпущены androidx.graphics:graphics-shapes:1.0.0-alpha04 , androidx.graphics:graphics-shapes-android:1.0.0-alpha04 и androidx.graphics:graphics-shapes-desktop:1.0.0-alpha04 . Версия 1.0.0-alpha04 содержит эти коммиты.
Новые функции
- Этот выпуск содержит несколько изменений API, а также исправления ошибок.
- Многие изменения API делают библиотеку Shapes совместимой с KMP. Это упрощает вызов из кода, отличного от Android (например, из кода Compose, не зависящего от Android). Например, в API отсутствуют типы Android, такие как прежние типы PointF, Matrix и Path.
- Также был внесён ряд изменений в API и реализацию для повышения производительности, в частности, для минимизации выделения (и сбора) объектов. Например, переход от PointF к отдельным параметрам Float позволяет избежать выделения множества временных структур PointF для хранения этих вершин.
Изменения API
-
Morph.asMutableCubicsзаменен на функцию для итерации поMutableCubics. Изменён функциональный интерфейсPointTransformer: теперь он принимает координаты x и yPointи возвращаетTransformedResult(который формируется на основе преобразованных координат x и y) ( I6719e ). - Удалил публичный конструктор
Cubicи сделал его фабричной функцией. ( I409ce ) - Добавление API преобразования и рисования, специфичных для Android ( I079f6 , b/292289543 )
- Устранить зависимости Android ( Iadc1c , b/292289543 )
- Имена свойств якорей и элементов управления теперь более разумны ( If13bd , b/294562941 )
- Параметры
PointFизменены на парыFloat( Id4705 , b/276466399 , b/290254314 ) -
progressтеперь передается напрямую в команды рисованияMorph( Icdca2 )
Исправления ошибок
- Исправлена ошибка при создании больших фигур. ( I4fd66 , b/313497325 )
Версия 1.0.0-альфа03
7 июня 2023 г.
Выпущена версия androidx.graphics:graphics-shapes:1.0.0-alpha03 . Версия 1.0.0-alpha03 содержит следующие изменения.
Изменения API
- Добавлена новая функция
RoundedPolygon.rectangle()( I78e7e , b/280322189 ) - Функции Star и Circle теперь пишутся с заглавной буквы и вызываются через сопутствующий объект
RoundedPolygon: например,RoundedPolygon.star(...)( I14735 )
Исправления ошибок
- Исправлена ошибка сглаживания ( Ibf894 )
- Исправлена ошибка, возникавшая при совпадении начальной и конечной формы. Более эффективное распределение свободного пространства по сторонам для разрезов: сначала используется доступное пространство для скругления, а затем, если остаётся, — для сглаживания. ( Ibd320 , b/277936300 )
Версия 1.0.0-альфа02
19 апреля 2023 г.
Выпущена версия androidx.graphics:graphics-shapes:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит следующие коммиты.
Изменения API
- Суперкласс Polygon был объединен со своим подклассом
RoundedPolygon; все многоугольники теперь [опционально] скругленные. - Функция Star (которая, как и раньше, возвращает
RoundedPolygon) теперь принимает значениеinnerRadiusвместо прежнего параметраinnerRadiusRatio. Оно измеряется в тех же единицах, что и существующий параметр radius, что упрощает и делает работу более единообразной. Кроме того, параметрnumOuterVerticesбыл переименован вnumVerticesPerRadius, чтобы было понятно, что для внутреннего и внешнего радиусов применяется одно и то же число. - Ранее в документации указывалось, что
CornerRounding.radiusзадаётся относительно размера многоугольника, но это было (и должно быть) абсолютное, а не относительное значение. Документация была обновлена, и аннотация, ограничивающая радиус максимальным значением 1,0, была исправлена.
Версия 1.0.0-альфа01
5 апреля 2023 г.
Graphics-Shapes — это новая библиотека, которая позволяет легко создавать и визуализировать округлые многоугольные фигуры, а также осуществлять простой и автоматический морфинг (анимацию) между различными фигурами.
Выпущена версия androidx.graphics:graphics-shapes:1.0.0-alpha01 . Эта версия выпущена из внутренней ветки.
Новые функции
- Используйте Polygon API для создания правильных и звездчатых многоугольников с желаемым количеством вершин.
- Используйте необязательные параметры
CornerRounding, чтобы указать радиус скругления и параметры сглаживания углов, что приведет к получению многоугольных фигур со скругленными углами. - Используйте новый API
Morph(Polygon, Polygon)для автоматического расчета «морфинговой» фигуры, ход которой можно задать в диапазоне от 0 до 1 для анимации между начальной и конечной фигурами. Анимируйте этот ход с течением времени, отображая результат в каждом кадре, чтобы создать плавную анимацию между этими новыми округлыми фигурами.
Графический путь версии 1.0
Версия 1.1.0-альфа01
13 августа 2025 г.
Выпущен androidx.graphics:graphics-path:1.1.0-alpha01 . Версия 1.1.0-alpha01 содержит следующие коммиты .
Исправления ошибок
- Добавить реализацию для преобразования из конического в квадратное и использовать его на хост-платформах. f059b1
Версия 1.0.1
1 мая 2024 г.
Выпущен androidx.graphics:graphics-path:1.0.1 . Версия 1.0.1 содержит следующие коммиты .
Исправления ошибок
- Улучшения флагов компилятора.
Версия 1.0.0
6 марта 2024 г.
Выпущен androidx.graphics:graphics-path:1.0.0 .
Версия 1.0.0-rc01
21 февраля 2024 г.
Выпущен androidx.graphics:graphics-path:1.0.0-rc01 . Версия 1.0.0-rc01 содержит следующие коммиты.
Исправления ошибок
- Улучшение производительности PathIterator для API < 34 ( Id4629 )
Версия 1.0.0-beta02
10 января 2024 г.
Изменения в этом выпуске были направлены на уменьшение размера библиотеки, которая оказалась больше необходимого из-за допущений, сделанных в машинном коде.
Выпущен androidx.graphics:graphics-path:1.0.0-beta02 . Версия 1.0.0-beta02 содержит следующие коммиты.
Исправления ошибок
- Уменьшен размер
libandroidx.graphics.path.soна 96%. ( I71397 ) - Уменьшите размер
libandroidx.graphics.path.soна 5%. ( I2da7c ) - Уменьшены нативные компоненты
androidx.graphics:graphics-pathна 43%. ( I8e40d )
Версия 1.0.0-beta01
29 ноября 2023 г.
Выпущен androidx.graphics:graphics-path:1.0.0-beta01 . Версия 1.0.0-beta01 содержит следующие коммиты.
Изменения API
- Удалены случаи использования экспериментального API
isAtLeastU()( Ie9117 , b/289269026 )
Исправления ошибок
- Различные исправления и улучшения производительности, включая обработку библиотекой конических сечений.
Версия 1.0.0-альфа02
7 июня 2023 г.
Выпущена версия androidx.graphics:graphics-path:1.0.0-alpha02 . Эта версия разрабатывается во внутренней ветке.
Новые функции
- Исправлена проблема с проверкой версии внутренней платформы, которая вызывала проблемы при запуске на предварительных версиях Android 14 (проверка версии завершалась ошибкой, но механизм выполнения действий в предыдущих выпусках работает неправильно, в частности, на Android 14).
Версия 1.0.0-альфа01
22 марта 2023 г.
Выпущен androidx.graphics:graphics-path:1.0.0-alpha01 . Версия 1.0.0-alpha01 содержит следующие коммиты.
Новые функции
- Эта новая библиотека позволяет запрашивать данные Path через новый API
PathIterator. Используя этот API, вызывающие объекты могут перебирать все сегменты объекта Path, чтобы определить операцию и данные для этих сегментов. - Библиотека использует похожие API, представленные в предварительной версии Android 14, но эта версия API AndroidX работает также и в версиях до API 21.
Графическое ядро версии 1.0
Версия 1.0.3
26 марта 2025 г.
Выпущена версия androidx.graphics:graphics-core:1.0.3 . Версия 1.0.3 содержит следующие коммиты .
Исправления ошибок
- Исправление мерцания на весь экран при рисовании на некоторых устройствах с API<33.
Версия 1.0.2
16 октября 2024 г.
Выпущена версия androidx.graphics:graphics-core:1.0.2 . Версия 1.0.2 содержит следующие коммиты .
Исправления ошибок
- Исправлена ошибка, из-за которой экземпляры
SurfaceControlпродолжали управляться системным компоновщиком даже после их выпуска. - Исправлена ошибка, из-за которой текущий экземпляр
HardwareBufferне освобождался после удаления зависимостей с низкой задержкой. - Исправлена проблема мерцания на некоторых устройствах Android 14+, которые не поддерживали флаг использования переднего буфера.
Версия 1.0.1
4 сентября 2024 г.
Выпущен androidx.graphics:graphics-core:1.0.1 . Версия 1.0.1 содержит следующие коммиты .
Исправления ошибок
- Исправлена ошибка, из-за которой ресурсы памяти иногда не освобождались.
Версия 1.0.0
29 мая 2024 г.
Выпущена версия androidx.graphics:graphics-core:1.0.0 . Версия 1.0.0 содержит следующие изменения .
Основные особенности версии 1.0.0
- Официальная стабильная версия библиотеки графического ядра. Включает исправления мелких ошибок и улучшения производительности по сравнению с версией 1.0.0-rc01.
Версия 1.0.0-rc01
17 апреля 2024 г.
Выпущена версия androidx.graphics:graphics-core:1.0.0-rc01 . Эта версия разрабатывается во внутренней ветке.
Исправления ошибок
- Исправлена проблема, приводившая к потенциальному двойному закрытию файловых дескрипторов с помощью
CanvasBufferedRendererAPIна некоторых устройствах Android под управлением Android 14. - Исправлена ошибка, из-за которой
FrameBufferнекорректно удалял экземпляры буфера кадра.
Версия 1.0.0-beta01
13 декабря 2023 г.
Выпущена версия androidx.graphics:graphics-core:1.0.0-beta01 . Версия 1.0.0-beta01 содержит следующие изменения.
Новые функции
- Представлен новый API
LowLatencyCanvasViewдля поддержки рендеринга с низкой задержкой с помощью API 2D-графики Android (Canvas + Paint) в иерархии View. - Представлен API
CanvasBufferedRendererдля поддержки аппаратного ускорения рендеринга Canvas вHardwareBuffer. Это позволяет отрисовывать часть пользовательского интерфейса в буфере, который затем можно преобразовать в растровое изображение с помощью APIBitmap.wrapHardwareBuffer.
Изменения API
- Обновлен API
CanvasBufferRenderer#releaseBufferтеперь есть необязательный параметр Fence. Обновлена документация, в которой описано, когда возвращаетсяRenderResult#fence. ( If1ea7 ) - Добавлен метод
drawвRenderRequestдля поддержки использования сопрограмм для планирования запросов на отрисовку. Предыдущий метод draw, использовавший исполнитель, переименован вdrawAsync. МетодisClosed()преобразован в свойство. ( I5bff6 ) - Параметр формата буфера представлен в
CanvasFrontBufferRendererдля непосредственного сопоставления сCanvasBufferedRenderer.Builder#setBufferFormat( I0f272 ). - Создан API
CanvasBufferedRendererдля аппаратного ускоренного рендеринга холста вHardwareBuffer. Это обеспечивает портированную реализацию для Android Q, а также настройку глубины цепочки обмена дляHardwareBuffers. КонфигурацияColorSpaceпо-прежнему ограничена Android U+, однако совместимая реализация обеспечивает поведение no-op от имени разработчиков. ( I9b1d8 ) - Добавьте API
setFrameRate/clearFrameRateвSurfaceControlCompat.Transactionдля управления частотой кадров вместе со стратегией изменения для плавных или стандартных переходов. ( I6045c ) - Снижен требуемый уровень API для
setDataSpaceс Android T до Android Q. ( I59c34 ) - Добавлен обратный вызов
onBufferReleasedв APIGLFrameBufferRenderer, чтобы предоставить потребителям возможность очистить состояние, когда буфер больше не отображается ( I8a4e2 ). - Создайте
LowLatencyCanvasViewдля поддержки простого варианта использования рендеринга контента с низкой задержкой, синхронизированного с рендерингом иерархии View. Это снижает сложность, связанную с управлениемSurfaceView, за счёт внутреннего управления экземпляромSurfaceView, который перемещается с экрана на экран для синхронизированного и низкозадерживаемого рендеринга соответственно. ( I9253b ) - Добавлена поддержка настройки цветового пространства в API
CanvasFrontBufferedRenderer. Обновлены многобуферные обратные вызовы, чтобы также включатьSurfaceControlс обратной буферизацией ( I24bd9 ).
Версия 1.0.0-альфа05
6 сентября 2023 г.
Выпущена версия androidx.graphics:graphics-core:1.0.0-alpha05 . Версия 1.0.0-alpha05 содержит следующие изменения.
Новые функции
- Представлен API
GLFrameBufferRenderer. Он предоставляет сочетание зависимостей OpenGL, конфигурации цепочки обмена, форматов пикселей и конфигурацииSurfaceControl. ( Ic775b )
Изменения API
- Добавлены параметры ширины и высоты в различные API обратного вызова для размеров труб из
SurfaceHolder#Callbacks. ( I7f9fc ) - Добавлен API очистки для очистки как передних, так и многобуферных слоев. ( Ic1f95 )
- Добавлена поддержка настройки базового типа буфера цепочек обмена, используемых в
GLFrontBufferedRenderer. ( I07a13 ) - Добавлены свойства Kotlin для геттеров в
GLFrameBufferRenderer, аннотацияIntRangeдля максимального количества записей буфера и аннотацииHardwareBufferFormartиHardwareBufferUsageдляsetFormat/setUsageсоответственно. ( Ief89e ) - Обновлен API
setBufferдля транзакцийSurfaceControlдля обеспечения ограничения выпуска. ( Ice1bb ) - Добавлены API
SurfaceControlCompat.Transactionдля настройки пространства данных, а также установки расширенного диапазона яркости. ( Ic378d )
Версия 1.0.0-альфа04
7 июня 2023 г.
Выпущена версия androidx.graphics:graphics-core:1.0.0-alpha04 . Версия 1.0.0-alpha04 содержит следующие коммиты.
Новые функции
- Представлен
CanvasFrontBufferedRendererдля поддержки графики с низкой задержкой, использующей APIandroid.graphics.Canvasвместе с существующей реализацией OpenGL.
Изменения API
- Обновлен API
SurfaceControlCompat.Transaction#setBuffer, позволяющий экземплярамHardwareBuffer, допускающим значение NULL, зеркалировать API соответствующей платформы ( I173d7 ). - Переименуйте методы, относящиеся к рендерингу с двойной буферизацией, в методы с множественной буферизацией, поскольку резервная цепочка обмена может содержать более 2 буферов. ( I830d7 )
- Создайте API
CanvasFrontBufferedRenderer, чтобы позволить 3ps использовать систему рендеринга с фронтальной буферизацией с помощью API Canvas. ( Ibfc29 )
Исправления ошибок
- Исправлена ошибка, из-за которой
GLFrontBufferedRendererне отображал содержимое после возобновления соответствующей активности. - Исправлена ошибка, из-за которой содержимое переднего буфера преждевременно очищалось.
- Исправлена ошибка, из-за которой
SurfaceHolder.Callbacksне удалялись после выпуска графических API с низкой задержкой.
Версия 1.0.0-альфа03
22 марта 2023 г.
Выпущена версия androidx.graphics:graphics-core:1.0.0-alpha03 . Версия 1.0.0-alpha03 содержит следующие изменения.
Изменения API
- Обновлена реализация обратного вызова
GLFrontBufferedRendererдля предоставления объектаBufferInfo, содержащего ширину/высоту буфера, а также идентификатор буфера кадра, который можно использовать для повторного указания исходного назначения после рендеринга в промежуточный рабочий буфер. ( I7fe20 ) - Объединено создание
SyncFenceв статический фабричный метод вSyncFenceCompat. - Удалён публичный метод совместимости для
eglDupNativeFenceFDANDROIDв пользу фабричного методаSyncFenceCompatдля создания SyncFence. Это необходимо для того, чтобы все поверхности API получили корректную реализациюSyncFenceнезависимо от уровня API. ( I849bb ) - Добавлена документация для
FrameBufferRendererиSyncStrategy.-
FrameBufferRenderer+FrameBuffer+FrameBufferPoolперемещены в пакетandroidx.graphics.opengl -
SyncStrategyперемещен в пакетandroidx.graphics.opengl - Обновленная документация
RenderCallback#onDraw - Обновлена документация
RenderCallback#obtainFrameBufferв которой указано, что реализатор API отвечает за вызовFrameBuffer.close - Обновлено
onDrawCompleteдля указания того, что потребители несут ответственность за отправку содержимого для отображения. - Интерфейсы/классы совместимости
SyncFenceперемещены в пакетandroidx.hardwareдля соответствия фреймворку. - API
SyncFenceпереименован вSyncFenceV19и сделан закрытым для объединения использования вSyncFenceCompat, который использует APISyncFenceфреймворка везде, где это возможно. ( I5149c )
-
- Добавлены методы
GLFrontBufferedRenderer#cancelиGLFrontBufferedRenderer#execute. Первый полезен в сценариях с отменой ладонного ввода, когда рендеринг в передний буфер должен быть отменен и передний буфер скрыт. Второй полезен в сценариях для манипулирования объектами в потоке GL без необходимости планирования рендеринга. ( If0b7f ) - Добавить API для рендеринга непосредственно в слой с двойной буферизацией. Это облегчает повторный рендеринг сцены после возобновления работы, а также предоставляет пользователям возможность динамически определять, когда использовать рендеринг с предварительной буферизацией, в зависимости от желаемой сцены для рендеринга. ( Ied56c )
- Добавлен новый API в
SurfaceControlCompat.Builderдля поддержки настройки родительскогоSurfaceControlиз другого экземпляраSurfaceControlв дополнение к существующему механизму изSurfaceView. ( I1d1b6 ) - Больше возможностей возвращать значение NULL для устаревших скрытых функций ( Ibf7b0 )
- Добавлена константа расширения
EGL_ANDROID_get_native_client_bufferдля запроса того, поддерживает ли устройство Android импорт экземпляровHardwareBufferв объектыEGLClientBuffer, которые можно использовать как экземплярEGLImage. ( Iad767 ) - Добавление аннотации
@JvmDefaultWithCompatibility( I8f206 )
Версия 1.0.0-альфа02
9 ноября 2022 г.
Выпущена версия androidx.graphics:graphics-core:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит следующие изменения.
Изменения API
- Исправлена отсутствующая аннотация
RequiresApiдляaddTransactionCommitListener, которая была введена в Android S ( I0a035 ). - Обновлены обратные вызовы буфера
onDraw<Front/Double>для предоставления матрицы преобразования, которую потребители могут передавать своим вершинным шейдерам в дополнение к текущей ширине/высоте буфера. Потребители несут ответственность за использование этих параметров для корректного предварительного поворота своего кода рендеринга OpenGL. ( I82f9e )
Исправления ошибок
- Уменьшена задержка графики за счет предварительной ротации буферов перед выдачей транзакций
SurfaceControl. - Исправлена ошибка, из-за которой в журналах ошибок отображалась ошибка 300d (EGL_BAD_SURFACE).
- Исправлена ошибка, из-за которой
GLFrontBufferedRendererстановился недействительным после возобновления соответствующей активности, в которой он использовался. - Расширенная поддержка эмуляторов и устройств ChromeOS.
- Исправлена ошибка, из-за которой передний буферизованный слой мог быть преждевременно скрыт.
Версия 1.0.0-альфа01
24 октября 2022 г.
Выпущена версия androidx.graphics:graphics-core:1.0.0-alpha01 . Версия 1.0.0-alpha01 содержит следующие коммиты.
Новые функции
- Первый выпуск графического ядра библиотеки AndroidX. Она включает API для поддержки сценариев с малой задержкой, таких как ввод с помощью стилуса. Также представлены некоторые вспомогательные API для использования OpenGL.
Изменения API
- Представлен
GLFrontBufferedRendererдля поддержки рендеринга с прямой и многобуферной буферизацией с целью достижения как низкой задержки, так и высокого качества рендеринга. - Представлен API
GLRendererдля помощи в рендеринге OpenGL для различных поставщиков Surface, таких какSurfaceView,TextureViewи других.