Реализация проблем GLSurfaceView.Renderer
Код, полученный из учебника
Я запускаю несколько OpenGL-ES 2.0 для системы Android. Я взял следующий код: 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) в Renderer
Кто-нибудь знает, как действовать? Мне нужно использовать класс MyRenderer
для перехода к GLSurfaceView
, поэтому просто объявить его абстрактным не является жизнеспособным решением. Может ли кто-нибудь пролить свет на мою проблему?
Ответы
Ответ 1
Обнаружена проблема!
Версия импорта Неверная выглядела так:
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);
}