【问题标题】:How to force a call to onDrawFrame() on a GLSurfaceView?如何在 GLSurfaceView 上强制调用 onDrawFrame()?
【发布时间】:2013-12-28 22:21:50
【问题描述】:

我有一个带有显示多边形的 GLSurfaceView 的 UI。

UI 还有两个按钮 ZoomIn 和 ZoomOut。当用户按下这些按钮时,会调用 myGLSurfaceView 的 zoomIn() 和 zoomOut() 方法。

问题是我希望调用 onDrawFrame get 方法以反映放大和缩小。

我为什么要这个?因为按钮有 setClickable(true);为什么?因为我需要,如果用户离开手指按下按钮,缩放会持续应用,直到用户释放按钮。

现在可以了,但是效果不好,我需要刷新 GLsurfaceview 强制 onDrawFrame

【问题讨论】:

    标签: android opengl-es glsurfaceview


    【解决方案1】:

    致电gLSurfaceView.requestRender()。这将(来自链接):

    请求渲染器渲染一个帧。此方法通常在渲染模式设置为 RENDERMODE_WHEN_DIRTY 时使用,以便仅按需渲染帧。可以从任何线程调用。在设置渲染器之前不得调用。

    【讨论】:

    • 这是黑色图像
    • 也得到黑色图像
    【解决方案2】:

    使用线程和手指的按下/释放事件解决

    【讨论】:

    • 它是如何解决的?这就是可接受的答案所证明的。
    • 这不是一个答案,这只是一个没有任何强大基础的解决方案草图,并且还使用了具有更好选择的不良做法......
    • 除非您不愿意分享适当的细节,否则无需告诉您是否解决了这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-22
    • 1970-01-01
    • 2012-12-24
    • 1970-01-01
    相关资源
    最近更新 更多