我想第一次使用openGL ES(for iPhone)渲染紋理,然後在屏幕上顯示紋理。除了在紋理頂部存在32行間隙並且底部32行被切斷之外,所有工作都是可行的。這就像我所有的繪圖正在向下偏移32個像素,這導致底部的32行沒有被繪製,因爲它們在紋理之外。在opengl es紋理頂部有32個像素間隙
這裏是一個非常簡單的例子:
void RenderToTexture(int texture)
{
unsigned char buffer[4 * 320 * 480];
unsigned char colour[4];
colour[0] = 255;
colour[1] = 0;
colour[2] = 0;
colour[3] = 128;
for (int i = 0; i < 4 * 320 * 480; i += 4)
{
buffer[i] = colour[0];
buffer[i+1] = colour[1];
buffer[i+2] = colour[2];
buffer[i+3] = colour[3];
}
glBindTexture(GL_TEXTURE_2D, texture);
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 320, 480, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
}
而這裏的結果:
只設置使用glColor4f(顏色),而不是調用RenderToTexture()導致紅屏如預期。
任何幫助將不勝感激,謝謝。
在可可中,空間被引入來放置狀態欄。使用這一行刪除它:self.frame = [[UIScreen mainScreen] bounds]; – Raptor 2009-10-20 06:20:21
雖然狀態欄只有20px高.... – 2009-10-20 06:21:53