Я создал приложение для Android, в котором я рендерил все с OpenGL-ES 2.0 и C ++ поверх JNI, и все это отлично работает, за исключением одной вещи.Кажется, что рендер-буферы как-то вышли из строя, и изображение выглядит, словно в тени.Что-то вроде размытия в движении, и я не знаю, что вызвало это.
Я создаю Activity только с GLSurfaceView, у которого есть класс Renderer, в котором используются вызовы рендеринга для рисования.Что может быть причиной такого странного поведения?
Java-код (за исключением некоторых не относящихся к делу вещей), который создает все вещи, выглядит следующим образом:
public class Main extends Activity
{ static MainLoop mloop = null;
@Override
protected void onCreate(Bundle savedInstanceState)
{ super.onCreate(savedInstanceState);
mloop = new MainLoop()
setContentView(mloop);
}
.
.
.
}
Java-код, который визуализируется, выглядит следующим образом (сноваминус некоторые несущественные вещи):
public class MainLoop extends GLSurfaceView
{ .
.
public MainLoop()
{ super(parent);
setEGLContextClientVersion(2);
setEGLConfigChooser(8, 8, 8, 8, 0, 0)
//
this.getHolder().setFormat(PixelFormat.TRANSLUCENT);
//
setRenderer(new Renderer());
}
.
.
private static class Renderer implements GLSurfaceView.Renderer
{ public void onDrawFrame(GL10 gl)
{ JNIRender();
}
public void onSurfaceChanged(GL10 gl, int width, int height)
{ JNIChanged();
}
public void onSurfaceCreated(GL10 gl, EGLConfig config)
{ JNICreate();
}
}
}
Весь рендеринг выполняется с помощью вызова JNIRender в C ++ и выглядит нормально, за исключением вещи, вышедшей из строя, где все выглядит так, как будто она отстает от тени.Есть ли что-то, что я должен принять во внимание или что я делаю неправильно?