為了能夠在Android應用程式中使用OpenGL ES繪製圖形,你必須建立一個視圖作為容器。而更直接的做法是從GLSurfaceView和 GLSurfaceView.Renderer各派生一個實作類別。GLSurfaceView作為使用OpenGL繪製的容器,GLSurfaceView.Renderer將用於控制繪圖的動作。對這些類的更多資訊,請參閱OpenGL ES開發人員指南。
使用GLSurfaceView幾乎是整合OpenGL ES到你的應用中的唯一方式。對於一個需要全屏或近乎螢幕圖形視圖,它是一個合理的選擇。如果開發人員只是期望藉助OpenGL ES在某個布局中一小部分繪圖,則應該考慮使用TextureView。如果覺得自己是“大牛”,完全可以使用SurfaceView建立一個OpenGL ES視圖,但這樣做需要編寫相當多的額外的代碼。
這一節將介紹如何在一個簡單應用的activity中完成一個最小的GLSurfaceView和GLSurfaceView.Renderer的實現。
一、在Manifest檔案中聲明使用OpenGL ES
為了能夠使用OpenGL ES 2.0 API,你必須在manifest檔案中添加以下聲明:
[html]
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
<uses-feature android:glEsVersion="0x00020000" android:required="true" /> 如果你的應用需要使用紋理壓縮功能,還要聲明裝置需要支援什麼樣的壓縮格式:
[html]
<supports-gl-texture android:name="GL_OES_compressed_ETC1_RGB8_texture" />
<supports-gl-texture android:name="GL_OES_compressed_paletted_texture" />
<supports-gl-texture android:name="GL_OES_compressed_ETC1_RGB8_texture" />
<supports-gl-texture android:name="GL_OES_compressed_paletted_texture" />