L'exécutable

AARGB01.gif (7432 octets) AARGB02.gif (2693 octets)

Le source : AArgb.cpp

/* 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);
}

Les modules utilitaires : Modules.zip

RETOUR