using graphics libraries l.
Skip this Video
Loading SlideShow in 5 Seconds..
Using Graphics Libraries PowerPoint Presentation
Download Presentation
Using Graphics Libraries

Loading in 2 Seconds...

play fullscreen
1 / 21

Using Graphics Libraries - PowerPoint PPT Presentation

  • Uploaded 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 'Using Graphics Libraries' - 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

Using Graphics Libraries

Lecture 3

Mon, Sep 1, 2003

graphics libraries
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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







and mouse








The Main Loop



other initializations
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
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.