久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

使用 OpenGL 代替 Canvas - Android

Using OpenGL to replace Canvas - Android(使用 OpenGL 代替 Canvas - Android)
本文介紹了使用 OpenGL 代替 Canvas - Android的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!

問(wèn)題描述

我正在嘗試用更快的 opengl-es 表面替換我已經(jīng)擁有的基于 Canvas 的渲染系統(tǒng),但是,我似乎無(wú)法讓 openGL 渲染器以充當(dāng) 2d 字段的方式符合要求,而不是透視圖.

I am attempting to replace the Canvas-based rendering system that I already have with the faster opengl-es surface, however, I can't seem to get an openGL renderer to conform in such a way that it acts as 2d field, rather than a perspective view.

我當(dāng)前的渲染器代碼如下:

My current code for the renderer looks as follows:

     @Override
     public void onSurfaceChanged(GL10 gl, int width, int height) {
        gl.glViewport(0, 0, width, height);
        gl.glMatrixMode(GL10.GL_PROJECTION);
        gl.glLoadIdentity();
        gl.glOrthof(0.0f, width, 0.0f, height, 0.0f, 1.0f);

        gl.glShadeModel(GL10.GL_FLAT);
        gl.glEnable(GL10.GL_BLEND);
        gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
        gl.glColor4x(0x10000, 0x10000, 0x10000, 0x10000);
        gl.glEnable(GL10.GL_TEXTURE_2D);
    }

    @Override
    public void onSurfaceCreated(GL10 gl, EGLConfig config) {
        gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_FASTEST);

        gl.glClearColor(0.5f, 0.5f, 0.5f, 1);
        gl.glShadeModel(GL10.GL_FLAT);
        gl.glDisable(GL10.GL_DEPTH_TEST);
        gl.glEnable(GL10.GL_TEXTURE_2D);

        gl.glDisable(GL10.GL_DITHER);
        gl.glDisable(GL10.GL_LIGHTING);

        gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);    
    }

如何設(shè)置渲染器以使平移轉(zhuǎn)換與屏幕上的像素匹配?(所以向右平移 5 會(huì)將其移動(dòng) 5 個(gè)像素)

How would I setup the renderer so that the translate transformation would match up with the pixels on the screen? (so translating 5 to the right would move it 5 pixels)

推薦答案

請(qǐng)注意,在 openGL 中,Y 坐標(biāo)是倒置的.否則一切都是一樣的.
至于正確的標(biāo)志,我建議你查看開(kāi)源的安卓游戲副本島:http://code.google.com/p/replicaisland/

Please note that in openGL that Y co-ordinate is inverted. Otherwise all is the same.
As for the correct flags, I recommend you check out the open source android game replica island: http://code.google.com/p/replicaisland/

這是我在自己的代碼中使用的:

Here's what I use in my own code:

public void onSurfaceChanged(GL10 gl, int width, int height) 
{
    mViewWidth = width;
    mViewHeight = height;

    gl.glViewport(0, 0, mViewWidth,  mViewHeight);
    gl.glLoadIdentity();
    GLU.gluOrtho2D(gl, 0, mViewWidth, mViewHeight, 0);
}

public void onSurfaceCreated(GL10 gl, EGLConfig config) 
{
    gl.glClearColor(0.5f, 0.5f, 0.5f, 1);
    gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_FASTEST);
    gl.glShadeModel(GL10.GL_FLAT);
    gl.glDisable(GL10.GL_DEPTH_TEST);
    gl.glEnable(GL10.GL_BLEND);
    gl.glBlendFunc(GL10.GL_ONE, GL10.GL_ONE_MINUS_SRC_ALPHA); 

    gl.glViewport(0, 0, mViewWidth,  mViewHeight);
    gl.glMatrixMode(GL10.GL_PROJECTION);
    gl.glLoadIdentity();
    gl.glEnable(GL10.GL_BLEND);
    gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
    gl.glShadeModel(GL10.GL_FLAT);
    gl.glEnable(GL10.GL_TEXTURE_2D);

    GLU.gluOrtho2D(gl, 0, mViewWidth, mViewHeight, 0);
}

在哪里 mViewWidth &mViewHeight 是顯示的大小.

Where mViewWidth & mViewHeight are the size of the display.

這篇關(guān)于使用 OpenGL 代替 Canvas - Android的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來(lái)源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問(wèn)題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

How to wrap text around components in a JTextPane?(如何在 JTextPane 中的組件周圍環(huán)繞文本?)
MyBatis, how to get the auto generated key of an insert? [MySql](MyBatis,如何獲取插入的自動(dòng)生成密鑰?[MySql])
Inserting to Oracle Nested Table in Java(在 Java 中插入 Oracle 嵌套表)
Java: How to insert CLOB into oracle database(Java:如何將 CLOB 插入 oracle 數(shù)據(jù)庫(kù))
Why does Spring-data-jdbc not save my Car object?(為什么 Spring-data-jdbc 不保存我的 Car 對(duì)象?)
Use threading to process file chunk by chunk(使用線程逐塊處理文件)
主站蜘蛛池模板: 99色在线视频 | 97色在线观看免费视频 | 日本天天操 | 精品欧美一区二区久久久伦 | 国产欧美精品一区二区色综合朱莉 | 久久久99精品免费观看 | 毛片区 | 免费日韩av网站 | 91精品国产综合久久精品 | 亚洲国产一区二区三区, | 91久久精品日日躁夜夜躁国产 | 国产精品久久久久久久久 | 国产精品99视频 | 懂色中文一区二区三区在线视频 | 成人精品福利 | 日韩一区二区免费视频 | 91精品国产乱码久久久久久久久 | 91av精品| 中文字幕国产精品 | 国产网站久久 | 欧美电影免费网站 | 久久国产成人精品国产成人亚洲 | 国产欧美视频一区二区 | 91一区二区三区 | 国产一区 日韩 | 亚洲国产精品视频 | 国产成人精品一区二区三区视频 | 欧美激情在线观看一区二区三区 | 国产精品69久久久久水密桃 | 在线观看免费毛片 | 日韩午夜在线播放 | 国产成人精品一区二区 | 国产精品福利网 | 最新中文字幕第一页视频 | 国产日韩欧美在线 | 久久99精品久久 | 亚洲一区二区在线免费观看 | 精品国产黄a∨片高清在线 www.一级片 国产欧美日韩综合精品一区二区 | 亚洲国产成人av好男人在线观看 | 9色网站| 黄色网址免费在线观看 |