/* 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 <stdlib.h>
#include <stdio.h>
#include <GL/glut.h>
#include <GL/gl.h>
#include <GL/glu.h>
#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);
}