OpenGL ES (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
상태 표시 줄은 높이가 20px 밖에되지 않지만 .... –