Какие API поддерживаются, когда в Honeycomb включено аппаратное ускорение? - PullRequest
2 голосов
/ 07 марта 2011

Сотовые документы расплывчаты:

При рендере с аппаратным ускорением включен, большинство операций в Canvas, Paint, Xfermode, ColorFilter, Shader, и камера ускоряются.

Существует ли точный список точных API, которые поддерживаются (и не поддерживаются), когда включено аппаратное ускорение? Некоторые методы быстро работают с исключениями, в то время как другие функции просто отображаются по-разному, когда включено ускорение.

Например, Canvas.clipPath (...) быстро завершается с ошибкой. Хотя clipPath API не упоминает об этом, его достаточно легко определить при тестировании на реальном оборудовании.

Другие функции отображаются неправильно, не вызывая исключений, что приводит к трудным и трудоемким операциям переноса. Например, у меня есть экран, который использует ComposeShader, состоящий из RadialGradient и LinearGradient, используя PorterDuff.Mode.SRC_IN. Выглядит красиво без ускорения, но совершенно неправильно, когда ускорение включено.

1 Ответ

4 голосов
/ 07 марта 2011

Я работаю над тем, чтобы опубликовать полный список. Не поддерживаются следующие функции:

  • clipPath
  • clipRegion
  • clipRect с XOR или Разницей op
  • drawPicture
  • drawPoints
  • drawPosText
  • drawTextOnPath
  • drawTextPos
  • drawVertices
  • setMaskFilter
  • setRasterizer

Редактировать: Читайте эту статью , чтобы узнать все, что нужно знать об аппаратном ускорении в Android 3.0.

Однако то, что вы описываете, должно работать просто отлично. Поддерживаются все градиенты, а также все режимы наложения. Пожалуйста, сообщайте об ошибках с воспроизводимыми контрольными случаями для любой проблемы, с которой вы столкнетесь, и я исправлю их.

...