真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Android中如何搭建OpenGLES開發(fā)環(huán)境

這篇文章主要介紹“Android中如何搭建OpenGL ES開發(fā)環(huán)境”,在日常操作中,相信很多人在Android中如何搭建OpenGL ES開發(fā)環(huán)境問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Android中如何搭建OpenGL ES開發(fā)環(huán)境”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

七星關(guān)區(qū)網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)成立與2013年到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

在Manifest聲明OpenGL ES的使用 Declare OpenGL ES Use in the Manifest

要在應(yīng)用程序中使用 OpenGL ES 2.0 API,你必須在Manifest添加以下的聲明:

如果你的應(yīng)用程序中使用到了紋理壓縮,你必須聲明應(yīng)用程序所支持的壓縮格式,以便提醒不支持這些格式的設(shè)備不會嘗試運行你的應(yīng)用程序:

 

想獲取更多關(guān)于紋理壓縮格式的信息,請參考OpenGl ES開發(fā)指南。

創(chuàng)建OpenGL ES的Activity Create an Activity for OpenGL ES Graphics

Android使用到OpenGL ES的應(yīng)用程序和其他的應(yīng)用程序的activities一樣,都有一個用戶界面。當中***的不同就是,在activity的布局中你使用了什么控件,在很多應(yīng)用中,你可能會使用TextView,Button和ListView,在使用了OpenGL ES的應(yīng)用程序,你還可以添加GLSurfaceView。

下面的示例代碼中,呈現(xiàn)了一個Activity使用GLSurfaceView作為主視圖的***實現(xiàn):

public class OpenGLES20 extends Activity { private GLSurfaceView mGLView; @Override public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     // Create a GLSurfaceView instance and set it     // as the ContentView for this Activity.     mGLView = new MyGLSurfaceView(this);     setContentView(mGLView); } }

備注:OpenGL ES 2.0需要Android2.2(API 8)以上使用,請確定你的Android工程的API設(shè)置正確。

創(chuàng)建GLSurfaceView對象 Build a GLSurfaceView Object

GLSurfaceView是一個可以繪制OpenGL ES圖像的專門視圖,它本身沒有處理功能,所繪制的圖像都是由你所設(shè)置的GLSurfaceView.Renderer來控制的。事實上,該對象的代碼很簡單,你可能寧愿自己創(chuàng)建一個沒有定義好的GLSurfaceView實例,而不去繼承它,但是千萬不要這樣做。你需要繼承這個類,才能捕獲觸摸事件,這些將會在Responding_to_Touch_Events |觸摸響應(yīng)這節(jié)課中有介紹到。

GLSurfaceView的必要代碼是很少的,為了一個快速的實現(xiàn),最常見的做法是在activity中創(chuàng)建一個內(nèi)部類:

class MyGLSurfaceView extends GLSurfaceView { public MyGLSurfaceView(Context context){     super(context);     // Set the Renderer for drawing on the GLSurfaceView     setRenderer(new MyRenderer()); } }

在使用OpenGL ES 2.0時,你必須在你的GLSurfaceView構(gòu)造器中添加多一句代碼,以聲明你是使用OpenGL ES 2.0的API:

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

備注:如果你使用的是OpenGL ES 2.0的API,請確認你已經(jīng)在應(yīng)用程序的manifest進行了聲明。更多的信息,請參考在Manifest聲明OpenGL ES的使用 Declare OpenGL ES Use in the Manifest

使用GLSurfaceView.RENDERMODE_WHEN_DIRTY可以設(shè)定GLSurfaceView實現(xiàn)的渲染模式:當應(yīng)用程序的圖數(shù)據(jù)發(fā)生變化時,才繪制試圖。該設(shè)置是可選的,設(shè)置如下:

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

該設(shè)置可以防止GLSurfaceView圖像被重新繪制,直到你調(diào)用了equestRender())方法,這在樣例應(yīng)用程序中更體現(xiàn)了其的價值。

創(chuàng)建渲染器類 Build a Renderer Class

GLSurfaceView.Renderer類或渲染器的實現(xiàn),使得使用了OpenGL的應(yīng)用程序開始變成一個有趣的事情。這個類控制與之關(guān)聯(lián)的東西可以被繪制在GLSurfaceView。渲染器中提供了三種方法給Android系統(tǒng)調(diào)用,以控制什么可以,以及怎樣繪制在GLSurfaceView上。

* onSurfaceCreated()) - 設(shè)置視圖的OpenGL ES環(huán)境,只需調(diào)用一次

* onDrawFrame()) - 重新繪制每個視圖時調(diào)用

* onSurfaceChanged()) - 視圖的幾何發(fā)現(xiàn)變化時調(diào)用,例如,設(shè)備的屏幕的方向發(fā)生變化

下面是對于OpenGL ES渲染器一個很基本的實現(xiàn),只在GLSurfaceView上繪制了一個灰色的背景:

public class MyGL20Renderer implements GLSurfaceView.Renderer { public void onSurfaceCreated(GL10 unused, EGLConfig config) {         // Set the background frame color         GLES20.glClearColor(0.5f, 0.5f, 0.5f, 1.0f);     }     public void onDrawFrame(GL10 unused) {         // Redraw background color         GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);     }     public void onSurfaceChanged(GL10 unused, int width, int height) {         GLES20.glViewport(0, 0, width, height);     }     }

這就是這節(jié)課所介紹的所有東西。上面的示例代碼創(chuàng)建了一個簡單的應(yīng)用程序:使用OpenGL繪制灰色的背景。雖然代碼沒有做什么有趣的事情,但是通過建立這些類,你奠定了使用OpenGL繪制圖像的基礎(chǔ)。

在使用OpengGL ES 2.0的API時,也許你會很奇怪這些方法中為什么會包含有GL10參數(shù),這是因為這些方法的簽名是重用了2.0的API,以保證Android框架的代碼更加簡單。

到此,關(guān)于“Android中如何搭建OpenGL ES開發(fā)環(huán)境”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
網(wǎng)頁標題:Android中如何搭建OpenGLES開發(fā)環(huán)境
網(wǎng)站網(wǎng)址:http://weahome.cn/article/jcpids.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部