我确信有一个非常简单的解决方案,但对我来说,这是我第一次使用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
}
如果您需要任何其他代码,请询问,我认为我的问题就在那里。
这是屏幕截图