/ / Render Android OpenGL ES 1.0 SurfaceView para JPEG - android, opengl-es, bitmap, render, surfaceview

Render Android OpenGL ES 1.0 SurfaceView para JPEG - android, opengl-es, bitmap, render, surfaceview

Eu estou tentando processar um GLSurfaceView para um JPEG usando o seguinte código:

FileOutputStream image = FileIO.getInstance().writeFile("racesow/test" + this.frameNum +" .jpg"); // creates an ouputstream in external storage directory
Bitmap bitmap = Bitmap.createBitmap(640, 480, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
this.game.glView.draw(canvas); // glView is the GLSurfaceView
bitmap.compress(Bitmap.CompressFormat.JPEG, 85, image);
image.flush();
image.close();

Eu estou executando este código depois que a cena completa foi renderizada para o surfaceview. As imagens estão sendo criadas, mas elas estão todas em preto. Alguma ideia?

Respostas:

1 para resposta № 1

Isso simplesmente não é implementado (SurfaceView.draw"1, GLSurfaceView). Tirar screenshots usando o OpenGL requer manuseio especial, mas o draw método não é substituído em GLSurfaceView.

No entanto, uma vez que é uma classe aberta, você pode derivar dela e adicionar sua própria implementação de draw com código personalizado para tirar screenshots; ou o que mais lhe convier.