iPhone用のopengl es 1.1を使用しています。
私はもともとポートレート用にすべてを書きましたが、見栄えが良かったのですが、ランドスケープモードに切り替えると、グラフィックが引き伸ばされたように見えます...
これを伸ばす方法の手がかりはありますか?
私は基本的にこのチュートリアルに従っていますが、正方形を追加し、shouldAutorotateToInterfaceOrientation を追加しましたが、グラフィックはまだ引き伸ばされています: http://www.71squared.com/2011/03/tutorial-14-moving-to-3d/
コード:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
- (void)drawFrame
{
[(EAGLView *)self.view setFramebuffer];
// Replace the implementation of this method to do your own custom drawing.
static const GLfloat squareVertices[] = {
-0.33f, -0.33f, 0.0f,
0.33f, -0.33f, 0.0f,
-0.33f, 0.33f, 0.0f,
0.33f, 0.33f, 0.0f
};
static const GLubyte squareColors[] = {
255, 255, 0, 255,
0, 255, 255, 255,
0, 0, 0, 0,
255, 0, 255, 255,
};
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
// Position the camera back from the origin and slightly raised i.e. {0, 3, -6}
static GLfloat z = 0;
gluLookAt(0, 5, -10, 0, 0, 0, 0, 1, 0);
z += 0.075f;
// GL DRAW ARRAYS STUFF GOES HERE
[(EAGLView *)self.view presentFramebuffer];
}
- (void)initOpenGLES1
{
// Set the clear color
glClearColor(0, 0, 0, 1.0f);
// Projection Matrix config
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
CGSize layerSize = self.view.layer.frame.size;
gluPerspective(45.0f, (GLfloat)layerSize.width / (GLfloat)layerSize.height, 0.1f, 750.0f);
// Modelview Matrix config
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
// This next line is not really needed as it is the default for OpenGL ES
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glDisable(GL_BLEND);
// Enable depth testing
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LESS);
glDepthMask(GL_TRUE);
}