GLPaint 示例项目使用 GL_POINT_SPRITE 在您移动画笔时绘制画笔纹理的副本。在 iPhone 上,glPointSize 被限制为 64x64 像素。这是一个硬件限制,在模拟器中我认为你可以把它做得更大。
听起来您正在尝试使用 GL_POINT_SPRITE 方法来绘制背景图像,而这确实不是您想要的。相反,请尝试绘制一个填充屏幕的平面纹理框。
这是一些 OpenGL 代码,它为 2D 框设置顶点和 texcoords,然后绘制它:
const GLfloat verticies[] = {
0.0f, 0.0f,
1.0f, 0.0f,
0.0f, 1.0f,
1.0f, 1.0f,
};
const GLfloat texcoords[] = {
0, 0,
1, 0,
0, 1,
1, 1,
};
glVertexPointer(2, GL_FLOAT, 0, verticies);
glEnableClientState(GL_VERTEX_ARRAY);
glTexCoordPointer(2, GL_FLOAT, 0, texcoords);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, texture);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
希望有帮助!请注意,您需要根据相机投影的设置方式指定不同的顶点。就我而言,我使用下面的代码设置了我的 GL_MODELVIEW - 我不确定 GLPaint 示例是如何做到的。
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glOrtho(0, 1.0, 0, 1.0, -1, 1);