11
Introduction to GL Geb Thomas

Introduction to GL Geb Thomas. Example Code int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode ( GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);

Embed Size (px)

Citation preview

Page 1: Introduction to GL Geb Thomas. Example Code int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode ( GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);

Introduction to GL

Geb Thomas

Page 2: Introduction to GL Geb Thomas. Example Code int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode ( GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);

Example Codeint main(int argc, char **argv) {

glutInit(&argc, argv); glutInitDisplayMode ( GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);

glutInitWindowPosition(100,100); glutInitWindowSize(300,300); glutCreateWindow ("square");

glClearColor(0.0, 0.0, 0.0, 0.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0.0, 10.0, 0.0, 10.0, -1.0, 1.0);

glutDisplayFunc(display); glutMainLoop();

return 0;

void display(void)

{

glClear( GL_COLOR_BUFFER_BIT);

glColor3f(0.0, 1.0, 0.0);

glBegin(GL_POLYGON);

glVertex3f(2.0, 4.0, 0.0);

glVertex3f(8.0, 4.0, 0.0);

glVertex3f(8.0, 6.0, 0.0);

glVertex3f(2.0, 6.0, 0.0);

glEnd();

glFlush();

}

Page 3: Introduction to GL Geb Thomas. Example Code int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode ( GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);

What’s Going On?

OpenGL – The graphics calls GLUT – Utility for opening windows Both have header files and libraries

Opengl32.dll, glut32.dll opengl.h, glut32.h

Page 4: Introduction to GL Geb Thomas. Example Code int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode ( GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);

Using GLUT To Initialize the Display

glutInit(&argc, argv); glutInitDisplayMode ( GLUT_SINGLE |

GLUT_RGB | GLUT_DEPTH);

Page 5: Introduction to GL Geb Thomas. Example Code int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode ( GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);

Setting Up and Opening the Window

glutInitWindowPosition(100,100); glutInitWindowSize(300,300); glutCreateWindow ("square");

Page 6: Introduction to GL Geb Thomas. Example Code int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode ( GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);

Setting Up the Matrices

glClearColor(0.0, 0.0, 0.0, 0.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0.0, 10.0, 0.0, 10.0, -1.0,

1.0);

Page 7: Introduction to GL Geb Thomas. Example Code int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode ( GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);

Defining the Drawing Routine

glutDisplayFunc(display);

Page 8: Introduction to GL Geb Thomas. Example Code int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode ( GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);

Drawing Some Stuffvoid display(void)

{

glClear( GL_COLOR_BUFFER_BIT);

glColor3f(0.0, 1.0, 0.0);

glBegin(GL_POLYGON);

glVertex3f(2.0, 4.0, 0.0);

glVertex3f(8.0, 4.0, 0.0);

glVertex3f(8.0, 6.0, 0.0);

glVertex3f(2.0, 6.0, 0.0);

glEnd();

glFlush();

}

Page 9: Introduction to GL Geb Thomas. Example Code int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode ( GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);

Repeating the Loop

glutMainLoop();

Page 10: Introduction to GL Geb Thomas. Example Code int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode ( GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);

Details are Here

www.opengl.org

Good book: Open GL Programmer’s Guide

Page 11: Introduction to GL Geb Thomas. Example Code int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode ( GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);