Using graphics libraries
1 / 21

Windows Programming - PowerPoint PPT Presentation

  • Updated On :

Using Graphics Libraries Lecture 3 Mon, Sep 1, 2003 Graphics Libraries Theoretically, with only a function setPixel(x, y, red, green, blue), we could create any graphics image. However, it would be quite tedious.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Windows Programming' - Faraday

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Using graphics libraries l.jpg

Using Graphics Libraries

Lecture 3

Mon, Sep 1, 2003

Graphics libraries l.jpg
Graphics Libraries

  • Theoretically, with only a function

    setPixel(x, y, red, green, blue),

    we could create any graphics image.

  • However, it would be quite tedious.

  • A graphics library provides an abundance of useful functions to simplify the task of creating graphics.

Device independence l.jpg
Device Independence

  • A library is device-independent if it provides a common API, regardless of the hardware on which it is used.

  • The OpenGL API for Windows is identical to the OpenGL API for the Macintosh.

  • Of course, the library must be compiled separately for each hardware system.

Windows based programming l.jpg
Windows-Based Programming

  • OpenGL consists of three libraries

    • gl – graphics library

      • Basic functions.

    • glu – graphics library utility

      • Composites of basic GL functions.

    • glut – graphics library utility toolkit

      • Functions that interact with the windowing system.

Window based programming l.jpg
Window-based Programming

int main(int argc, char* argv[])


glutInit(&argc, argv);

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);

glutInitWindowSize(screenWidth, screenHeight);

glutInitWindowPosition(100, 150);

glutCreateWindow(“My Window Title");







return 0;


Window based programming6 l.jpg
Window-Based Programming

  • The glut functions are used in main() to create and open a graphics window.

  • Functions used to create a graphics window.

    • glutInit(&argc, argv).

    • glutInitDisplayWindow(options).

    • glutInitWindowSize(width, height).

    • glutInitWindowPosition(x, y).

    • glutCreateWindow(name).

Windows based programming7 l.jpg
Windows-Based Programming

  • glutInit(&argc, argv).

    • Initializes the glut library.

    • Should be called before any other glut function.

    • Must receive the command-line arguments.

  • glutInitDisplayMode(options).

    • Specifies color mode.

    • Specifies single or double buffering.

Windows based programming8 l.jpg
Windows-Based Programming

  • glutInitWindowSize(width, height).

    • Sets the height and width of the window in pixels.

  • glutInitWindowPosition(x, y).

    • Sets the position of the upper left corner of the window.

  • glutCreateWindow(name).

    • Creates, but does not display, the window.

Callback functions l.jpg
Callback Functions

  • A callback function is a user-specified function that the library will call whenever necessary.

  • Each callback function must be registered with glut.

  • glut provides for over 20 callbacks.

Callback functions10 l.jpg
Callback Functions

  • The glut library contains functions with names of the form


    where XXX stands for some form of windows interaction (mouse, keyboard, etc.).

  • The parameter is a user-defined function xxx().

Callback functions11 l.jpg
Callback Functions

  • In the main function we write


  • Then when XXX is activated by the user (mouse click, keystroke, etc.), the function xxx() is called to handle the event.

Opengl callback functions l.jpg
OpenGL Callback Functions

  • glutDisplayFunc(display);

    • Called whenever the scene needs to be redrawn.

    • Activated by calls to glutPostRedisplay().

  • glutReshapeFunc(reshape);

    • Called whenever the window is resized.

    • Activated by resizing the window.

    • Warning: This does not respond to iconifying the window.

Opengl callback functions13 l.jpg
OpenGL Callback Functions

  • glutMouseFunc(mouse)

    • Called whenever the mouse is clicked.

    • Activated by mouse clicks.

    • Left or right, up or down.

  • glutKeyboardFunc(keyboard)

    • Called whenever a key is pressed.

    • Activated by keystrokes (down only) of an ASCII key (letters, digits, punctuation).

Opengl callback functions14 l.jpg
OpenGL Callback Functions

  • glutSpecialFunc(special)

    • Called whenever a special key is pressed.

    • Activated by keystrokes (down only) of a non-ASCII key (function key, arrow key, etc.).

  • glutMotionFunc(motion)

    • Called whenever the mouse is moved while the button is pressed.

Opengl callback functions15 l.jpg
OpenGL Callback Functions

  • glutPassiveMotionFunc(passiveMotion)

    • Called whenever the mouse is moved while the button is not pressed.

  • glutIdleFunc(idle)

    • Called whenever nothing else is happening.

The main loop l.jpg
The Main Loop

  • Typically main() ends by calling

    • glutMainLoop()

  • This function runs forever.

  • It calls the callback functions as necessary.

  • It handles all drawing commands as they are generated.

The main loop17 l.jpg







and mouse








The Main Loop



Example callback functions l.jpg
Example: Callback Functions

  • CallbackTest.cpp

Other initializations l.jpg
Other Initializations

void init()


glClearColor(0.8, 0.8, 0.8, 0.0); // light gray

glColor3f(0.0f, 0.0f, 0.0f); // black



gluOrtho2D(xmin, xmax, ymin, ymax);

glViewport(0, 0, screenWidth, screenHeight);


World coordinates l.jpg
World Coordinates

  • The call to gluOrtho2D() establishes the world coordinates of the window.

    gluOrtho2D(xmin, xmax, ymin, ymax)

  • The x-coordinates go from xmin to xmax from left to right.

  • The y-coordinates go from ymin to ymax from bottom to top.