/* Copyright(c) 1993-1997,Silicon Graphics,Inc. */ /* ALL RIGHTS RESERVED */ /* Permission to use,copy,modify,and distribute this software for */ /* any purpose and without fee is hereby granted,provided that the above */ /* copyright notice appear in all copies and that both the copyright notice */ /* and this permission notice appear in supporting documentation,and that */ /* the name of Silicon Graphics,Inc. not be used in advertising */ /* or publicity pertaining to distribution of the software without specific, */ /* written prior permission. */ /* */ /* THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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,INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT, */ /* SPECIAL,INCIDENTAL,INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY */ /* KIND,OR ANY DAMAGES WHATSOEVER,INCLUDING WITHOUT LIMITATION, */ /* LOSS OF PROFIT,LOSS OF USE,SAVINGS OR REVENUE,OR THE CLAIMS OF */ /* THIRD PARTIES,WHETHER OR NOT SILICON GRAPHICS,INC. HAS BEEN */ /* ADVISED OF THE POSSIBILITY OF SUCH LOSS,HOWEVER CAUSED AND ON */ /* ANY THEORY OF LIABILITY,ARISING OUT OF OR IN CONNECTION WITH THE */ /* POSSESSION,USE OR PERFORMANCE OF THIS SOFTWARE. */ /* */ /* US Government Users Restricted Rights */ /* Use,duplication,or disclosure by the Government is subject to */ /* restrictions set forth in FAR 52.227.19(c)(2) or subparagraph */ /*(c)(1)(ii) of the Rights in Technical Data and Computer Software */ /* clause at DFARS 252.227-7013 and/or in similar or successor */ /* clauses in the FAR or the DOD or NASA FAR Supplement. */ /* Unpublished-- rights reserved under the copyright laws of the */ /* United States. Contractor/manufacturer is Silicon Graphics, */ /* Inc.,2011 N. Shoreline Blvd.,Mountain View,CA 94039-7311. */ /* */ /* OpenGL(R) is a registered trademark of Silicon Graphics,Inc. */ /* */ /* */ /* aargb.c */ /* This program draws shows how to draw anti-aliased lines. It draws */ /* two diagonal lines to form an X; when 'r' is typed in the window, */ /* the lines are rotated in opposite directions. */ /* */ #include #include #include #include #include #include "ModuleCouleurs.h" #include "ModuleManipulateur.h" #include "ModuleMenus.h" #include "ModuleFont.h" #include "ModuleReshape.h" static float rotAngle = 0.; static float v1; static float v2[2]; void myinit(void) { glGetFloatv(GL_LINE_WIDTH_GRANULARITY,&v1); glGetFloatv(GL_LINE_WIDTH_RANGE,v2); glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); glHint(GL_LINE_SMOOTH_HINT,GL_DONT_CARE); glLineWidth(1.5); glClearColor(0.0,0.0,0.0,0.0); } void display(void) { glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glColor3fv(couleurVert()); glPushMatrix(); manipulateurSouris(); manipulateurClavier(); glEnable(GL_LINE_SMOOTH); glEnable(GL_BLEND); glPushMatrix(); glRotatef(-rotAngle,0.0,0.0,0.1); glBegin(GL_LINES); glVertex2f(-5.0F,5.0F); glVertex2f(5.0F,-5.0F); glEnd(); glDisable(GL_LINE_SMOOTH); glDisable(GL_BLEND); glPopMatrix(); glColor3fv(couleurBleu()); glPushMatrix(); glRotatef(rotAngle,0.0,0.0,0.1); glBegin(GL_LINES); glVertex2f(5.0F,5.0F); glVertex2f(-5.0F,-5.0F); glEnd(); glPopMatrix(); glPopMatrix(); glPushMatrix(); glColor4fv(couleurBlanc()); placeFontCursor(getXmin()+0.3F,getYmin()+1.6F,0.0F); simpleBitmapOutput("GL_LINE_WIDTH_GRANULARITY : %3.1f\n",v1); placeFontCursor(getXmin()+0.3F,getYmin()+0.6F,0.0F); simpleBitmapOutput("GL_LINE_WIDTH_RANGE : %3.1f %3.1f\n",v2[0],v2[1]); glPopMatrix(); glFlush(); glutSwapBuffers(); printf("%d\n",glGetError()); } void reshape(int w,int h) { glViewport(0,0,w,h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); if(w <= h) gluOrtho2D(-1.0,1.0, -1.0*(GLfloat)h/w,1.0*(GLfloat)h/w); else gluOrtho2D(-1.0*(GLfloat)w/h,1.0*(GLfloat)w/h, -1.0,1.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } void key(unsigned char key,int x,int y) { if( keyManipulateur(key,x,y) ) glutPostRedisplay(); else switch( key ) { case 'R' : case 'r' : rotAngle += 20.; if(rotAngle >= 360.) rotAngle = 0.; glutPostRedisplay(); break; } } int main(int argc,char **argv) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_RGBA|GLUT_DEPTH|GLUT_DOUBLE); glutInitWindowSize(330,330); glutInitWindowPosition(50,50); glutCreateWindow("Anti Aliasing"); myinit(); creationMenuBasique(); setParametresOrthoBasique(-10.0,10.0,-10.0,10.0,-5.0,5.0); setManipulateurDistance(1.0F); glutReshapeFunc(reshapeOrthoBasique); glutKeyboardFunc(key); glutSpecialFunc(specialBasique); glutMotionFunc(motionBasique); glutMouseFunc(sourisBasique); glutDisplayFunc(display); glutMainLoop(); return(0); }