android - 从 SurfaceView 转移到 GLSurfaceView?

标签 android surfaceview glsurfaceview

我目前正在开发一款仅使用 2D 图形的游戏。

在游戏中,我广泛使用 android 的 SurfaceView 来显示我的图形。 我听说 GLSurfaceView 使用硬件加速图形,我可以使用它来代替当前的 SurfaceView 来提高我的应用程序的性能。

目前,我有一个扩展 SurfaceView 的类,它在方法 update()render() 时更新和渲染游戏状态由我自己的扩展 Thread 的线程类调用。 Thread 基本上可以帮助我保持几乎恒定的 FPS。

现在的问题是: 我如何从 SurfaceView 更改为 GLSurfaceView,并从 Thread 调用方法来更新和渲染游戏状态,以仍然控制 FPS。我阅读了关于 OpenGL ES 的 android 文档,但我不太明白如何使用 GLSurfaceView.Renderer

如果有人能解释我如何轻松地从 SurfaceView 切换到 GLSurfaceView,那将很有帮助!谢谢!

最佳答案

显示游戏的类将扩展 GLSurfaceView。您的渲染类将实现 Renderer。在您的 Renderer 类中,您需要添加这些未实现的方法:onDrawFrame()onSurfaceChanged()和 onSurfaceCreated().

希望这对您有所帮助。

关于android - 从 SurfaceView 转移到 GLSurfaceView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11284620/

相关文章:

android - 如何暂停和恢复 surfaceView 线程

android - Camera2预览是黑色的,如果我在前面加一个GLSurfaceView

android - 如何在 iOS 和 Android 中检测用户在给定时间是否仅在一台设备上处于 Activity 状态

java - 是否必须消耗自动续订的 android 应用内订阅?

android - 下载文件需要什么权限?

android - 在 root 设备上使用 su 命令复制文件和目录

Android游戏循环,如何控制速度

android - 如何在 Android 中平滑地实现放大缩小?与带有 RTMP 流的 SurfaceView 相关

android - onPause()/onResume() 中的 GLSurface 问题

android - 调用 "onResume"时,GLSurfaceView 不会恢复其 Open GL 线程