我正在为Android系统开始一些 OpenGL-ES 2.0 。我从以下代码中获取了以下代码:http://developer.android.com/training/graphics/opengl/environment.html#renderer
public class MyRenderer implements GLSurfaceView.Renderer {
public void onSurfaceCreated(GL10 unused, EGLConfig config) {
GLES20.glClearColor(0.5f, 0.5f, 0.5f, 1.0f);
}
public void onDrawFrame(GL10 unused) {
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
}
public void onSurfaceChanged(GL10 unused, int width, int height) {
GLES20.glViewport(0, 0, width, height);
}
}
Gradle:错误:MyRenderer不是抽象的,并且不会覆盖渲染器中的抽象方法onSurfaceCreated(GL10,EGLConfig)
有谁知道怎么办?我需要使用MyRenderer
类传递给GLSurfaceView
,因此简单地将其声明为抽象不是一个可行的解决方案。任何人都可以解释我的问题吗?
答案 0 :(得分:43)
导入的不正确的版本看起来像这样
import android.opengl.GLES20;
import android.opengl.GLSurfaceView;
import android.opengl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
但是GLSurfaceView.Renderer
想要EGLConfig
库中的javax
以下代码是正确版本的导入
import android.opengl.GLES20;
import android.opengl.GLSurfaceView;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
public static interface Renderer {
void onSurfaceCreated(javax.microedition.khronos.opengles.GL10 gl10, javax.microedition.khronos.egl.EGLConfig eglConfig);
void onSurfaceChanged(javax.microedition.khronos.opengles.GL10 gl10, int i, int i1);
void onDrawFrame(javax.microedition.khronos.opengles.GL10 gl10);
}