/* * Copyright (c) 1996-1999 Silicon Graphics, Inc. All rights reserved. * * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. * * IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE * POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* shape_d.c - open a window, clear the background, set up * our world, and draw a five-sided polygon. */ #include /* includes gl.h, glu.h */ #include "checkerror.h" /* Function Prototypes */ GLvoid initgfx( GLvoid ); GLvoid drawScene( GLvoid ); void main( int argc, char *argv[] ) { GLsizei width, height; glutInit( &argc, argv ); width = glutGet( GLUT_SCREEN_WIDTH ); height = glutGet( GLUT_SCREEN_HEIGHT ); glutInitWindowPosition( width / 4, height / 4 ); glutInitWindowSize( width / 2, height / 2 ); glutInitDisplayMode( GLUT_RGBA ); glutCreateWindow( argv[0] ); initgfx(); glutDisplayFunc( drawScene ); glutMainLoop(); } GLvoid initgfx( GLvoid ) { /* set the clear color to white */ glClearColor( 1.0f, 1.0f, 1.0f, 1.0f ); /* set up our world */ glOrtho( -3.0f, 3.0f, -3.0f, 3.0f, -1.0f, 1.0f ); } GLvoid drawScene( GLvoid ) { glClear( GL_COLOR_BUFFER_BIT ); /* We'll do all our OpenGL rendering here */ /* Rendering Lab: shape (d) */ glColor3f( 1.0f, 0.0f, 0.0f ); /* red */ glBegin( GL_POLYGON ); glVertex2f( -1.0f, -1.0f ); glVertex2f( 1.0f, -1.0f ); glVertex2f( 1.0f, 1.0f ); glVertex2f( 0.0f, 2.0f ); glVertex2f( -1.0f, 1.0f ); glEnd(); checkError( "drawScene" ); glFlush(); }