графика

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

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

Артефакт Стабильный релиз Кандидат на релиз Бета-версия Альфа-релиз
графическое ядро 1.0.3 - - -
графический путь 1.0.1 - - -
графические формы 1.0.1 - 1.1.0-бета01 -
Последнее обновление этой библиотеки: 30 июля 2025 г.

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

Чтобы добавить зависимость от Graphics, необходимо добавить репозиторий Google Maven в свой проект. Подробнее см. в репозитории Google Maven .

Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:

Круто

dependencies {
    implementation "androidx.graphics:graphics-core:1.0.3"
    implementation "androidx.graphics:graphics-path:1.0.1"
    implementation "androidx.graphics:graphics-shapes:1.1.0-beta01"
}

Котлин

dependencies {
    implementation("androidx.graphics:graphics-core:1.0.3")
    implementation("androidx.graphics:graphics-path:1.0.1")
    implementation("androidx.graphics:graphics-shapes:1.1.0-beta01")
}

Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .

Обратная связь

Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с уже существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав на кнопку со звёздочкой.

Создать новый выпуск

Более подробную информацию см. в документации по системе отслеживания проблем .

Заметок о выпуске для этого артефакта нет.

Графика версии 1.1

Версия 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 элемента path SVG) в List<Feature> .
    • Его можно изменить, а затем сериализовать в строку с помощью FeatureSerializer.serialize() .
    • Полученную строку можно использовать в производственном коде, импортировав ее с помощью FeatureSerializer.parse()
    • Обратите внимание, что шаги 1 и 2 выполняются один раз и могут быть выполнены в новом приложении. В производственном коде достаточно выполнить только шаг 3. ( I9bd00 , b/371196190 ), ( Ic3842 ), ( If68ed ), ( I10251 )
  • Откройте полигональные объекты и типы объектов. Более общие RoundedPolygons теперь можно создавать с помощью базового конструктора, принимающего List<Features> . Объекты в основном представляют собой список кубических кривых Безье, но они помечены тегами, чтобы помочь алгоритму Morph сопоставлять начальные и конечные формы (выпуклые углы отображаются как выпуклые, а вогнутые — как вогнутые). ( I61e76 ), ( I1fc5c )
  • Добавляет поддержку watchosDeviceArm64 KMP 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 и 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-альфа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.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 . Это позволяет отрисовывать часть пользовательского интерфейса в буфере, который затем можно преобразовать в растровое изображение с помощью 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+, однако совместимая реализация обеспечивает поведение no-op от имени разработчиков. ( I9b1d8 )
  • Добавьте API setFrameRate / clearFrameRate в SurfaceControlCompat.Transaction для управления частотой кадров вместе со стратегией изменения для плавных или стандартных переходов. ( I6045c )
  • Снижен требуемый уровень API для setDataSpace с Android T до Android Q. ( I59c34 )
  • Добавлен обратный вызов onBufferReleased в API GLFrameBufferRenderer , чтобы предоставить потребителям возможность очистить состояние, когда буфер больше не отображается ( 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 для поддержки графики с низкой задержкой, использующей API android.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 , который использует API SyncFence фреймворка везде, где это возможно. ( 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 и других.