OpenGL ES (5): 重新开始使用OpenGL ES2.0

1.介绍


之前的总结的文章是写OpenGLES1.0的使用,可能有些不对的地方。接下来讲的是OpenGLES2.0.

Android 支持OpenGL ES API版本的详细状态:

  • OpenGL ES 1.0 和 1.1 能够被Android 1.0及以上版本支持
  • OpenGL ES 2.0 能够被Android 2.2及更高版本支持
  • OpenGL ES 3.0 能够被Android 4.3及更高版本支持
  • OpenGL ES 3.1 能够被Android 5.0及以上版本支持

为了让你的应用程序能够使用OpenGL ES 2.0的API,你必须添加以下声明到manifest:且SDK版本要符合

<uses-feature android:glEsVersion="0x00020000" android:required="true" />

如果你的应用程序需要使用纹理压缩,你还需要声明你的应用程序需要支持哪种压缩格式,以便他们安装在兼容的设备上。

<supports-gl-texture android:name="GL_OES_compressed_ETC1_RGB8_texture" />
<supports-gl-texture android:name="GL_OES_compressed_paletted_texture" />

2.简单例子使用


public class MainActivity extends AppCompatActivity {

private GLSurfaceView glSurfaceView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        glSurfaceView = new MyGLSurfaceView(this);
        setContentView(glSurfaceView);
    }

}
public class MyGLSurfaceView extends GLSurfaceView{

    private final MyGLRenderer mRenderer;

    public MyGLSurfaceView(Context context){
        super(context);
        // Create an OpenGL ES 2.0 context
        setEGLContextClientVersion(2);

        mRenderer = new MyGLRenderer();
        setRenderer(mRenderer);
    }
}
public class MyGLRenderer implements GLSurfaceView.Renderer {
    @Override
    public void onSurfaceCreated(GL10 gl, EGLConfig config) {
            GLES20.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
    }

    @Override
    public void onSurfaceChanged(GL10 gl, int width, int height) {
        GLES20.glViewport(0, 0, width, height);

    }

    @Override
    public void onDrawFrame(GL10 gl) {
            GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
    }

}

有了之前的使用对于这个例子应该很熟悉。简单使用就是如此。

猜你喜欢

转载自blog.csdn.net/qq_38261174/article/details/83048703