【问题标题】:Which APIs are supported when hardware acceleration is enabled on Honeycomb?在 Honeycomb 上启用硬件加速时支持哪些 API?
【发布时间】:2011-03-07 04:25:45
【问题描述】:

Honeycomb 文档含糊不清:

当硬件加速渲染器 已启用,Canvas 中的大多数操作, 油漆,Xfermode,ColorFilter,着色器, 和相机加速。

启用硬件加速后,是否有确切的 API 列表(和不支持)?某些方法会因异常而快速失败,而其他功能在启用加速时会以不同方式呈现。

例如,Canvas.clipPath(...) 快速失败并出现异常。尽管clipPath API 没有提及这一点,但在真实硬件上进行测试时很容易确定。

其他功能在不引发异常的情况下无法正确呈现,从而导致移植工作困难且耗时。例如,我有一个使用由 RadialGradient 和 LinearGradient 组成的 ComposeShader 的屏幕,使用 PorterDuff.Mode.SRC_IN。不加速就好看,开启加速就完全错了。

【问题讨论】:

    标签: android android-3.0-honeycomb hardware-acceleration


    【解决方案1】:

    我正在努力发布完整的列表。不支持的功能有:

    • 剪辑路径
    • 剪辑区域
    • clipRect 与 XOR 或差运算
    • 画图
    • 绘制点
    • drawPosText
    • drawTextOnPath
    • drawTextPos
    • 绘制顶点
    • setMaskFilter
    • setRasterizer

    编辑:阅读this article,了解有关 Android 3.0 中硬件加速的所有信息。

    但是,您所描述的应该可以正常工作。支持所有渐变,以及所有混合模式。请针对您遇到的任何问题使用可重现的测试用例报告错误,我会修复它们。

    【讨论】:

    • 我检查了实现,硬件渲染器目前仅支持 ComposeShader 中不同类型的着色器。这意味着您可以使用渐变 + 位图,但不能使用两个位图或两个渐变。请注意,对于执行硬件不支持的操作的视图,您可以使用 setLayerType(LAYER_TYPE_SOFTWARE, null) 强制它们在软件中呈现。
    • 你能否在滚动视图中添加一个 webview 并在 webview 中播放一些视频,然后上下滚动视图,你会遇到一个问题(对不起,我无法解释这个问题)。我的设备是三星 Galaxy Tab 10.1"
    • @RomainGuy 这个列表是否针对 ICS 和 JB 进行了更改?在 api 文档或其他地方找不到任何有关它的信息。
    猜你喜欢
    • 2012-03-24
    • 2020-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-04
    • 1970-01-01
    • 2015-03-15
    • 1970-01-01
    相关资源
    最近更新 更多