2011-02-06 11 views
1

コンパイル後にこのコードを実行しようとすると、内容のないウィンドウ境界しか得られないので、どこにエラーがありますか?GLUTの問題

注:私はRenderScene()の最後にglutSwapBuffers()を追加してみてください

gcc -lglut Simple.c -o Simple 

The output

#include <GL/glut.h> // Header File For The GLUT Library 
#include <GL/gl.h> // Header File For The OpenGL Library 
#include <GL/glu.h> // Header File For The GLu Library 

void SetupRC(void); 
void RenderScene(void); 
void ChangeSize(GLsizei w, GLsizei h); 

// Called to draw scene 
void RenderScene(void) 
{ 
    // Clear the window with current clearing color 
    glClear(GL_COLOR_BUFFER_BIT); 

    // set the color to these values 
    //   R G  B 
    glColor3f(56.0f, 19.0f,68.0f); 

    // Draw a filled rectangle with current color 
    glRectf(-25.0f, 50.0f, 50.0f, -25.0f); 

    // Flush drawing commands 
    glFlush(); 
} 

int main(int argc, char* argv[]) 
{ 
    glutInit(&argc, argv); 
    glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); 
    glutInitWindowPosition(400,200); 
    glutInitWindowSize(640,468); 
    glutCreateWindow("Simple"); 
    glutDisplayFunc(RenderScene); 
    glutReshapeFunc(ChangeSize); 

    SetupRC(); 
    glutMainLoop(); 

    return 0; 
} 

// Setup the rendering state 
void SetupRC(void) 
{ 
    glClearColor(0.0f, 2.0f, 1.0f, 0.0f); 
} 

// Handling window resizing 
void ChangeSize(GLsizei w, GLsizei h) 
{ 
    GLfloat aspectRatio; 

    // Prevent divide by zero 
    if (h == 0) 
     h = 1; 

    // Set Viewport to window dimensions 
    glViewport(0, 0, w, h); 

    // Reset coordinate system 
    glMatrixMode(GL_PROJECTION); 
    glLoadIdentity(); 

    // Establish clipping volume (left, right, bottom, top, near, far) 
    aspectRatio = (GLfloat) w/(GLfloat) h; 
    if (w <= h) { 
     glOrtho(-100.0, 100.0, -100/aspectRatio, 100.0/aspectRatio, 1.0, -1.0); 
    } 
    else 
     glOrtho(-100.0 * aspectRatio, 100.0 * aspectRatio, -100.0, 100.0, 1.0, -1.0); 

    glMatrixMode(GL_MODELVIEW); 
    glLoadIdentity(); 
} 
+3

フロートの色は0.0から1.0になります。 unsigned char 255はfloat 1.0にマップされます。それはあなたを助けるかもしれません。 –

+0

ありがとう、私は値を変更しましたが、それは助けになりませんでした –

+1

*何も*(黒のクライアント領域)、またはシアンクリアカラーとボックスを取得しますか?コードは、私のUbuntuシステムでIntel 4500MHDを使ってうまく動作します。 'glxinfo |は何ですか? grep renderer' return? 'glxinfo'は' mesa-utils'にあります。 – genpfault

答えて

2

をコンパイルするためのUbuntuとgccを使用しています。

+0

問題は私のグラフィックスカードであると思う –

0

デプスバッファがあるので、クリアコールにGL_DEPTH_BUFFER_BITも追加する必要があります。

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
関連する問題