JNI上でOpenGL-ES 2.0とC++を使ってすべてをレンダリングするAndroid Appを作成しました。 Renderbuffersが何らかの形で乱れているように見え、画像はその影のように見えます。何とか動きのぼけが好きで、私はこの原因を知らない。OpenGL-ES、JNI、C++でAndroid上でフレームが乱れるように見える
GLSurfaceViewでアクティビティを作成するのは、描画のレンダー呼び出しがレンダリングされるレンダラークラスです。この奇妙な行動の原因は何でしょうか?
すべてのものを作成した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();
}
}
}
全体のレンダリングはC++のJNIRender呼び出しで行なわれ、すべての外観が影のように見える不規則なものを除いてはきれいに見えます。私が考慮に入れなければならないことや、間違っていることはありますか?
ご返信ありがとうございます。私はチェックし、私はバッファが自動的にとにかく表示されているため、これは物事を混乱させるため、javaで使用されるときに悪い私のC + +コードでswapbufferコマンドがあることがわかりました。 – HardCoder