Using Graphics Libraries - PowerPoint PPT Presentation

Using graphics libraries l.jpg
Download
1 / 21

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

Using Graphics Libraries

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

glutDisplayFunc(display);

glutReshapeFunc(reshape);

glutKeyboardFunc(keyboard);

glutMouseFunc(mouse);

init();

glutMainLoop();

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

    glutXXXFunc(parameter),

    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

    glutXXXFunc(xxx).

  • 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

glutMainLoop()

main

display()

display

Process

keyboard

and mouse

events

reshape()

reshape

keyboard()

keyboard

mouse()

mouse

The Main Loop

Library

Functions


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

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

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.


Example draw a 2d object l.jpg

Example: Draw a 2D Object

  • DrawTeapot.cpp


  • Login