在Android上的主线程中使用OpenGL

前端之家收集整理的这篇文章主要介绍了在Android上的主线程中使用OpenGL前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当选择选项菜单中的项目时,我想调用GLES20方法.
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.clear:
            GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
            break;
        // ...
    }
}

这不起作用,因为我在主线程而不是GLThread.它说:

call to OpenGL ES API with no current
context (logged once per thread)

但是我需要做些什么才能让事情发挥作用?

解决方法

我自己找到了答案:
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.clear:
            // GLSurfaceView.queueEvent
            surface.queueEvent(new Runnable() {
                @Override
                public void run() {
                    GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
                }
            });
            break;
        // ...
    }
}

猜你在找的Android相关文章