2011-11-12 18 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

あなたのコードは、コンテンツとチェッカーボード画像を初期化する初期化コールを、ミス。右の問題を修正しglutMainLoop();

+0

おかげで、前init();を追加しますが。それに気づいているべき –

+3

@JohnGocheもしあなたの質問に答えたらあなたは[それを受け入れる]ことができます(http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。 – Bart

関連する問題