графика

Используйте графические возможности различных версий Android.

В этой таблице перечислены все артефакты, входящие в группу androidx.graphics .

Артефакт Стабильный релиз Предварительная версия релиза Бета-версия Альфа-версия
графическое ядро 1.0.4 - - -
графический путь 1.0.1 - 1.1.0-beta01 -
графические фигуры 1.1.0 - - -
Последнее обновление этой библиотеки: 17 декабря 2025 г.

Объявление зависимостей

Чтобы добавить зависимость от 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 )
  • Добавлена ​​поддержка целевой платформы watchosDeviceArm64 KMP и целевой платформы 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 и y Point и возвращает 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 с помощью API Bitmap.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 в API GLFrameBufferRenderer , чтобы предоставить потребителям возможность очистить состояние, когда буфер больше не отображается ( 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 для поддержки графики с низкой задержкой, использующий API android.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 , который использует API SyncFence фреймворка везде, где это возможно. ( 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 и другие.