графика
В этой таблице перечислены все артефакты, входящие в группу androidx.graphics .
| Артефакт | Стабильный релиз | Предварительная версия релиза | Бета-версия | Альфа-версия |
|---|---|---|---|---|
| графическое ядро | 1.0.4 | - | - | - |
| графический путь | 1.0.1 | - | 1.1.0-beta01 | - |
| графические фигуры | 1.1.0 | - | - | - |
Объявление зависимостей
Чтобы добавить зависимость от Graphics, необходимо добавить репозиторий Google Maven в ваш проект. Для получения дополнительной информации ознакомьтесь с информацией в репозитории Google Maven .
Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:
Круто
dependencies { implementation "androidx.graphics:graphics-core:1.0.4" implementation "androidx.graphics:graphics-path:1.1.0-beta01" implementation "androidx.graphics:graphics-shapes:1.1.0" }
Котлин
dependencies { implementation("androidx.graphics:graphics-core:1.0.4") implementation("androidx.graphics:graphics-path:1.1.0-beta01") 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-alpha01
11 декабря 2024 г.
Выпущена версия androidx.graphics:graphics-*:1.1.0-alpha01 . Версия 1.1.0-alpha01 содержит следующие коммиты .
Новые функции
- Основной демонстрационный пример был переработан в универсальный редактор фигур. Это позволяет импортировать фигуры из SVG-пути, вручную редактировать обнаруженные элементы в случае ошибок в автоматическом процессе и экспортировать результат в код, который можно использовать в рабочем коде. ( I1ac13 )
- Замените измерения углов для определения контура фигуры измерениями длины кривой; это позволит использовать более сложные формы для морфинга. ( I75478 ), I390dd
- Улучшен алгоритм сопоставления признаков, благодаря чему больше морфов будут выглядеть более естественно. ( I83287 )
Изменения в API
- Добавить импорт SVG-путей и сериализатор объектов. Обычно процесс выглядит следующим образом:
- Используйте новый метод
SvgPathParser.parseFeatures()для преобразования пути SVG (значения атрибутаdэлементаpathв SVG) вList<Feature>. - Его можно изменить, а затем сериализовать в строку с помощью
FeatureSerializer.serialize(). - Полученную строку можно использовать в рабочем коде, импортировав её с помощью
FeatureSerializer.parse() - Обратите внимание, что шаги 1 и 2 выполняются один раз и могут быть выполнены с новым приложением. В рабочем коде достаточно выполнить только шаг 3. ( I9bd00 , b/371196190 ), ( Ic3842 ), ( If68ed ), ( I10251 )
- Используйте новый метод
- Теперь можно отображать полигональные объекты и типы объектов. Более универсальные
RoundedPolygonsможно создавать с помощью базового конструктора, принимающегоList<Features>. Объекты представляют собой в основном список кубических кривых Безье, но они помечены тегами, чтобы помочь алгоритму морфинга сопоставить начальную и конечную формы (выпуклые углы отображаются на выпуклые углы, а вогнутые углы — на вогнутые углы). ( I61e76 ), ( I1fc5c ) - Добавлена поддержка целевой платформы
watchosDeviceArm64KMP и целевой платформы 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-alpha05
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-alpha04
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-alpha03
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-alpha02
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-alpha01
5 апреля 2023 г.
Graphics-Shapes — это новая библиотека, которая позволяет легко создавать и отображать скругленные многоугольные фигуры, а также осуществлять простое и автоматическое морфинг (анимацию) между различными фигурами.
Выпущена версия androidx.graphics:graphics-shapes:1.0.0-alpha01 . Эта версия была выпущена из внутренней ветки.
Новые функции
- Используйте API Polygon для создания правильных и звездообразных многоугольников с желаемым количеством вершин.
- Используйте необязательные параметры
CornerRoundingдля указания радиуса скругления и параметров сглаживания углов, в результате чего получатся многоугольные фигуры со скругленными углами. - Используйте новый API
Morph(Polygon, Polygon)для автоматического вычисления «морфологической» формы, прогресс которой можно установить от 0 до 1 для анимации между начальной и конечной формами. Анимируйте этот прогресс во времени, отображая результат в каждом кадре, чтобы создать плавную анимацию между этими новыми закругленными формами.
Graphics Path Version 1.1
Версия 1.1.0-beta01
17 декабря 2025 г.
Выпущена версия androidx.graphics:graphics-path:1.1.0-beta01 . Версия 1.1.0-beta01 содержит следующие коммиты .
Graphics Path Version 1.0
Версия 1.1.0-alpha01
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-alpha02
7 июня 2023 г.
Выпущена версия androidx.graphics:graphics-path:1.0.0-alpha02 . Эта версия разрабатывается во внутренней ветке.
Новые функции
- Исправлена проблема с внутренней проверкой версии платформы, которая вызывала проблемы при работе на предварительных версиях Android 14 (проверка версии завершалась неудачей, но механизм, используемый в предыдущих версиях, некорректно работает именно на Android 14).
Версия 1.0.0-alpha01
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.4
3 декабря 2025 г.
Выпущена версия androidx.graphics:graphics-core:1.0.4 . Версия 1.0.4 содержит следующие изменения .
Исправлены ошибки
- Улучшить совместимость и производительность для конкретных устройств.
Версия 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
- Официальный стабильный релиз библиотеки graphics-core. Включает незначительные исправления ошибок и улучшения производительности по сравнению с версией 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 Android для 2D-графики (Canvas + Paint) в иерархии View. - Введен API
CanvasBufferedRendererдля поддержки аппаратного ускорения рендеринга холста вHardwareBuffer. Это можно использовать для отрисовки части пользовательского интерфейса в буфер, который затем может быть преобразован в Bitmap с помощью 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+, однако совместимая реализация обеспечивает поведение, не выполняющее никаких действий от имени разработчиков. ( I9b1d8 ) - Добавьте API-интерфейсы
setFrameRate/clearFrameRateвSurfaceControlCompat.Transaction, чтобы управлять частотой кадров наряду со стратегией изменения для плавных или стандартных переходов. ( I6045c ) - Для
setDataSpaceснижен требуемый уровень API с Android T до Android Q. ( I59c34 ) - Добавлен коллбэк
onBufferReleasedв APIGLFrameBufferRenderer, чтобы предоставить потребителям возможность очистить состояние, когда буфер больше не отображается ( I8a4e2 ). - Создайте
LowLatencyCanvasViewдля поддержки простого сценария использования — рендеринга контента с низкой задержкой, синхронизированного с рендерингом иерархии View. Это снижает сложности, связанные с управлениемSurfaceView, за счет внутреннего управления экземпляромSurfaceView, который перемещается на экран и обратно для синхронизированного рендеринга и рендеринга с низкой задержкой соответственно. ( I9253b ) - Добавлена поддержка настройки цветового пространства в API
CanvasFrontBufferedRenderer. Обновлены коллбэки для многобуферизованных систем, теперь они также включаютSurfaceControlс обратной буферизацией ( I24bd9 ).
Версия 1.0.0-alpha05
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-alpha04
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 ). - Переименуйте методы, использующие рендеринг с двойной буферизацией, в методы с многобуферизацией, поскольку базовая цепочка обмена может содержать более двух буферов. ( I830d7 )
- Создайте API
CanvasFrontBufferedRenderer, чтобы позволить сторонним разработчикам использовать систему рендеринга с буферизацией на переднем плане, используя API Canvas. ( Ibfc29 )
Исправлены ошибки
- Исправлена ошибка, из-за которой
GLFrontBufferedRendererне отображал контент после возобновления работы соответствующей Activity. - Исправлена ошибка, из-за которой содержимое, находящееся в передней буферной зоне, преждевременно очищалось.
- Исправлена ошибка, из-за которой
SurfaceHolder.Callbacksне удалялся после выхода графических API с низкой задержкой.
Версия 1.0.0-alpha03
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 )
- В
SurfaceControlCompat.Builderдобавлен новый API для поддержки настройки родительскогоSurfaceControlиз другого экземпляраSurfaceControlв дополнение к существующему механизму изSurfaceView. ( I1d1b6 ) - Дополнительная возможность возврата нулевого значения для устаревших скрытых функций ( Ibf7b0 )
- Добавлена константа расширения
EGL_ANDROID_get_native_client_bufferдля проверки того, поддерживает ли устройство Android импорт экземпляровHardwareBufferв объектыEGLClientBuffer, которые могут быть использованы в качестве экземпляраEGLImage. ( Iad767 ) - Добавление аннотации
@JvmDefaultWithCompatibility( I8f206 )
Версия 1.0.0-alpha02
9 ноября 2022 г.
Выпущена версия androidx.graphics:graphics-core:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит следующие коммиты.
Изменения в API
- Исправлена ошибка отсутствия аннотации
RequiresApiдляaddTransactionCommitListener, которая появилась в Android S ( I0a035 ). - Обновлены коллбэки
onDraw<Front/Double>Buffer, теперь они предоставляют матрицу преобразования, которую пользователи могут передавать своим вершинным шейдерам в дополнение к текущей ширине/высоте буфера. Пользователи несут ответственность за использование этих параметров для правильного предварительного поворота кода рендеринга OpenGL. ( I82f9e )
Исправлены ошибки
- Улучшена задержка графики за счет предварительного вращения буферов перед выполнением транзакций
SurfaceControl. - Исправлена ошибка, из-за которой в журналах ошибок отображалась ошибка 300d (EGL_BAD_SURFACE).
- Исправлена ошибка, из-за которой
GLFrontBufferedRendererстановился недействительным после возобновления работы соответствующего Activity, в котором он использовался. - Расширена поддержка эмуляторов и устройств ChromeOS.
- Исправлена ошибка, из-за которой передний буферизованный слой мог преждевременно скрываться.
Версия 1.0.0-alpha01
24 октября 2022 г.
Выпущена версия androidx.graphics:graphics-core:1.0.0-alpha01 . Версия 1.0.0-alpha01 содержит следующие коммиты.
Новые функции
- Первый релиз графической библиотеки AndroidX. Он включает API для поддержки сценариев с низкой задержкой, таких как ввод с помощью стилуса. Также представлены некоторые вспомогательные API для использования OpenGL.
Изменения в API
- Вводит
GLFrontBufferedRendererдля поддержки фронтального и многобуферного рендеринга, что позволяет добиться как низкой задержки, так и высокого качества результата. - Вводит API
GLRendererдля поддержки рендеринга OpenGL для различных поставщиков поверхностей, таких какSurfaceView,TextureViewи другие.