$(DIRECTORY)/docs/RELNOTES* \
$(DIRECTORY)/docs/*.spec \
$(DIRECTORY)/include/GL/internal/glcore.h \
- $(DIRECTORY)/include/GL/dmesa.h \
$(DIRECTORY)/include/GL/gl.h \
$(DIRECTORY)/include/GL/glext.h \
$(DIRECTORY)/include/GL/gl_mangle.h \
+++ /dev/null
-## Process this file with automake to produce Makefile.in
-
-GLincludedir = $(includedir)/GL
-
-INC_GGI = ggimesa.h
-INC_OSMESA = osmesa.h
-INC_SVGA = svgamesa.h
-INC_X11 = glx.h glxext.h glx_mangle.h
-INC_GLUT = glut.h glutf90.h
-
-if HAVE_GGI
-sel_inc_ggi = $(INC_GGI)
-endif
-
-if HAVE_OSMESA
-sel_inc_osmesa = $(INC_OSMESA)
-endif
-
-if HAVE_SVGA
-sel_inc_svga = $(INC_SVGA)
-endif
-
-if HAVE_X11
-sel_inc_x11 = $(INC_X11)
-endif
-
-if NEED_GLUT
-sel_inc_glut = $(INC_GLUT)
-endif
-
-EXTRA_HEADERS = amesa.h foomesa.h glut_h.dja mesa_wgl.h mglmesa.h \
- vms_x_fix.h wmesa.h \
- $(INC_GGI) $(INC_OSMESA) $(INC_SVGA) $(INC_X11) $(INC_GLUT)
-
-GLinclude_HEADERS = gl.h glext.h gl_mangle.h glu.h glu_mangle.h \
- $(sel_inc_ggi) $(sel_inc_osmesa) $(sel_inc_svga) \
- $(sel_inc_x11) $(sel_inc_glut)
-include $(top_srcdir)/common_rules.make
+++ /dev/null
-/*
- * Mesa 3-D graphics library
- * Version: 6.1
- *
- * Copyright (C) 1999-2004 Brian Paul All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/*
- * DOS/DJGPP device driver for Mesa
- *
- * Author: Daniel Borca
- * Email : dborca@users.sourceforge.net
- * Web : http://www.geocities.com/dborca
- */
-
-
-#ifndef DMESA_H_included
-#define DMESA_H_included
-
-#define DMESA_MAJOR_VERSION 6
-#define DMESA_MINOR_VERSION 5
-
-/* Sample Usage:
- *
- * 1. Call DMesaCreateVisual() to initialize graphics.
- * 2. Call DMesaCreateContext() to create a DMesa rendering context.
- * 3. Call DMesaCreateBuffer() to define the window.
- * 4. Call DMesaMakeCurrent() to bind the DMesaBuffer to a DMesaContext.
- * 5. Make gl* calls to render your graphics.
- * 6. Use DMesaSwapBuffers() when double buffering to swap front/back buffers.
- * 7. Before exiting, destroy DMesaBuffer, DMesaContext and DMesaVisual.
- */
-
-typedef struct dmesa_context *DMesaContext;
-typedef struct dmesa_visual *DMesaVisual;
-typedef struct dmesa_buffer *DMesaBuffer;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Create a new Visual and set graphics mode.
- */
-DMesaVisual DMesaCreateVisual (GLint width, /* X res */
- GLint height, /* Y res */
- GLint colDepth, /* BPP */
- GLint refresh, /* refresh rate: 0=default */
- GLboolean dbFlag, /* double-buffered */
- GLboolean rgbFlag, /* RGB mode */
- GLint alphaSize, /* requested bits/alpha */
- GLint depthSize, /* requested bits/depth */
- GLint stencilSize, /* requested bits/stencil */
- GLint accumSize); /* requested bits/accum */
-
-/*
- * Destroy Visual and restore screen.
- */
-void DMesaDestroyVisual (DMesaVisual v);
-
-
-
-/*
- * Create a new Context for rendering.
- */
-DMesaContext DMesaCreateContext (DMesaVisual visual, DMesaContext share);
-
-/*
- * Destroy Context.
- */
-void DMesaDestroyContext (DMesaContext c);
-
-/*
- * Return a handle to the current context.
- */
-DMesaContext DMesaGetCurrentContext (void);
-
-
-
-/*
- * Create a new Buffer (window).
- */
-DMesaBuffer DMesaCreateBuffer (DMesaVisual visual,
- GLint xpos, GLint ypos,
- GLint width, GLint height);
-
-/*
- * Destroy Buffer.
- */
-void DMesaDestroyBuffer (DMesaBuffer b);
-
-/*
- * Return a handle to the current buffer.
- */
-DMesaBuffer DMesaGetCurrentBuffer (void);
-
-/*
- * Swap the front and back buffers for the given Buffer.
- * No action is taken if the buffer is not double buffered.
- */
-void DMesaSwapBuffers (DMesaBuffer b);
-
-/*
- * Bind Buffer to Context and make the Context the current one.
- */
-GLboolean DMesaMakeCurrent (DMesaContext c, DMesaBuffer b);
-
-
-
-/*
- * Move/Resize current Buffer.
- */
-GLboolean DMesaMoveBuffer (GLint xpos, GLint ypos);
-GLboolean DMesaResizeBuffer (GLint width, GLint height);
-
-/*
- * Set palette index, using normalized values.
- */
-void DMesaSetCI (int ndx, GLfloat red, GLfloat green, GLfloat blue);
-
-/*
- * DMesa functions
- */
-typedef void (*DMesaProc) ();
-DMesaProc DMesaGetProcAddress (const char *name);
-
-/*
- * DMesa state retrieval.
- */
-#define DMESA_GET_SCREEN_SIZE 0x0100
-#define DMESA_GET_DRIVER_CAPS 0x0200
-#define DMESA_GET_VIDEO_MODES 0x0300
-#define DMESA_GET_BUFFER_ADDR 0x0400
-
-#define DMESA_DRIVER_DBL_BIT 0x1 /* double-buffered */
-#define DMESA_DRIVER_YUP_BIT 0x2 /* lower-left window origin */
-int DMesaGetIntegerv (GLenum pname, GLint *params);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
+++ /dev/null
-/*
- * Mesa 3-D graphics library GGI bindings (GGIGL [giggle])
- * Version: 4.0
- * Copyright (C) 1995-2000 Brian Paul
- * Copyright (C) 1998 Uwe Maurer
- * Copyrigth (C) 2001 Filip Spacek
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free
- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#ifndef GGIMESA_H
-#define GGIMESA_H
-
-#define GGIMESA_MAJOR_VERSION 4
-#define GGIMESA_MINOR_VERSION 0
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <ggi/ggi.h>
-#include "GL/gl.h"
-
-typedef struct ggi_mesa_context *ggi_mesa_context_t;
-
-/*
- * Initialize Mesa GGI extension
- */
-int ggiMesaInit(void);
-/*
- * Clean up Mesa GGI exension
- */
-int ggiMesaExit(void);
-
-/*
- * Attach Mesa GGI extension to the visual 'vis'
- */
-int ggiMesaAttach(ggi_visual_t vis);
-/*
- * Detach Mesa GGI extension from the visual 'vis'
- */
-int ggiMesaDetach(ggi_visual_t vis);
-
-int ggiMesaExtendVisual(ggi_visual_t vis, GLboolean alpha_flag,
- GLboolean stereo_flag, GLint depth_size,
- GLint stencil_size, GLint accum_red_size,
- GLint accum_green_size, GLint accum_blue_size,
- GLint accum_alpha_size, GLint num_samples);
-
-/*
- * Create a new context capable of displaying on the visual vis.
- */
-ggi_mesa_context_t ggiMesaCreateContext(ggi_visual_t vis);
-/*
- * Destroy the context 'ctx'
- */
-void ggiMesaDestroyContext(ggi_mesa_context_t ctx);
-
-/*
- * Make context 'ctx' the current context and bind it to visual 'vis'.
- * Note that the context must have been created with respect to that visual.
- */
-void ggiMesaMakeCurrent(ggi_mesa_context_t ctx, ggi_visual_t vis);
-
-void ggiMesaSwapBuffers(void);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
+++ /dev/null
-
-/*
- * Spinning gears demo for Linux SVGA/Mesa interface in 32K color mode.
- *
- * Compile with: gcc vgears.c -I../include -L../lib -lMesaGL -lX11 -lXext
- * -lvga -lm -o vgears
- *
- * This program is in the public domain.
- * Brian Paul, January 1996
- */
-
-
-#include <vga.h>
-#include <math.h>
-#include "GL/svgamesa.h"
-#include "GL/gl.h"
-
-
-int width = 800, height = 600;
-
-SVGAMesaContext vmc;
-
-
-
-/*
- * Draw a gear wheel. You'll probably want to call this function when
- * building a display list since we do a lot of trig here.
- *
- * Input: inner_radius - radius of hole at center
- * outer_radius - radius at center of teeth
- * width - width of gear
- * teeth - number of teeth
- * tooth_depth - depth of tooth
- */
-static void gear( GLfloat inner_radius, GLfloat outer_radius, GLfloat width,
- GLint teeth, GLfloat tooth_depth )
-{
- GLint i;
- GLfloat r0, r1, r2;
- GLfloat angle, da;
- GLfloat u, v, len;
-
- r0 = inner_radius;
- r1 = outer_radius - tooth_depth/2.0;
- r2 = outer_radius + tooth_depth/2.0;
-
- da = 2.0*M_PI / teeth / 4.0;
-
- glShadeModel( GL_FLAT );
-
- glNormal3f( 0.0, 0.0, 1.0 );
-
- /* draw front face */
- glBegin( GL_QUAD_STRIP );
- for (i=0;i<=teeth;i++) {
- angle = i * 2.0*M_PI / teeth;
- glVertex3f( r0*cos(angle), r0*sin(angle), width*0.5 );
- glVertex3f( r1*cos(angle), r1*sin(angle), width*0.5 );
- glVertex3f( r0*cos(angle), r0*sin(angle), width*0.5 );
- glVertex3f( r1*cos(angle+3*da), r1*sin(angle+3*da), width*0.5 );
- }
- glEnd();
-
- /* draw front sides of teeth */
- glBegin( GL_QUADS );
- da = 2.0*M_PI / teeth / 4.0;
- for (i=0;i<teeth;i++) {
- angle = i * 2.0*M_PI / teeth;
-
- glVertex3f( r1*cos(angle), r1*sin(angle), width*0.5 );
- glVertex3f( r2*cos(angle+da), r2*sin(angle+da), width*0.5 );
- glVertex3f( r2*cos(angle+2*da), r2*sin(angle+2*da), width*0.5 );
- glVertex3f( r1*cos(angle+3*da), r1*sin(angle+3*da), width*0.5 );
- }
- glEnd();
-
-
- glNormal3f( 0.0, 0.0, -1.0 );
-
- /* draw back face */
- glBegin( GL_QUAD_STRIP );
- for (i=0;i<=teeth;i++) {
- angle = i * 2.0*M_PI / teeth;
- glVertex3f( r1*cos(angle), r1*sin(angle), -width*0.5 );
- glVertex3f( r0*cos(angle), r0*sin(angle), -width*0.5 );
- glVertex3f( r1*cos(angle+3*da), r1*sin(angle+3*da), -width*0.5 );
- glVertex3f( r0*cos(angle), r0*sin(angle), -width*0.5 );
- }
- glEnd();
-
- /* draw back sides of teeth */
- glBegin( GL_QUADS );
- da = 2.0*M_PI / teeth / 4.0;
- for (i=0;i<teeth;i++) {
- angle = i * 2.0*M_PI / teeth;
-
- glVertex3f( r1*cos(angle+3*da), r1*sin(angle+3*da), -width*0.5 );
- glVertex3f( r2*cos(angle+2*da), r2*sin(angle+2*da), -width*0.5 );
- glVertex3f( r2*cos(angle+da), r2*sin(angle+da), -width*0.5 );
- glVertex3f( r1*cos(angle), r1*sin(angle), -width*0.5 );
- }
- glEnd();
-
-
- /* draw outward faces of teeth */
- glBegin( GL_QUAD_STRIP );
- for (i=0;i<teeth;i++) {
- angle = i * 2.0*M_PI / teeth;
-
- glVertex3f( r1*cos(angle), r1*sin(angle), width*0.5 );
- glVertex3f( r1*cos(angle), r1*sin(angle), -width*0.5 );
- u = r2*cos(angle+da) - r1*cos(angle);
- v = r2*sin(angle+da) - r1*sin(angle);
- len = sqrt( u*u + v*v );
- u /= len;
- v /= len;
- glNormal3f( v, -u, 0.0 );
- glVertex3f( r2*cos(angle+da), r2*sin(angle+da), width*0.5 );
- glVertex3f( r2*cos(angle+da), r2*sin(angle+da), -width*0.5 );
- glNormal3f( cos(angle), sin(angle), 0.0 );
- glVertex3f( r2*cos(angle+2*da), r2*sin(angle+2*da), width*0.5 );
- glVertex3f( r2*cos(angle+2*da), r2*sin(angle+2*da), -width*0.5 );
- u = r1*cos(angle+3*da) - r2*cos(angle+2*da);
- v = r1*sin(angle+3*da) - r2*sin(angle+2*da);
- glNormal3f( v, -u, 0.0 );
- glVertex3f( r1*cos(angle+3*da), r1*sin(angle+3*da), width*0.5 );
- glVertex3f( r1*cos(angle+3*da), r1*sin(angle+3*da), -width*0.5 );
- glNormal3f( cos(angle), sin(angle), 0.0 );
- }
-
- glVertex3f( r1*cos(0), r1*sin(0), width*0.5 );
- glVertex3f( r1*cos(0), r1*sin(0), -width*0.5 );
-
- glEnd();
-
-
- glShadeModel( GL_SMOOTH );
-
- /* draw inside radius cylinder */
- glBegin( GL_QUAD_STRIP );
- for (i=0;i<=teeth;i++) {
- angle = i * 2.0*M_PI / teeth;
- glNormal3f( -cos(angle), -sin(angle), 0.0 );
- glVertex3f( r0*cos(angle), r0*sin(angle), -width*0.5 );
- glVertex3f( r0*cos(angle), r0*sin(angle), width*0.5 );
- }
- glEnd();
-
-}
-
-
-static GLfloat view_rotx=20.0, view_roty=30.0, view_rotz=0.0;
-static GLint gear1, gear2, gear3;
-static GLfloat angle = 0.0;
-
-static GLuint limit;
-static GLuint count = 1;
-
-
-static void draw( void )
-{
- angle += 2.0;
-
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- glPushMatrix();
- glRotatef( view_rotx, 1.0, 0.0, 0.0 );
- glRotatef( view_roty, 0.0, 1.0, 0.0 );
- glRotatef( view_rotz, 0.0, 0.0, 1.0 );
-
- glPushMatrix();
- glTranslatef( -3.0, -2.0, 0.0 );
- glRotatef( angle, 0.0, 0.0, 1.0 );
- glCallList(gear1);
- glPopMatrix();
-
- glPushMatrix();
- glTranslatef( 3.1, -2.0, 0.0 );
- glRotatef( -2.0*angle-9.0, 0.0, 0.0, 1.0 );
- glCallList(gear2);
- glPopMatrix();
-
- glPushMatrix();
- glTranslatef( -3.1, 4.2, 0.0 );
- glRotatef( -2.0*angle-25.0, 0.0, 0.0, 1.0 );
- glCallList(gear3);
- glPopMatrix();
-
- glPopMatrix();
-
- SVGAMesaSwapBuffers();
-}
-
-
-static void init( void )
-{
- static GLfloat pos[4] = {5.0, 5.0, 10.0, 1.0 };
- static GLfloat red[4] = {0.8, 0.1, 0.0, 1.0 };
- static GLfloat green[4] = {0.0, 0.8, 0.2, 1.0 };
- static GLfloat blue[4] = {0.2, 0.2, 1.0, 1.0 };
-
- GLfloat w = (float) width / (float) height;
- GLfloat h = 1.0;
-
- glLightfv( GL_LIGHT0, GL_POSITION, pos );
- glEnable( GL_CULL_FACE );
- glEnable( GL_LIGHTING );
- glEnable( GL_LIGHT0 );
- glEnable( GL_DEPTH_TEST );
-
- /* make the gears */
- gear1 = glGenLists(1);
- glNewList(gear1, GL_COMPILE);
- glMaterialfv( GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red );
- gear( 1.0, 4.0, 1.0, 20, 0.7 );
- glEndList();
-
- gear2 = glGenLists(1);
- glNewList(gear2, GL_COMPILE);
- glMaterialfv( GL_FRONT, GL_AMBIENT_AND_DIFFUSE, green );
- gear( 0.5, 2.0, 2.0, 10, 0.7 );
- glEndList();
-
- gear3 = glGenLists(1);
- glNewList(gear3, GL_COMPILE);
- glMaterialfv( GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue );
- gear( 1.3, 2.0, 0.5, 10, 0.7 );
- glEndList();
-
- glEnable( GL_NORMALIZE );
-
-
- glViewport( 0, 0, width, height );
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- if (width>height) {
- GLfloat w = (GLfloat) width / (GLfloat) height;
- glFrustum( -w, w, -1.0, 1.0, 5.0, 60.0 );
- }
- else {
- GLfloat h = (GLfloat) height / (GLfloat) width;
- glFrustum( -1.0, 1.0, -h, h, 5.0, 60.0 );
- }
-
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef( 0.0, 0.0, -40.0 );
-}
-
-void setup( void )
-{
- vga_init();
-
- vga_setmode(G800x600x32K);
-/* gl_setcontextvga(G800x600x32K);*/
-
- vmc = SVGAMesaCreateContext(GL_TRUE);
- SVGAMesaMakeCurrent( vmc );
-}
-
-
-void end( void )
-{
- SVGAMesaDestroyContext( vmc );
-
- vga_setmode( TEXT );
-}
-
-
-int main( int argc, char *argv[] )
-{
- int i;
-
- setup();
- init();
- for (i=0;i<4;i++) {
- draw(); /*SVGAMesaSwapBuffers();*/
- }
- end();
- return 0;
-}
+++ /dev/null
-
-/*
- * Test Linux 8-bit SVGA/Mesa color index mode
- *
- * Compile with: gcc vindex.c -I../include -L../lib -lMesaGL -lX11 -lXext
- * -lvga -lm -o vindex
- *
- * This program is in the public domain.
- * Brian Paul, January 1996
- */
-
-
-
-#include <vga.h>
-#include "GL/svgamesa.h"
-#include "GL/gl.h"
-
-
-
-static GLint width = 640, height = 480;
-
-
-
-static void display( void )
-{
- int i, j;
- int w, h;
-
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glOrtho( 0.0, (GLfloat) width, 0.0, (GLfloat) height, -1.0, 1.0 );
-
- glClear( GL_COLOR_BUFFER_BIT );
-
- w = width / 16;
- h = height / 16;
- for (i=0;i<16;i++) {
- for (j=0;j<16;j++) {
- glIndexi( i*16+j );
- glRecti( i*w, j*h, i*w+w, j*h+h );
- }
- }
-}
-
-
-
-int main( int argc, char *argv[] )
-{
- SVGAMesaContext vmc;
- int i;
-
- vga_init();
- vga_setmode( G640x480x256 );
-
- vmc = SVGAMesaCreateContext( GL_FALSE );
- SVGAMesaMakeCurrent( vmc );
-
- display();
- sleep(3);
-
- SVGAMesaDestroyContext( vmc );
- vga_setmode( TEXT );
- return 0;
-}
+++ /dev/null
-
-/*
- * Test SVGA/Mesa interface in 32K color mode.
- *
- * Compile with: gcc vtest.c -I../include -L../lib -lMesaGL -lX11 -lXext
- * -lvga -lm -o vtest
- *
- * This program is in the public domain.
- * Brian Paul, January 1996
- */
-
-
-
-#include <vga.h>
-#include "GL/svgamesa.h"
-#include "GL/gl.h"
-
-
-SVGAMesaContext vmc;
-
-
-
-void setup( void )
-{
- vga_init();
-
- vga_setmode(G800x600x32K);
-/* gl_setcontextvga(G800x600x32K);*/
-
- vmc = SVGAMesaCreateContext( GL_FALSE ); /* single buffered */
- SVGAMesaMakeCurrent( vmc );
-}
-
-
-void test( void )
-{
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho( -1.0, 1.0, -1.0, 1.0, -1.0, 1.0 );
- glMatrixMode(GL_MODELVIEW);
-
- glClear( GL_COLOR_BUFFER_BIT );
-
- glBegin( GL_LINES );
- glColor3f( 1.0, 0.0, 0.0 );
- glVertex2f( -0.5, 0.5 );
- glVertex2f( 0.5, 0.5 );
- glColor3f( 0.0, 1.0, 0.0 );
- glVertex2f( -0.5, 0.25 );
- glVertex2f( 0.5, 0.25 );
- glColor3f( 0.0, 0.0, 1.0 );
- glVertex2f( -0.5, 0.0 );
- glVertex2f( 0.5, 0.0 );
- glEnd();
-
- glBegin( GL_POLYGON );
- glColor3f( 1.0, 0.0, 0.0 );
- glVertex2f( 0.0, 0.7 );
- glColor3f( 0.0, 1.0, 0.0 );
- glVertex2f( -0.5, -0.5 );
- glColor3f( 0.0, 0.0, 1.0 );
- glVertex2f( 0.5, -0.5 );
- glEnd();
-
- sleep(3);
-}
-
-void end( void )
-{
- SVGAMesaDestroyContext( vmc );
-
- vga_setmode( TEXT );
-}
-
-
-int main( int argc, char *argv[] )
-{
- setup();
- test();
- end();
- return 0;
-}