2011-11-12 4 views
0

빨간색 책 의 8 장에있는 glDrawPixels 예제 (불완전 함)를 볼 수는 있지만 아무 것도 볼 수 없습니다 (코드가 실행되는 검은 색 화면이 표시됨). 모든 아이디어를 내가 뭐하는 거지 잘못?glDrawPixels : 프로그램 출력을 볼 수 없습니다.

#include <GL/glut.h> 

#define CHECK_IMAGE_WIDTH 64 
#define CHECK_IMAGE_HEIGHT 64 
static GLubyte checkImage[CHECK_IMAGE_WIDTH][CHECK_IMAGE_HEIGHT][3]; 

void makeCheckImage(void) { 

    int i, j, c; 

    for (i = 0; i < CHECK_IMAGE_HEIGHT; i++) 

    for (j = 0; j < CHECK_IMAGE_WIDTH; j++) { 

     checkImage[i][j][0] = (GLubyte) 255; 
     checkImage[i][j][1] = (GLubyte) i == j ? 255 : 0; 
     checkImage[i][j][2] = (GLubyte) 255; 

    } 

} 

void init() { 
    glClearColor(0.0, 0.0, 0.0, 0.0); 
    glShadeModel(GL_FLAT); 
    makeCheckImage(); 
    glPixelStorei(GL_UNPACK_ALIGNMENT, 1); 
} 

void display() { 
    glClear(GL_COLOR_BUFFER_BIT); 
    glRasterPos2i(0, 0); 
    glDrawPixels(CHECK_IMAGE_WIDTH, CHECK_IMAGE_HEIGHT, GL_RGB, GL_UNSIGNED_BYTE, checkImage); 
    glFlush(); 
} 

void reshape(int w, int h) { 
    gluOrtho2D(-10.0f, 10.0f, -10.0f, 10.0f); 
    glViewport(0, 0, w, h); 
} 

int main(int argc, char **argv) { 
    glutInit(&argc, argv); 
    glutInitDisplayMode(GLUT_RGB); 
    glutCreateWindow(argv[0]); 
    glutDisplayFunc(display); 
    glutReshapeFunc(reshape); 
    glutMainLoop(); 
    return 0; 
} 

답변

4

귀하의 코드는 내용으로 바둑판 이미지를 초기화 초기화 호출을 벗어났습니다. 문제를 고정 init(); 바로

+0

glutMainLoop(); 전에 감사를 추가합니다. 그것을 발견했습니다해야 –

+3

@ JohnGoche, 그 질문에 답했다면 estion, 당신은 그것을 받아 들일 수 있습니다 (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work). – Bart

관련 문제