NDK SurfaceView 重绘在屏幕旋转时显示损坏
NDK SurfaceView redraw got broken display on screen rotate
我正在使用带有 ndk+openGL 的 SurfaceView,当按下模拟器的屏幕旋转按钮时,
我从 SurfaceHolder.Callback 收到 SurfaceChanged 事件,然后我 post 通过 Handler 重绘消息,并且 Handler 通过 JNI 本机代码使用新的显示指标重绘屏幕,但显示已损坏,如图所示。
我确定本地 OpenGL 绘图代码已经绘制了一帧,在按下旋转按钮之后和屏幕旋转完成之前,但不知道为什么显示坏了。
我对android不太熟悉,谁能帮帮我。谢谢。
编辑:
当我进行一些触摸事件以触发新帧时,显示已修复。
所以我在想是否有一个旋转完成事件,所以我可以强制绘制一帧来解决这个问题。
问题已解决。
重写SurfaceHolder.Callback2的surfaceRedrawNeeded
方法,旋转完成后调用
我正在使用带有 ndk+openGL 的 SurfaceView,当按下模拟器的屏幕旋转按钮时, 我从 SurfaceHolder.Callback 收到 SurfaceChanged 事件,然后我 post 通过 Handler 重绘消息,并且 Handler 通过 JNI 本机代码使用新的显示指标重绘屏幕,但显示已损坏,如图所示。
我确定本地 OpenGL 绘图代码已经绘制了一帧,在按下旋转按钮之后和屏幕旋转完成之前,但不知道为什么显示坏了。
我对android不太熟悉,谁能帮帮我。谢谢。
编辑: 当我进行一些触摸事件以触发新帧时,显示已修复。 所以我在想是否有一个旋转完成事件,所以我可以强制绘制一帧来解决这个问题。
问题已解决。
重写SurfaceHolder.Callback2的surfaceRedrawNeeded
方法,旋转完成后调用