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

使用 OpenGL 代替 Canvas - Android

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

問題描述

我正在嘗試用更快的 opengl-es 表面替換我已經擁有的基于 Canvas 的渲染系統,但是,我似乎無法讓 openGL 渲染器以充當 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.

我當前的渲染器代碼如下:

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);    
    }

如何設置渲染器以使平移轉換與屏幕上的像素匹配?(所以向右平移 5 會將其移動 5 個像素)

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)

推薦答案

請注意,在 openGL 中,Y 坐標是倒置的.否則一切都是一樣的.
至于正確的標志,我建議你查看開源的安卓游戲副本島: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.

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

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

相關文檔推薦

How to wrap text around components in a JTextPane?(如何在 JTextPane 中的組件周圍環繞文本?)
MyBatis, how to get the auto generated key of an insert? [MySql](MyBatis,如何獲取插入的自動生成密鑰?[MySql])
Inserting to Oracle Nested Table in Java(在 Java 中插入 Oracle 嵌套表)
Java: How to insert CLOB into oracle database(Java:如何將 CLOB 插入 oracle 數據庫)
Why does Spring-data-jdbc not save my Car object?(為什么 Spring-data-jdbc 不保存我的 Car 對象?)
Use threading to process file chunk by chunk(使用線程逐塊處理文件)
主站蜘蛛池模板: 久草视频网站 | 丁香六月伊人 | 欧美日韩在线观看一区二区三区 | 天天干天天爱天天操 | 中文字幕 在线观看 | 粉嫩国产精品一区二区在线观看 | 99re在线视频免费观看 | 黄色91在线 | 国产亚洲欧美另类一区二区三区 | 精品三区 | 中文字幕一区二区三区精彩视频 | 青青草一区二区 | 99久久婷婷国产亚洲终合精品 | 一级爱爱片 | 一本色道久久综合亚洲精品高清 | 国精产品一区二区三区 | 国产精品呻吟久久av凹凸 | 日韩综合在线 | 精品国产一区二区久久 | 国产精品视频一区二区三 | 成人精品鲁一区一区二区 | 免费日本视频 | 国产精品一区二区日韩 | 国产成人一区二区 | 久久国产亚洲精品 | 国产欧美一区二区三区免费 | 日本成人免费网站 | 国产专区在线 | 在线成人福利 | 日韩免费一区 | 一区二区中文字幕 | 乱一性一乱一交一视频a∨ 色爱av | 中国毛片免费 | 日韩欧美一级精品久久 | 羞羞的视频在线看 | 91精品国产综合久久婷婷香蕉 | 91精品国产91久久久久久 | 亚洲www | 91视频一88av| 欧美v在线| 久久99精品国产麻豆婷婷 |