3

一度に複数のレンダリングを画面に表示することはできますか? Android の画面を 4 つの象限に分割し、各象限にキューブを表示しますか? OpenGLで可能だと思いますが、それはGLUTであり、Windowsベースです。私はアンドロイドでそれを行う方法を検討していますが、それについて説明しているものはまだありません。レンダリングを作成する主なアクティビティは次のとおりです。

public class MainActivity extends Activity
{

    private MyGLSurfaceView mGLView;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        // Create a GLSurfaceView instance and set it
        // as the ContentView for this Activity

        // "this" is the reference to activity
        mGLView = new MyGLSurfaceView(this);
        setContentView(mGLView);
    }

    @Override
    protected void onPause()
    {
        super.onPause();
        // The following call pauses the rendering thread.
        // If your OpenGL application is memory intensive,
        // you should consider de-allocating objects that
        // consume significant memory here.
        mGLView.onPause();
    }

    @Override
    protected void onResume()
    {
        super.onResume();
        // The following call resumes a paused rendering thread.
        // If you de-allocated graphic objects for onPause()
        // this is a good place to re-allocate them.
        mGLView.onResume();
    }
}

class MyGLSurfaceView extends GLSurfaceView
{

    private final MyGLRenderer mRenderer;
    Context context;

    public MyGLSurfaceView(Context context)
    {
        super(context);

        this.context = context;
        // Create an OpenGL ES 2.0 context.
        setEGLContextClientVersion(2);

        // Set the Renderer for drawing on the GLSurfaceView
        Log.d("Test", "GL initialized");
        mRenderer = new MyGLRenderer(context);
        setRenderer(mRenderer);

        // Render the view only when there is a change in the drawing data
        setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
    }
}
4

2 に答える 2

1

GLSurfaceView はこれを行うように設計されていませんが、代わりに TextureViews を使用して行うことができます。TextureView のオンライン ドキュメントを参照してください。これを行う最も簡単な方法は、各 TextureView を順番にレンダリングする単一のスレッドを作成することです。複数の OpenGL ES コンテキストを同時に実行したい場合、それははるかに複雑ですが、Khronos.org OpenGL ES フォーラムで最近議論されています。

于 2013-08-17T17:51:49.897 に答える