相关疑难解决方法(0)

使用OpenGL取代Canvas - Android

我试图用更快的opengl-es表面替换我已经拥有的基于Canvas的渲染系统,但是,我似乎无法使openGL渲染器符合这样一种方式,即它充当2d字段,而不是透视图.

我当前的渲染器代码如下所示:

     @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);    
    }
Run Code Online (Sandbox Code Playgroud)

如何设置渲染器以使转换变换与屏幕上的像素匹配?(所以将5向右翻译会将其移动5个像素)

java android opengl-es renderer

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×1

java ×1

opengl-es ×1

renderer ×1