Android上的OpenGL ES全屏

时间:2011-09-18 01:25:39

标签: android opengl-es

我确信有一个非常简单的解决方案,但对我来说,这是我第一次使用OpenGL进行编码。

我看了一些关于在OpenGL上阅读的教程,现在我只是在屏幕上翻译一些位图。当它在我的手机上它看起来很好,但是当我尝试在我的平板电脑上运行时,它看起来像是限制在我手机大小的屏幕上(大致)。显然我希望它能够扩展到屏幕尺寸,我在这里做错了什么?我附上了一些代码,这里是正在发生的事情的截图(我已经将背景设置为红色,因此很容易看到我在说什么)。谢谢!

public void onSurfaceCreated(GL10 gl, EGLConfig config) {       
    //Settings
    gl.glEnable(GL10.GL_TEXTURE_2D);                    //Enable Texture Mapping
    gl.glShadeModel(GL10.GL_SMOOTH);                    //Enable Smooth Shading
    gl.glClearColor(1.0f, 0.0f, 0.0f, 0.5f);            //Black Background
    gl.glClearDepthf(1.0f);                             //Depth Buffer Setup

    //Really Nice Perspective Calculations
    gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_NICEST);

    gl.glEnable(GL10.GL_BLEND);                         //Enable blending
    gl.glDisable(GL10.GL_DEPTH_TEST);                   //Disable depth test
    gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE);     //Set The Blending Function For Translucency        

    //Initiate our stars class with the number of stars
    stars = new Stars(num);
    //Load the texture for the stars once during Surface creation
    stars.loadGLTexture(gl, this.context);
}

public void onSurfaceChanged(GL10 gl, int width, int height) {
    /*if(height == 0) {                         //Prevent A Divide By Zero By
        height = 1;                         //Making Height Equal One
    }*/

    gl.glViewport(0, 0, width, height);     //Reset The Current Viewport
    gl.glMatrixMode(GL10.GL_PROJECTION);    //Select The Projection Matrix
    gl.glLoadIdentity();                    //Reset The Projection Matrix


    //Calculate The Aspect Ratio Of The Window
    GLU.gluPerspective(gl, 45.0f, (float)width / (float)height, 0.1f, 100.0f);

    gl.glMatrixMode(GL10.GL_MODELVIEW);     //Select The Modelview Matrix
    gl.glLoadIdentity();                    //Reset The Modelview Matrix
}

如果您需要任何其他代码,请询问,我认为我的问题就在那里。

这是屏幕截图enter image description here

0 个答案:

没有答案