Click here to Skip to main content
5,788,212 members and growing! (15,224 online)
Email Password   helpLost your password?
Multimedia » OpenGL » General     Beginner License: The Code Project Open License (CPOL)

A Simple OpenGL Window with GLUT Library

By erjan123

A simple C++ console application to create an OpenGL window using the GLUT library
C++, Windows, OpenGL, Dev, Design

Posted: 1 Feb 2008
Updated: 1 Feb 2008
Views: 7,179
Bookmarked: 10 times
Announcements
Loading...



Search    
Advanced Search
Sitemap
6 votes for this Article.
Popularity: 2.22 Rating: 2.86 out of 5
2 votes, 33.3%
1
0 votes, 0.0%
2
1 vote, 16.7%
3
2 votes, 33.3%
4
1 vote, 16.7%
5
OpenGLBasicWindowImage.jpg

Introduction

This is a very simple C++ console application that creates a simple OpenGL window. The source code is from the book "OpenGL Programming Guide (Third Edition)." This article will explain how to download and include the GLUT library. Once you include the GLUT library, it's very simple to build and execute the code. It explains also the OpenGL code that is used in this program.

Background

You should be able to use Visual Studio 2005 and C++. You should also have some idea about OpenGL.

Using the Code

Steps:

  1. GLUT installation (download the GLUT library)
  2. Copy and paste the GLUT library files to the specific locations
  3. Create a C++ console application
  4. Type the code, build and execute

Step 1

Before you even start a new project, you have to download the GLUT library. You can get the latest version from this link: GLUT 3.7.6 for Windows. Click this (glut-3.7.6-bin.zip (117 KB) ) link and download the ZIP file into your computer.

Step 2

Unzip the folder, copy the glut32.dll file and paste it to C:\WINDOWS\system. Copy the glut32.lib file and paste it to this directory: C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Lib. The last step is to copy the glut.h file and paste it to this directory: C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include\gl. The installation of the GLUT library files is done. However, if you using a different Windows or different Visual Studio version, the directories might be different. I'm assuming that you are using Windows Vista and Visual Studio 2005.

Step 3

Create a C++ console application. You don't need a Windows application. From Visual Studio 2005, select File -> New -> Projects. Select project types Visual C++ -> Win32 and create a Win32 console application.

Step 4

Type the code, build and execute. Make sure to include the <GL/glut.h >.

//Include files
#include "stdafx.h"
#include <GL/glut.h >

The Functions

Function display(void) displays a polygon:

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

    //draw white polygon (rectangle) 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();
}

Function init() initialises GLUT (sets the state):

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);

}

Main function: make sure to change the command-line parameter _TCHAR* to char**.

int _tmain(int argc, char** argv)
{
    //Initialise GLUT with command-line parameters. 
    glutInit(&argc, argv);
    
    //Set Display Mode
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    
    //Set the window size
    glutInitWindowSize(250,250);
    
    //Set the window position
    glutInitWindowPosition(100,100);
    
    //Create the window
    glutCreateWindow("A Simple OpenGL Windows Application with GLUT");
    
    //Call init (initialise GLUT
    init();
    
    //Call "display" function
    glutDisplayFunc(display);
    
    //Enter the GLUT event loop
    glutMainLoop();

    return 0;
}

Variable or class names should be wrapped in <code> tags like this.

Points of Interest

Actually, this program is a very simple OpenGL program. However, if you are new and if you don't know how to initialise the GLUT library, it might take little bit more time to compile the code.

History

Uploaded on 01/29/2008

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

erjan123


None
Occupation: Software Developer
Location: United States United States

Other popular OpenGL articles:

Article Top
Sign Up to vote for this article
You must Sign In to use this message board.
FAQ FAQ Noise ToleranceSearch Search Messages 
 Layout  Per page   
  (Refresh) 
-- There are no messages in this forum --

General General    News News    Question Question    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

PermaLink | Privacy | Terms of Use
Last Updated: 1 Feb 2008
Editor: Genevieve Sovereign
Copyright 2008 by erjan123
Everything else Copyright © CodeProject, 1999-2009
Web12 | Advertise on the Code Project