【问题标题】:Writing to an Android display from ndk从 ndk 写入 Android 显示器
【发布时间】:2015-01-03 22:23:55
【问题描述】:

直接写入帧缓冲区不再有效。无论如何要写入NDK中的显示吗?我可能会使用 ANativeWindow 但这需要一个现有的表面。有没有更好的办法?或者是在本机创建表面然后使用 ANativeWindow 的唯一方法?

【问题讨论】:

    标签: android c++ android-ndk surfaceview framebuffer


    【解决方案1】:

    显示器归 SurfaceFlinger 和 Hardware Composer 所有,因此除非您打算停止 Android 框架,否则您需要处理它们。 (有关详细信息,请参阅graphics architecture doc。)

    如果您正在开发一个以“shell”或“root”身份运行的独立命令,并且您不介意使用非公共接口,则可以向 SurfaceFlinger 请求一个窗口并在其上绘制。从 5.0 "Lollipop" 开始,旧的 GLES 测试已更新为以这种方式工作。有关指针,请参阅this answer;旧金山的演示是说明性的。

    如果您正在开发一个常规应用程序,您必须创建一个 Surface 并通过 ANativeWindow 渲染到它。不允许常规应用独占访问显示器。

    【讨论】:

    • 很好的答案。这回答了我的问题以及我的任何后续问题!
    猜你喜欢
    • 2016-05-20
    • 1970-01-01
    • 2013-01-20
    • 1970-01-01
    • 2012-01-10
    • 1970-01-01
    • 2012-10-12
    • 2014-02-13
    • 1970-01-01
    相关资源
    最近更新 更多