tags:

views:

44

answers:

1

I'm new to OpenGL and GLUT and need help installing them and running hello.c (see below) in Visual C++ 2010 Express Edition.

I'm using Windows XP and was reading on the OpenGL wiki that the OpenGL Library is already installed on my computer. As a result, I only downloaded GLUT for Win32 dll, lib and header file and extracted it.

I have 4 questions:

  1. If OpenGL is already installed, how do I find it and use it in my Visual C++ project?
  2. The OpenGL wiki mentioned that opengl32.dll is located in windows/system32 folder - so what do I do with this dll?
  3. Do I just add glut.h to Visual C++ Solution Explorer's header files folder?
  4. Where do I put glut32.dll, glut32.lib and glut.def?

Any assistance will be greatly appreciated. Thanks in advance.

hello.c was taken from OpenGL Programming Guide Chapter 1

// hello.c renders a white rectangle on a black background
#include <GL/gl.h>
#include <GL/glut.h>

void display(void)
{
    // clear all pixels
    glClear(GL_COLOR_BUFFER_BIT);

    //  draw white polygon with corners at (0.25,0.25,0.0) and (0.75,0.75,0.0)    
    glColor3f(1.0,1.0,1.0);
    glBegin(GL_POLYGON);
        glVertex3f(0.25,0.25,0.0);
        glVertex3f(0.75,0.25,0.0);
        glVertex3f(0.75,0.75,0.0);
        glVertex3f(0.25,0.75,0.0);
    glEnd();   

    // don't wait, start processing buffered OpenGL routines
    glFlush();
}

void init(void)
{
    // select clearing (background) color   
    glClearColor(0.0, 0.0, 0.0, 0.0);

    // initialize viewing values
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
}

/*
    Declare initial window size, position, and display mode
    (single buffer and RGBA). Open window with "hello"
    in its title bar. Call initiaization routines. 
    Register callback function to display graphics.
    Enter main loop and process events

*/

int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    glutInitWindowSize(250,250);
    glutInitWindowPosition(100,100);
    glutreateWindow("Hello");
    init();
    glutDisplayFunc(display);
    glutMainLoop();
    return 0; // ISO C requires main to return int   
}
+2  A: 

Duplicate question, see http://stackoverflow.com/questions/14264/using-glut-with-visual-c-express-edition.

Apart from that: I would definitely consider using the Simple DirectMedia Layer (http://www.libsdl.org/) as a more modern and frequently updated replacement for the venerable GLUT.

Greg S