From: Kristian Høgsberg Date: Thu, 25 Feb 2010 21:00:45 +0000 (-0500) Subject: Remove GGI support X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=230d263aca86854104645c589d75f2862c50abe6;p=mesa.git Remove GGI support --- diff --git a/Makefile b/Makefile index 659e11c5fb6..b99a87b8ba3 100644 --- a/Makefile +++ b/Makefile @@ -211,7 +211,6 @@ MAIN_FILES = \ $(DIRECTORY)/docs/*.spec \ $(DIRECTORY)/include/GL/internal/glcore.h \ $(DIRECTORY)/include/GL/dmesa.h \ - $(DIRECTORY)/include/GL/ggimesa.h \ $(DIRECTORY)/include/GL/gl.h \ $(DIRECTORY)/include/GL/glext.h \ $(DIRECTORY)/include/GL/gl_mangle.h \ @@ -273,13 +272,6 @@ MAIN_FILES = \ $(DIRECTORY)/src/mesa/drivers/fbdev/Makefile \ $(DIRECTORY)/src/mesa/drivers/fbdev/glfbdev.c \ $(DIRECTORY)/src/mesa/drivers/glide/*.[ch] \ - $(DIRECTORY)/src/mesa/drivers/ggi/*.[ch] \ - $(DIRECTORY)/src/mesa/drivers/ggi/ggimesa.conf.in \ - $(DIRECTORY)/src/mesa/drivers/ggi/default/*.c \ - $(DIRECTORY)/src/mesa/drivers/ggi/default/genkgi.conf.in \ - $(DIRECTORY)/src/mesa/drivers/ggi/display/*.c \ - $(DIRECTORY)/src/mesa/drivers/ggi/display/fbdev.conf.in \ - $(DIRECTORY)/src/mesa/drivers/ggi/include/ggi/mesa/*.h \ $(DIRECTORY)/src/mesa/drivers/osmesa/Makefile \ $(DIRECTORY)/src/mesa/drivers/osmesa/Makefile.win \ $(DIRECTORY)/src/mesa/drivers/osmesa/descrip.mms \ @@ -458,7 +450,6 @@ DEMO_FILES = \ $(DIRECTORY)/progs/windml/Makefile.ugl \ $(DIRECTORY)/progs/windml/*.c \ $(DIRECTORY)/progs/windml/*.bmp \ - $(DIRECTORY)/progs/ggi/*.c GLUT_FILES = \ $(DIRECTORY)/include/GL/glut.h \ @@ -471,8 +462,6 @@ GLUT_FILES = \ $(DIRECTORY)/src/glut/beos/*.[ch] \ $(DIRECTORY)/src/glut/beos/*.cpp \ $(DIRECTORY)/src/glut/beos/Makefile \ - $(DIRECTORY)/src/glut/ggi/*.[ch] \ - $(DIRECTORY)/src/glut/ggi/Makefile \ $(DIRECTORY)/src/glut/fbdev/Makefile \ $(DIRECTORY)/src/glut/fbdev/*[ch] \ $(DIRECTORY)/src/glut/mini/*[ch] \ diff --git a/progs/ggi/asc-view.c b/progs/ggi/asc-view.c deleted file mode 100644 index d37fba9d9f7..00000000000 --- a/progs/ggi/asc-view.c +++ /dev/null @@ -1,377 +0,0 @@ -/* - test program for the ggi-mesa driver - - Copyright (C) 1997,1998 Uwe Maurer - uwe_maurer@t-online.de - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#include -#include -#include -#include -#include -#include -#include -#include - -ggi_visual_t vis,vis_mem; - -GGIMesaContext ctx; - -int screen_x=GGI_AUTO,screen_y=GGI_AUTO; -ggi_graphtype bpp=GT_AUTO; - -//#define ZBUFFER - -//#define SMOOTH_NORMALS - -void Init() -{ - GLfloat h=(GLfloat)3/4; - GLfloat pos[4]={5,5,-20,0}; - GLfloat specular[4]={.4,.4,.4,1}; - GLfloat diffuse[4]={.3,.3,.3,1}; - GLfloat ambient[4]={.2,.2,.2,1}; - - int err; - - if (ggiInit()<0) - { - printf("ggiInit() failed\n"); - exit(1); - } - ctx=GGIMesaCreateContext(); - if (ctx==NULL) - { - printf("Can't create Context!\n"); - exit(1); - } - - vis=ggiOpen(NULL); - vis_mem=ggiOpen("display-memory",NULL); - if (vis==NULL || vis_mem==NULL) - { - printf("Can't open ggi_visuals!\n"); - exit(1); - } - err=ggiSetGraphMode(vis,screen_x,screen_y,screen_x,screen_y,bpp); - err+=ggiSetGraphMode(vis_mem,screen_x,screen_y,screen_x,screen_y,bpp); - if (err) - { - printf("Can't set %ix%i\n",screen_x,screen_y); - exit(1); - } - - if (GGIMesaSetVisual(ctx,vis_mem,GL_TRUE,GL_FALSE)<0) - { - printf("GGIMesaSetVisual() failed!\n"); - exit(1); - } - - GGIMesaMakeCurrent(ctx); - - glViewport(0,0,screen_x,screen_y); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustum(-1,1,-h,h,1,50); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0,0,-9); - glShadeModel(GL_FLAT); - - glFrontFace(GL_CW); - glEnable(GL_CULL_FACE); - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - - glLightfv(GL_LIGHT0,GL_POSITION,pos); - - glLightfv(GL_LIGHT0,GL_DIFFUSE,diffuse); - glLightfv(GL_LIGHT0,GL_AMBIENT,ambient); - glLightfv(GL_LIGHT0,GL_SPECULAR,specular); - - #ifdef ZBUFFER - glEnable(GL_DEPTH_TEST); - #endif -} - - -#define MAX_VERTS 1000 -#define MAX_TRIS 2000 -#define MAX_LEN 1024 -#define MAX_F 100000000 - -void LoadAsc(GLuint *list,char *file) -{ - FILE *fp; - - GLfloat p[MAX_VERTS][3]; - GLfloat normal[MAX_VERTS][3]; - float ncount[MAX_VERTS]; - int v[MAX_TRIS][3]; - char line[MAX_LEN]; - char *s; - int i,j; - int verts,faces; - GLuint v0,v1,v2; - GLfloat n[3]; - GLfloat len,k; - GLfloat min[3]={MAX_F,MAX_F,MAX_F}; - GLfloat max[3]={-MAX_F,-MAX_F,-MAX_F}; - char *coord_str[]={"X","Z","Y"}; - - fp=fopen(file,"r"); - if (!fp) - { - printf("Can't open %s!\n",file); - exit(1); - } - - while (strncmp(fgets(line,MAX_LEN,fp),"Tri-mesh",8)) ; - - s=strstr(line,":")+1; - verts=atoi(s); - s=strstr(s,":")+1; - faces=atoi(s); - - if (verts>MAX_VERTS) - { - printf("Too many vertices..\n"); - exit(1); - } - - while (strncmp(fgets(line,MAX_LEN,fp),"Vertex list",11)) ; - - for (i=0;imax[j]) max[j]=k; - if (klen) {len=k;j=i;} - n[i]=(max[i]+min[i])/2; - } - - len/=2; - - for (i=0;iread); - rotate+=10; - frames++; - if (frames==(*maxframes)) break; - - if (ggiKbhit(vis)) - { - *maxframes=frames; - break; - } - } - - gettimeofday(&stop,NULL); - len=(double)(stop.tv_sec-start.tv_sec)+ - (double)(stop.tv_usec-start.tv_usec)/1e6; - return len; -} - -void visible(int vis) -{ - if (vis == GLUT_VISIBLE) - glutIdleFunc(idle); - else - glutIdleFunc(NULL); -} - -int main(int argc, char *argv[]) -{ - glutInit(&argc, argv); - glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE); - - glutInitWindowPosition(0, 0); - glutInitWindowSize(300, 300); - glutCreateWindow("asc-view"); - init(); - - glutDisplayFunc(draw); - glutReshapeFunc(reshape); - glutKeyboardFunc(key); - glutSpecialFunc(special); - glutVisibilityFunc(visible); - - glutMainLoop(); -#if 0 - GLuint l; - char *file; - int maxframes=0; - double len; - - Init(); - - file=(argc>1) ? argv[1] : "asc/box.asc"; - if (argc>2) maxframes=atoi(argv[2]); - - if (argc==1) - { - printf("usage: %s filename.asc\n",argv[0]); - } - - LoadAsc(&l,file); - - len=Display(l,&maxframes); - - printf("\ttime: %.3f sec\n",len); - printf("\tframes: %i\n",maxframes); - printf("\tfps: %.3f \n",(double)maxframes/len); - - GGIMesaDestroyContext(ctx); - ggiClose(vis); - ggiClose(vis_mem); - ggiExit(); -#endif - return 0; -} - diff --git a/progs/ggi/blah b/progs/ggi/blah deleted file mode 100644 index 2c1664d7d05..00000000000 --- a/progs/ggi/blah +++ /dev/null @@ -1,2 +0,0 @@ -Terminating on signal 11 - diff --git a/progs/ggi/blat b/progs/ggi/blat deleted file mode 100644 index 7ff64a9d10d..00000000000 --- a/progs/ggi/blat +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -function foobar() { - echo "foo!" -} - -foobar diff --git a/progs/ggi/box.asc b/progs/ggi/box.asc deleted file mode 100644 index f8b23fd85af..00000000000 --- a/progs/ggi/box.asc +++ /dev/null @@ -1,66 +0,0 @@ -Ambient light color: Red=0.039216 Green=0.039216 Blue=0.039216 - -Named object: "Object01" -Tri-mesh, Vertices: 8 Faces: 12 -Vertex list: -Vertex 0: X: -20 Y: -19.999998 Z: 20.000002 -Vertex 1: X: 20 Y: -19.999998 Z: 20.000002 -Vertex 2: X: 20 Y: 20.000002 Z: 19.999998 -Vertex 3: X: -20 Y: 20.000002 Z: 19.999998 -Vertex 4: X: -20 Y: -20.000002 Z: -19.999998 -Vertex 5: X: 20 Y: -20.000002 Z: -19.999998 -Vertex 6: X: 20 Y: 19.999998 Z: -20.000002 -Vertex 7: X: -20 Y: 19.999998 Z: -20.000002 -Face list: -Face 0: A:0 B:1 C:2 AB:1 BC:1 CA:0 -Smoothing: 1 -Face 1: A:0 B:2 C:3 AB:0 BC:1 CA:1 -Smoothing: 1 -Face 2: A:0 B:4 C:5 AB:1 BC:1 CA:0 -Smoothing: 2 -Face 3: A:0 B:5 C:1 AB:0 BC:1 CA:1 -Smoothing: 2 -Face 4: A:1 B:5 C:6 AB:1 BC:1 CA:0 -Smoothing: 3 -Face 5: A:1 B:6 C:2 AB:0 BC:1 CA:1 -Smoothing: 3 -Face 6: A:2 B:6 C:7 AB:1 BC:1 CA:0 -Smoothing: 4 -Face 7: A:2 B:7 C:3 AB:0 BC:1 CA:1 -Smoothing: 4 -Face 8: A:3 B:7 C:4 AB:1 BC:1 CA:0 -Smoothing: 5 -Face 9: A:3 B:4 C:0 AB:0 BC:1 CA:1 -Smoothing: 5 -Face 10: A:4 B:7 C:6 AB:1 BC:1 CA:0 -Smoothing: 6 -Face 11: A:4 B:6 C:5 AB:0 BC:1 CA:1 -Smoothing: 6 - - - - - - - - - - - - - - - - - - - - - - - - - Page 1 - - - diff --git a/progs/ggi/cone.asc b/progs/ggi/cone.asc deleted file mode 100644 index 5c522859963..00000000000 --- a/progs/ggi/cone.asc +++ /dev/null @@ -1,198 +0,0 @@ -Ambient light color: Red=0.039216 Green=0.039216 Blue=0.039216 - -Named object: "Object01" -Tri-mesh, Vertices: 34 Faces: 64 -Vertex list: -Vertex 0: X: 60.167416 Y: -87.419525 Z: -53.3088 -Vertex 1: X: 76.70787 Y: -87.419518 Z: -29.84565 -Vertex 2: X: 83.0103 Y: -87.419518 Z: -1.838764 -Vertex 3: X: 78.115204 Y: -87.419518 Z: 26.448057 -Vertex 4: X: 62.767834 Y: -87.41951 Z: 50.708401 -Vertex 5: X: 39.304672 Y: -87.41951 Z: 67.248848 -Vertex 6: X: 11.297782 Y: -87.41951 Z: 73.551254 -Vertex 7: X: -16.989004 Y: -87.41951 Z: 68.656158 -Vertex 8: X: -41.249344 Y: -87.41951 Z: 53.308777 -Vertex 9: X: -57.789783 Y: -87.419518 Z: 29.845612 -Vertex 10: X: -64.092194 Y: -87.419518 Z: 1.838721 -Vertex 11: X: -59.197079 Y: -87.419518 Z: -26.448097 -Vertex 12: X: -43.849678 Y: -87.419525 Z: -50.708427 -Vertex 13: X: -20.386503 Y: -87.419525 Z: -67.248856 -Vertex 14: X: 7.62039 Y: -87.419525 Z: -73.551239 -Vertex 15: X: 35.907204 Y: -87.419525 Z: -68.656105 -Vertex 16: X: 101.684875 Y: 94.590591 Z: -96.955391 -Vertex 17: X: 131.767838 Y: 94.590591 Z: -54.281792 -Vertex 18: X: 143.230377 Y: 94.590599 Z: -3.344275 -Vertex 19: X: 134.327423 Y: 94.590607 Z: 48.102379 -Vertex 20: X: 106.414383 Y: 94.590607 Z: 92.225876 -Vertex 21: X: 63.740765 Y: 94.590607 Z: 122.3088 -Vertex 22: X: 12.803238 Y: 94.590614 Z: 133.771301 -Vertex 23: X: -38.643349 Y: 94.590607 Z: 124.868355 -Vertex 24: X: -82.766846 Y: 94.590607 Z: 96.955307 -Vertex 25: X: -112.849762 Y: 94.590607 Z: 54.281677 -Vertex 26: X: -124.312256 Y: 94.590599 Z: 3.344152 -Vertex 27: X: -115.409271 Y: 94.590591 Z: -48.102493 -Vertex 28: X: -87.496201 Y: 94.590591 Z: -92.225967 -Vertex 29: X: -44.822552 Y: 94.590591 Z: -122.308861 -Vertex 30: X: 6.114983 Y: 94.590584 Z: -133.771332 -Vertex 31: X: 57.561623 Y: 94.590591 Z: -124.868301 -Vertex 32: X: 9.459057 Y: -87.419518 Z: 0.000008 -Vertex 33: X: 9.459057 Y: 94.590599 Z: -0.000008 -Face list: -Face 0: A:0 B:1 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 1: A:1 B:2 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 2: A:2 B:3 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 3: A:3 B:4 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 4: A:4 B:5 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 5: A:5 B:6 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 6: A:6 B:7 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 7: A:7 B:8 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 8: A:8 B:9 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 9: A:9 B:10 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 10: A:10 B:11 C:32 AB:1 BC:0 CA:0 - - Page 1 - - - -Smoothing: 1 -Face 11: A:11 B:12 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 12: A:12 B:13 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 13: A:13 B:14 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 14: A:14 B:15 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 15: A:15 B:0 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 16: A:0 B:16 C:17 AB:1 BC:1 CA:0 -Smoothing: 2 -Face 17: A:0 B:17 C:1 AB:0 BC:1 CA:1 -Smoothing: 2 -Face 18: A:1 B:17 C:18 AB:1 BC:1 CA:0 -Smoothing: 3 -Face 19: A:1 B:18 C:2 AB:0 BC:1 CA:1 -Smoothing: 3 -Face 20: A:2 B:18 C:19 AB:1 BC:1 CA:0 -Smoothing: 4 -Face 21: A:2 B:19 C:3 AB:0 BC:1 CA:1 -Smoothing: 4 -Face 22: A:3 B:19 C:20 AB:1 BC:1 CA:0 -Smoothing: 5 -Face 23: A:3 B:20 C:4 AB:0 BC:1 CA:1 -Smoothing: 5 -Face 24: A:4 B:20 C:21 AB:1 BC:1 CA:0 -Smoothing: 6 -Face 25: A:4 B:21 C:5 AB:0 BC:1 CA:1 -Smoothing: 6 -Face 26: A:5 B:21 C:22 AB:1 BC:1 CA:0 -Smoothing: 7 -Face 27: A:5 B:22 C:6 AB:0 BC:1 CA:1 -Smoothing: 7 -Face 28: A:6 B:22 C:23 AB:1 BC:1 CA:0 -Smoothing: 8 -Face 29: A:6 B:23 C:7 AB:0 BC:1 CA:1 -Smoothing: 8 -Face 30: A:7 B:23 C:24 AB:1 BC:1 CA:0 -Smoothing: 9 -Face 31: A:7 B:24 C:8 AB:0 BC:1 CA:1 -Smoothing: 9 -Face 32: A:8 B:24 C:25 AB:1 BC:1 CA:0 -Smoothing: 10 -Face 33: A:8 B:25 C:9 AB:0 BC:1 CA:1 -Smoothing: 10 -Face 34: A:9 B:25 C:26 AB:1 BC:1 CA:0 -Smoothing: 11 -Face 35: A:9 B:26 C:10 AB:0 BC:1 CA:1 -Smoothing: 11 -Face 36: A:10 B:26 C:27 AB:1 BC:1 CA:0 -Smoothing: 12 -Face 37: A:10 B:27 C:11 AB:0 BC:1 CA:1 -Smoothing: 12 -Face 38: A:11 B:27 C:28 AB:1 BC:1 CA:0 -Smoothing: 13 -Face 39: A:11 B:28 C:12 AB:0 BC:1 CA:1 -Smoothing: 13 -Face 40: A:12 B:28 C:29 AB:1 BC:1 CA:0 -Smoothing: 14 - - Page 2 - - - -Face 41: A:12 B:29 C:13 AB:0 BC:1 CA:1 -Smoothing: 14 -Face 42: A:13 B:29 C:30 AB:1 BC:1 CA:0 -Smoothing: 15 -Face 43: A:13 B:30 C:14 AB:0 BC:1 CA:1 -Smoothing: 15 -Face 44: A:14 B:30 C:31 AB:1 BC:1 CA:0 -Smoothing: 16 -Face 45: A:14 B:31 C:15 AB:0 BC:1 CA:1 -Smoothing: 16 -Face 46: A:15 B:31 C:16 AB:1 BC:1 CA:0 -Smoothing: 17 -Face 47: A:15 B:16 C:0 AB:0 BC:1 CA:1 -Smoothing: 17 -Face 48: A:16 B:33 C:17 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 49: A:17 B:33 C:18 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 50: A:18 B:33 C:19 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 51: A:19 B:33 C:20 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 52: A:20 B:33 C:21 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 53: A:21 B:33 C:22 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 54: A:22 B:33 C:23 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 55: A:23 B:33 C:24 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 56: A:24 B:33 C:25 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 57: A:25 B:33 C:26 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 58: A:26 B:33 C:27 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 59: A:27 B:33 C:28 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 60: A:28 B:33 C:29 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 61: A:29 B:33 C:30 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 62: A:30 B:33 C:31 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 63: A:31 B:33 C:16 AB:0 BC:0 CA:1 -Smoothing: 18 - - - - - - - - - - - - - - - - - Page 3 - - - diff --git a/progs/ggi/gears.c b/progs/ggi/gears.c deleted file mode 100644 index 2b3231d8ae6..00000000000 --- a/progs/ggi/gears.c +++ /dev/null @@ -1,339 +0,0 @@ - -/* - * 3-D gear wheels. This program is in the public domain. - * - * Brian Paul - */ - -/* Conversion to GLUT by Mark J. Kilgard */ - -#include -#include -#include -#include - -#ifndef M_PI -#define M_PI 3.14159265 -#endif - -static GLint T0 = 0; -static GLint Frames = 0; - - -/** - - 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); - if (i < teeth) { - 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); - if (i < teeth) { - 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 void -draw(void) -{ - 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(); - - glutSwapBuffers(); - - Frames++; - { - GLint t = glutGet(GLUT_ELAPSED_TIME); - if (t - T0 >= 5000) { - GLfloat seconds = (t - T0) / 1000.0; - GLfloat fps = Frames / seconds; - printf("%d frames in %g seconds = %g FPS\n", Frames, seconds, fps); - T0 = t; - Frames = 0; - } - } -} - - -static void -idle(void) -{ - angle += 2.0; - glutPostRedisplay(); -} - -/* change view angle, exit upon ESC */ -/* ARGSUSED1 */ -static void -key(unsigned char k, int x, int y) -{ - switch (k) { - case 'z': - view_rotz += 5.0; - break; - case 'Z': - view_rotz -= 5.0; - break; - case 27: /* Escape */ - exit(0); /* FIXME: Shutdown and free resources cleanly in ggiglut */ - break; - default: - return; - } - glutPostRedisplay(); -} - -/* change view angle */ -/* ARGSUSED1 */ -static void -special(int k, int x, int y) -{ - switch (k) { - case GLUT_KEY_UP: - view_rotx += 5.0; - break; - case GLUT_KEY_DOWN: - view_rotx -= 5.0; - break; - case GLUT_KEY_LEFT: - view_roty += 5.0; - break; - case GLUT_KEY_RIGHT: - view_roty -= 5.0; - break; - default: - return; - } - glutPostRedisplay(); -} - -/* new window size or exposure */ -static void -reshape(int width, int height) -{ - GLfloat h = (GLfloat) height / (GLfloat) width; - - glViewport(0, 0, (GLint) width, (GLint) height); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustum(-1.0, 1.0, -h, h, 5.0, 60.0); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0.0, 0.0, -40.0); -} - -static void -init(void) -{ - static GLfloat pos[4] = - {5.0, 5.0, 10.0, 0.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}; - - 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); -} - -void -visible(int vis) -{ - if (vis == GLUT_VISIBLE) - glutIdleFunc(idle); - else - glutIdleFunc(NULL); -} - -int main(int argc, char *argv[]) -{ - glutInit(&argc, argv); - glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE); - -// glutInitWindowPosition(0, 0); -// glutInitWindowSize(300, 300); - glutCreateWindow("Gears"); - init(); - - glutDisplayFunc(draw); - glutReshapeFunc(reshape); - glutKeyboardFunc(key); - glutSpecialFunc(special); - glutVisibilityFunc(visible); - - glutMainLoop(); - - return 0; -} diff --git a/progs/ggi/gears2.c b/progs/ggi/gears2.c deleted file mode 100644 index 9468c031777..00000000000 --- a/progs/ggi/gears2.c +++ /dev/null @@ -1,390 +0,0 @@ -/* gears.c */ - -/* - * 3-D gear wheels. This program is in the public domain. - * - * Brian Paul - * modified by Uwe Maurer (uwe_maurer@t-online.de) - */ - -#include -#include -#include -#include -#include -#ifndef M_PI -# define M_PI 3.14159265 -#endif - - -ggi_visual_t vis; -char text[100]; -int db_flag,vis_x, vis_y, vir_x, vir_y, gt; - -/* - * 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 GGI"); - ggiPuts(vis,0,ggiGetInfo(vis)->mode->visible.y," Mesa -> GGI"); - - ggiPuts(vis,0,16,text); - ggiPuts(vis,0,ggiGetInfo(vis)->mode->visible.y+16,text); -#endif - - if(db_flag) - ggiMesaSwapBuffers(); - - count++; - if (count==limit) { - exit(1); - } - ++n; - /* - if (!(n%10)){ - ggi_color rgb = { 10000, 10000, 10000 }; - ggiSetSimpleMode(vis,vis_x+(n/10),vis_y+(n/10),db_flag?2:1, gt); - glViewport(0, 0,vis_x+(n/10),vis_y+(n/10)); - ggiSetGCForeground(vis, ggiMapColor(vis, &rgb)); - ggiDrawBox(vis, 20, 20, 100, 100); - if(db_flag) - ggiSetWriteFrame(vis, 1); - } - */ -} - -static void idle( void ) -{ - angle += 2.0; - draw(); -} - -/* new window size or exposure */ -static void reshape( int width, int height ) -{ - GLfloat h = (GLfloat) height / (GLfloat) width; - - if(db_flag) - glDrawBuffer(GL_BACK); - else - glDrawBuffer(GL_FRONT); - glViewport(0, 0, (GLint)width, (GLint)height); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustum( -1.0, 1.0, -h, h, 5.0, 60.0 ); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef( 0.0, 0.0, -40.0 ); - glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); - -} - - -static void init( void ) -{ - static GLfloat pos[4] = {5.0, 5.0, 10.0, 0.0 }; - static GLfloat red[4] = {0.9, 0.9, 0.9, 1.0 }; - static GLfloat green[4] = {0.0, 0.8, 0.9, 1.0 }; - static GLfloat blue[4] = {0.2, 0.2, 1.0, 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 ); - glIndexi(1); - 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 ); - glIndexi(2); - 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 ); - glIndexi(3); - gear( 1.3, 2.0, 0.5, 10, 0.7 ); - glEndList(); - - glEnable( GL_NORMALIZE ); -} - -static void usage(char *s) -{ - printf("%s visible_x visible_y virtual_x virtual_y bpp db_flag\n",s); - printf("example:\n"); - printf("%s 320 200 320 400 8 1\n",s); - exit(1); -} - -int main( int argc, char *argv[] ) -{ - ggi_mesa_context_t ctx; - ggi_mode mode; - int bpp; - - limit=0; - - if (argc<7) usage(argv[0]); - - vis_x=atoi(argv[1]); - vis_y=atoi(argv[2]); - vir_x=atoi(argv[3]); - vir_y=atoi(argv[4]); - bpp=atoi(argv[5]); - db_flag=atoi(argv[6]); - - switch(bpp) - { - case 4: gt=GT_4BIT;break; - case 8: gt=GT_8BIT;break; - case 15:gt=GT_15BIT;break; - case 16:gt=GT_16BIT;break; - case 24:gt=GT_24BIT;break; - case 32:gt=GT_32BIT;break; - default: - printf("%i Bits per Pixel ???\n",bpp); - exit(1); - } - sprintf(text,"%sx%s %i colors, RGB mode, %s", - argv[1],argv[2],1< -#include -#include -#include - - -__BEGIN_DECLS - -/* Exported variables */ -#ifdef BUILDING_GGIGLUT -extern uint32 _ggiglutDebugState; -extern int _ggiglutDebugSync; -#else -IMPORTVAR uint32 _ggiglutDebugState; -IMPORTVAR int _ggiglutDebugSync; -#endif - -__END_DECLS - - -/* Debugging types - * bit 0 is reserved! */ - -#define GGIGLUTDEBUG_CORE (1<<1) /* 2 */ -#define GGIGLUTDEBUG_MODE (1<<2) /* 4 */ -#define GGIGLUTDEBUG_COLOR (1<<3) /* 8 */ -#define GGIGLUTDEBUG_DRAW (1<<4) /* 16 */ -#define GGIGLUTDEBUG_MISC (1<<5) /* 32 */ -#define GGIGLUTDEBUG_LIBS (1<<6) /* 64 */ -#define GGIGLUTDEBUG_EVENTS (1<<7) /* 128 */ - -#define GGIGLUTDEBUG_ALL 0xffffffff - -#ifdef __GNUC__ - -#ifdef DEBUG -#define GGIGLUTDPRINT(form,args...) if (_ggiglutDebugState) { ggDPrintf(_ggiglutDebugSync, "GGIGLUT",form, ##args); } -#define GGIGLUTDPRINT_CORE(form,args...) if (_ggiglutDebugState & GGIGLUTDEBUG_CORE) { ggDPrintf(_ggiglutDebugSync,"GGIGLUT",form, ##args); } -#define GGIGLUTDPRINT_MODE(form,args...) if (_ggiglutDebugState & GGIGLUTDEBUG_MODE) { ggDPrintf(_ggiglutDebugSync,"GGIGLUT",form, ##args); } -#define GGIGLUTDPRINT_COLOR(form,args...) if (_ggiglutDebugState & GGIGLUTDEBUG_COLOR) { ggDPrintf(_ggiglutDebugSync,"GGIGLUT",form, ##args); } -#define GGIGLUTDPRINT_DRAW(form,args...) if (_ggiglutDebugState & GGIGLUTDEBUG_DRAW) { ggDPrintf(_ggiglutDebugSync,"GGIGLUT",form, ##args); } -#define GGIGLUTDPRINT_MISC(form,args...) if (_ggiglutDebugState & GGIGLUTDEBUG_MISC) { ggDPrintf(_ggiglutDebugSync,"GGIGLUT",form, ##args); } -#define GGIGLUTDPRINT_LIBS(form,args...) if (_ggiglutDebugState & GGIGLUTDEBUG_LIBS) { ggDPrintf(_ggiglutDebugSync,"GGIGLUT",form, ##args); } -#define GGIGLUTDPRINT_EVENTS(form,args...) if (_ggiglutDebugState & GGIGLUTDEBUG_EVENTS) { ggDPrintf(_ggiglutDebugSync,"GGIGLUT",form, ##args); } -#else /* DEBUG */ -#define GGIGLUTDPRINT(form,args...) do{}while(0) -#define GGIGLUTDPRINT_CORE(form,args...) do{}while(0) -#define GGIGLUTDPRINT_MODE(form,args...) do{}while(0) -#define GGIGLUTDPRINT_COLOR(form,args...) do{}while(0) -#define GGIGLUTDPRINT_DRAW(form,args...) do{}while(0) -#define GGIGLUTDPRINT_MISC(form,args...) do{}while(0) -#define GGIGLUTDPRINT_LIBS(form,args...) do{}while(0) -#define GGIGLUTDPRINT_EVENTS(form,args...) do{}while(0) -#endif /* DEBUG */ - -#else /* __GNUC__ */ - -__BEGIN_DECLS - -static inline void GGIGLUTDPRINT(const char *form,...) -{ -#ifdef DEBUG - if (_ggiDebugState) { - va_list args; - - fprintf(stderr, "GGIGLUT: "); - va_start(args, form); - vfprintf(stderr, form, args); - va_end(args); - if (_ggiglutDebugSync) fflush(stderr); - } -#endif -} - -static inline void GGIGLUTDPRINT_CORE(const char *form,...) -{ -#ifdef DEBUG - if (_ggiDebugState & GGIDEBUG_CORE) { - va_list args; - - fprintf(stderr, "GGIGLUT: "); - va_start(args, form); - vfprintf(stderr, form, args); - va_end(args); - if (_ggiglutDebugSync) fflush(stderr); - } -#endif -} - -static inline void GGIGLUTDPRINT_MODE(const char *form,...) -{ -#ifdef DEBUG - if (_ggiDebugState & GGIDEBUG_MODE) { - va_list args; - - fprintf(stderr, "GGIGLUT: "); - va_start(args, form); - vfprintf(stderr, form, args); - va_end(args); - if (_ggiglutDebugSync) fflush(stderr); - } -#endif -} - -static inline void GGIGLUTDPRINT_COLOR(const char *form,...) -{ -#ifdef DEBUG - if (_ggiDebugState & GGIDEBUG_COLOR) { - va_list args; - - fprintf(stderr, "GGIGLUT: "); - va_start(args, form); - vfprintf(stderr, form, args); - va_end(args); - if (_ggiglutDebugSync) fflush(stderr); - } -#endif -} - -static inline void GGIGLUTDPRINT_DRAW(const char *form,...) -{ -#ifdef DEBUG - if (_ggiDebugState & GGIDEBUG_DRAW) { - va_list args; - - fprintf(stderr, "GGIGLUT: "); - va_start(args, form); - vfprintf(stderr, form, args); - va_end(args); - if (_ggiglutDebugSync) fflush(stderr); - } -#endif -} - -static inline void GGIGLUTDPRINT_MISC(const char *form,...) -{ -#ifdef DEBUG - if (_ggiDebugState & GGIDEBUG_MISC) { - va_list args; - - fprintf(stderr, "GGIGLUT: "); - va_start(args, form); - vfprintf(stderr, form, args); - va_end(args); - if (_ggiglutDebugSync) fflush(stderr); - } -#endif -} - -static inline void GGIGLUTDPRINT_LIBS(const char *form,...) -{ -#ifdef DEBUG - if (_ggiDebugState & GGIDEBUG_LIBS) { - va_list args; - - fprintf(stderr, "GGIGLUT: "); - va_start(args, form); - vfprintf(stderr, form, args); - va_end(args); - if (_ggiglutDebugSync) fflush(stderr); - } -#endif -} - -static inline void GGIGLUTDPRINT_EVENTS(const char *form,...) -{ -#ifdef DEBUG - if (_ggiDebugState & GGIDEBUG_EVENTS) { - va_list args; - - fprintf(stderr, "GGIGLUT: "); - va_start(args, form); - vfprintf(stderr, form, args); - va_end(args); - if (_ggiglutDebugSync) fflush(stderr); - } -#endif -} - -__END_DECLS - -#endif /* __GNUC__ */ - -#ifdef DEBUG -#define GGIGLUT_ASSERT(x,str) \ -{ if (!(x)) { \ - fprintf(stderr,"GGIGLUT:%s:%d: INTERNAL ERROR: %s\n",__FILE__,__LINE__,str); \ - exit(1); \ -} } -#define GGIGLUT_APPASSERT(x,str) \ -{ if (!(x)) { \ - fprintf(stderr,"GGIGLUT:%s:%d: APPLICATION ERROR: %s\n",__FILE__,__LINE__,str); \ - exit(1); \ -} } -#else /* DEBUG */ -#define GGIGLUT_ASSERT(x,str) do{}while(0) -#define GGIGLUT_APPASSERT(x,str) do{}while(0) -#endif /* DEBUG */ - -#ifdef DEBUG -# define GGIGLUTD0(x) x -#else -# define GGIGLUTD0(x) /* empty */ -#endif - -#ifdef GGIGLUTDLEV -# if GGIGLUTDLEV == 1 -# define GGIGLUTD1(x) x -# define GGIGLUTD2(x) /* empty */ -# define GGIGLUTD3(x) /* empty */ -# elif GGIGLUTDLEV == 2 -# define GGIGLUTD1(x) x -# define GGIGLUTD2(x) x -# define GGIGLUTD3(x) /* empty */ -# elif GGIGLUTDLEV > 2 -# define GGIGLUTD1(x) x -# define GGIGLUTD2(x) x -# define GGIGLUTD3(x) x -# endif -#else -# define GGIGLUTD1(x) /* empty */ -# define GGIGLUTD2(x) /* empty */ -# define GGIGLUTD3(x) /* empty */ -#endif - -#endif /* _GGI_MESA_INTERNAL_DEBUG_H */ diff --git a/src/glut/ggi/ggiglut.c b/src/glut/ggi/ggiglut.c deleted file mode 100644 index 2fe65a154c7..00000000000 --- a/src/glut/ggi/ggiglut.c +++ /dev/null @@ -1,959 +0,0 @@ -/* ************************************************************************** - * ggiglut.c - * ************************************************************************** - * - * Copyright (C) 1998 Uwe Maurer - uwe_maurer@t-online.de - * Copyright (C) 1999 James Simmons - * Copyright (C) 1999 Jon Taylor - * - * 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. - * - * ************************************************************************** - * To-do: - * - Make everything use the portable ggi_* types - * - */ - -#define BUILDING_GGIGLUT - -#define WIDTH 640 -#define HEIGHT 480 -#define GRAPHTYPE_RGB GT_16BIT -#define GRAPHTYPE_INDEX GT_8BIT - -/*************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include "GL/ggimesa.h" -#include "debug.h" - -#include -#include - -int _ggiglutDebugSync = 0; -uint32 _ggiglutDebugState = 0; - -char *__glutProgramName = "GGI"; - -static ggi_visual_t __glut_vis; - -static ggi_mesa_context_t __glut_ctx; - -//static int __glut_width = WIDTH; -//static int __glut_height = HEIGHT; -//static ggi_graphtype __glut_gt_rgb = GRAPHTYPE_RGB; -//static ggi_graphtype __glut_gt_index = GRAPHTYPE_INDEX; -static int __glut_width = GGI_AUTO; -static int __glut_height = GGI_AUTO; -static ggi_graphtype __glut_gt_rgb = GT_AUTO; -static ggi_graphtype __glut_gt_index = GT_8BIT; -static int __glut_init = GL_FALSE; - -static int mousex = WIDTH / 2; -static int mousey = HEIGHT / 2; -static int mouse_moved = GL_FALSE; -static int mouse_down = GL_FALSE; -static int mouse_showcursor = GL_FALSE; - -static void (*__glut_reshape)(int, int); -static void (*__glut_display)(void); -static void (*__glut_idle)(void); -static void (*__glut_keyboard)(unsigned char, int, int); -static void (*__glut_special)(int, int, int); -static void (*__glut_mouse)(int, int, int, int); -static void (*__glut_motion)(int, int); -static void (*__glut_passive_motion)(int, int); -static void (*__glut_visibility)(int); - -static unsigned int __glut_mode = GLUT_RGB | GLUT_SINGLE | GLUT_DEPTH; - -static int __glut_mod_keys = 0; - -static int __glut_redisplay = GL_FALSE; - -/* Menu */ -static int __glut_menubutton = -1; -static int __glut_menuactive = GL_FALSE; - -#define MAX_ENTRIES 64 - -typedef struct menu_s -{ - char *label[MAX_ENTRIES]; - int value[MAX_ENTRIES]; - struct menu_s * submenu[MAX_ENTRIES]; - void (*func)(int); - int max_strlen; - int num_entries; -} menu_t; - -static menu_t *mainmenu; -static menu_t *curmenu; -static menu_t *activemenu; - -void glutInit(int *argc, char **argv) -{ - ggi_graphtype gt; - int i, k; - char *str; - - GGIGLUTDPRINT_CORE("glutInit() called\n"); - - #define REMOVE {for (k=i;k<*argc-1;k++) argv[k]=argv[k+1]; \ - (*argc)--; i--; } - - if (__glut_init) return; - - str = getenv("GGIGLUT_DEBUG"); - if (str != NULL) { - _ggiglutDebugState = atoi(str); - fprintf(stderr, "Debugging=%d\n", _ggiglutDebugState); - GGIGLUTDPRINT_CORE("Debugging=%d\n", _ggiglutDebugState); - } - - str = getenv("GGIGLUT_DEBUGSYNC"); - if (str != NULL) { - _ggiglutDebugSync = 1; - } - - if (argc && argv) - { - - for (i = 1; i < *argc; i++) - { - if (strcmp(argv[i], "-mouse") == 0) - { - mouse_showcursor = GL_TRUE; - REMOVE; - } - else - if (strcmp(argv[i], "-bpp") == 0 && (i + 1) < (*argc)) - { - switch(atoi(argv[i + 1])) - { - case 4: gt = GT_4BIT; break; - case 8: gt = GT_8BIT; break; - case 15: gt = GT_15BIT; break; - case 16: gt = GT_16BIT; break; - case 24: gt = GT_24BIT; break; - case 32: gt = GT_32BIT; break; - default: - ggiPanic("\"%s\" bits per pixel?\n", argv[i+1]); - } - __glut_gt_rgb = __glut_gt_index = gt; - REMOVE; - REMOVE; - } - else - if (strcmp(argv[i], "-size") == 0 && (i + 2) < (*argc)) - { - __glut_width = atoi(argv[i + 1]); - __glut_height = atoi(argv[i + 2]); - REMOVE; - REMOVE; - REMOVE; - } - } - } - - if (ggiInit() < 0) - { - ggiPanic("ggiInit() failed!\n"); - } - __glut_init = GL_TRUE; - -#undef REMOVE -} - -void glutInitWindowPosition(int x, int y) -{ - GGIGLUTDPRINT_CORE("glutInitWindowPosition() called\n"); -} - -void glutInitWindowSize(int x, int y) -{ - GGIGLUTDPRINT_CORE("glutInitWindowsSize() called\n"); -} - -void glutFullScreen(void) -{ - GGIGLUTDPRINT_CORE("glutFullScreen() called\n"); -} - -void glutInitDisplayMode(unsigned int mode) -{ - GGIGLUTDPRINT_CORE("glutInitDisplayMode() called\n"); - - __glut_mode = mode; -} - -void glutInitDisplayString(const char *string) -{ - GGIGLUTDPRINT_CORE("glutInitDisplayString(%s) called\n", string); -} - -int glutCreateWindow(const char *title) -{ - ggi_graphtype gt; - ggi_mode mode = - { - 1, - { GGI_AUTO, GGI_AUTO }, - { GGI_AUTO, GGI_AUTO }, - { 0, 0 }, - GT_AUTO, - { GGI_AUTO, GGI_AUTO } - }; - int frames; - int rgb; - int err; - - GGIGLUTDPRINT_CORE("glutCreateWindow() called\n"); - - if (!__glut_init) - glutInit(NULL, NULL); - - GGIGLUTDPRINT("GGIGLUT: %s\n", title); - - rgb = !(__glut_mode & GLUT_INDEX); - frames = (__glut_mode & GLUT_DOUBLE) ? 2 : 1; - - gt = (rgb) ? __glut_gt_rgb : __glut_gt_index; - - __glut_vis = ggiOpen(NULL); - if (__glut_vis == NULL) - { - ggiPanic("ggiOpen() failed!\n"); - /* return GL_FALSE; */ - } - - ggiSetFlags(__glut_vis, GGIFLAG_ASYNC); - - ggiCheckMode(__glut_vis, &mode); - - err = ggiSetMode(__glut_vis, &mode); - if (err < 0) - { - ggiPanic("Can't set graphic mode!\n"); - /* return GL_FALSE; */ - } - - if (ggiMesaExtendVisual(__glut_vis, GL_FALSE, GL_FALSE, - 16, 0, 0, 0, 0, 0, 1) < 0) - { - ggiPanic("GGIMesaSetVisual failed!\n"); - } - - __glut_ctx = ggiMesaCreateContext(__glut_vis); - - if (__glut_ctx == NULL) - ggiPanic("Can't create mesa-context\n"); - - ggiGetMode(__glut_vis, &mode); - - - __glut_width = mode.visible.x; - __glut_height = mode.visible.y; - - mousex = mode.visible.x / 2; - mousey = mode.visible.y / 2; - - ggiMesaMakeCurrent(__glut_ctx, __glut_vis); - - if (__glut_reshape) - __glut_reshape(__glut_width, __glut_height); - - return GL_TRUE; -} - -void glutReshapeFunc(void (*func)(int, int)) -{ - GGIGLUTDPRINT_CORE("glutReshapeFunc() called\n"); - - __glut_reshape = func; - if (__glut_vis && __glut_reshape) - __glut_reshape(__glut_width, __glut_height); -} - -void glutKeyboardFunc(void (*keyboard)(unsigned char key, int x, int y)) -{ - GGIGLUTDPRINT_CORE("glutKeyBoardFunc() called\n"); - - __glut_keyboard = keyboard; -} - -int glutGetModifiers(void) -{ - GGIGLUTDPRINT_CORE("glutGetModifiers() called\n"); - - return __glut_mod_keys; -} - -void glutEntryFunc(void (*func)(int state)) -{ - GGIGLUTDPRINT_CORE("glutEntryFunc() called\n"); -} - -void glutVisibilitFunc(void (*func)(int state)) -{ - GGIGLUTDPRINT_CORE("glutVisibilityFunc() called\n"); -} - -void glutTimerFunc(unsigned int millis, void (*func)(int value), int value) -{ - GGIGLUTDPRINT_CORE("glutTimerFunc() called\n"); -} - -void glutMenuStateFunc(void (*func)(int state)) -{ - GGIGLUTDPRINT_CORE("glutMenuStateFunc() called\n"); -} - -int glutGet(GLenum type) -{ - GGIGLUTDPRINT_CORE("glutGet() called\n"); - - switch(type) - { - case GLUT_WINDOW_X: - return 0; - case GLUT_WINDOW_Y: - return 0; - case GLUT_WINDOW_WIDTH: - return __glut_width; - case GLUT_WINDOW_HEIGHT: - return __glut_height; - case GLUT_MENU_NUM_ITEMS: - if (curmenu) - return curmenu->num_entries; - else - return 0; - default: - GGIGLUTDPRINT("glutGet: unknown type %i\n", type); - } - return 0; -} - -void glutSpecialFunc(void (*special)(int key, int x, int y)) -{ - GGIGLUTDPRINT_CORE("glutSpecialFunc() called\n"); - - __glut_special=special; -} - -void glutDisplayFunc(void (*disp)(void)) -{ - GGIGLUTDPRINT_CORE("glutDisplayFunc() called\n"); - __glut_display=disp; -} - -void glutSetColor(int index, GLfloat red, GLfloat green, GLfloat blue) -{ - ggi_color c; - GLfloat max; - - GGIGLUTDPRINT_CORE("glutSetColor() called\n"); - - if (red > 1.0) red = 1.0; - if (red < 0.0) red = 0.0; - if (green > 1.0) green = 1.0; - if (green < 0.0) green = 0.0; - if (blue > 1.0) blue = 1.0; - if (blue < 0.0) blue = 0.0; - - max = (float)((1 << GGI_COLOR_PRECISION) - 1); - - c.r = (int)(max * red); - c.g = (int)(max * green); - c.b = (int)(max * blue); - ggiSetPalette(__glut_vis, index, 1, &c); -} - -void glutPostRedisplay(void) -{ - GGIGLUTDPRINT_CORE("glutPostRedisplay() called\n"); - - __glut_redisplay = GL_TRUE; -} - -void glutPostWindowRedisplay(int win) -{ - GGIGLUTDPRINT_CORE("glutPostWindowRedisplay() called\n"); - - __glut_redisplay = GL_TRUE; -} - -void glutSwapBuffers(void) -{ - GGIGLUTDPRINT_CORE("glutSwapBuffers() called\n"); - - ggiMesaSwapBuffers(); -} - -void glutIdleFunc(void (*idle)(void)) -{ - GGIGLUTDPRINT_CORE("glutIdleFunc() called\n"); - - __glut_idle = idle; -} - -static void keyboard(ggi_event *ev) -{ - int sym; - int modifer = 0, key = 0; - - GGIGLUTDPRINT_CORE("keyboard() called\n"); - - sym = ev->key.sym; - - modifer = ev->key.modifiers; - if (modifer == GII_KM_SHIFT) - __glut_mod_keys |= GLUT_ACTIVE_SHIFT; - if (modifer == GII_KM_CTRL) - __glut_mod_keys |= GLUT_ACTIVE_CTRL; - if (modifer == GII_KM_ALT) - __glut_mod_keys |= GLUT_ACTIVE_ALT; - - /* if (__glut_special && key) __glut_special(GII_KTYP(key),0,0); */ - - if (__glut_keyboard) -// __glut_keyboard(GII_UNICODE(sym), 0, 0); - __glut_keyboard(sym, 0, 0); -} - -static void mouseabs(ggi_event *ev) -{ - int oldx = mousex; - int oldy = mousey; - - mousex = ev->pmove.x; - mousey = ev->pmove.y; - - if (mousex < 0) mousex = 0; - if (mousey < 0) mousey = 0; - if (mousex >= __glut_width) mousex = __glut_width - 1; - if (mousey >= __glut_height) mousey = __glut_height - 1; - - if (mousex != oldx || mousey != oldy) mouse_moved = GL_TRUE; -} - -static void mouse(ggi_event *ev) -{ - int oldx = mousex; - int oldy = mousey; - - GGIGLUTDPRINT_CORE("mouse() called\n"); - - mousex += ev->pmove.x >> 1; - mousey += ev->pmove.y >> 1; - - if (mousex < 0) mousex = 0; - if (mousey < 0) mousey = 0; - if (mousex >= __glut_width) mousex = __glut_width - 1; - if (mousey >= __glut_height) mousey = __glut_height - 1; - - if (mousex != oldx || mousey != oldy) mouse_moved = GL_TRUE; - -} - -static void showmenu(void); -static int clickmenu(void); -static void updatemouse(void); -static void drawmouse(void); - -static void mousemove(void) -{ - GGIGLUTDPRINT_CORE("mousemove() called\n"); - - if (mouse_moved) { - if (__glut_motion && mouse_down) { - __glut_motion(mousex,mousey); - } - - if (__glut_passive_motion && (!mouse_down)) { - __glut_passive_motion(mousex,mousey); - } - - if (__glut_menuactive) updatemouse(); - mouse_moved=GL_FALSE; - } -} - -static void button(ggi_event *ev) -{ - int i; - int btn[4] = { - 0, - GLUT_LEFT_BUTTON, - GLUT_RIGHT_BUTTON, - GLUT_MIDDLE_BUTTON - }; - - GGIGLUTDPRINT_CORE("button() called\n"); - - mousemove(); - - if (ev->pbutton.button <= 3) { /* GGI can have >3 buttons ! */ - char state = ev->any.type == evPtrButtonPress ? GLUT_DOWN : GLUT_UP; - if (__glut_menuactive) { - if (state == GLUT_UP && clickmenu()) { - glutPostRedisplay(); - __glut_menuactive = GL_FALSE; - } - } else - if (btn[ev->pbutton.button] == __glut_menubutton) { - __glut_menuactive = GL_TRUE; - activemenu = mainmenu; - showmenu(); - } else - if (__glut_mouse) { - __glut_mouse(btn[ev->pbutton.button], state, mousex, mousey); - } - if (state == GLUT_DOWN) { - mouse_down |= (1 << (ev->pbutton.button - 1)); - } - else mouse_down &= ~( 1 << (ev->pbutton.button - 1)); - } -} - -void glutMainLoop(void) -{ - ggi_event ev; - ggi_event_mask evmask = (emKeyPress | emKeyRepeat | emPtrMove | emPtrButton); - - GGIGLUTDPRINT_CORE("glutMainLoop() called\n"); - - ggiSetEventMask(__glut_vis, evmask); - - glutPostRedisplay(); - - if (__glut_visibility) - __glut_visibility(GLUT_VISIBLE); - - while (1) - { - if (!__glut_menuactive) - { - if (__glut_idle) - __glut_idle(); - if (__glut_redisplay && __glut_display) - { - __glut_redisplay = GL_FALSE; - __glut_display(); - } - } - - while (1) - { - struct timeval t = {0, 0}; - - if (ggiEventPoll(__glut_vis, evmask, &t) == 0) - break; - - ggiEventRead(__glut_vis, &ev, evmask); - - switch (ev.any.type) - { - case evKeyPress: - case evKeyRepeat: - keyboard(&ev); - break; - case evPtrAbsolute: - mouseabs(&ev); - break; - case evPtrRelative: - mouse(&ev); - break; - case evPtrButtonPress: - case evPtrButtonRelease: - button(&ev); - break; - } - } - mousemove(); - } -} - -static void showmenu() -{ - int y,i; - ggi_color col = { 0xffff, 0xffff, 0xffff }; - - GGIGLUTDPRINT_CORE("showmenu() called\n"); - - ggiSetGCForeground(__glut_vis,ggiMapColor(__glut_vis,&col)); - ggiSetOrigin(__glut_vis,0,0); - - for (y = i = 0; i < activemenu->num_entries; i++, y += 8) { - ggiPuts(__glut_vis, 0, y, activemenu->label[i]); - } - drawmouse(); -} - -static int clickmenu(void) -{ - int i; - int w, h; - - GGIGLUTDPRINT_CORE("clickmenu() called\n"); - - i = mousey / 8; - - if (i >= activemenu->num_entries) return GL_TRUE; - if (mousex >= 8 * strlen(activemenu->label[i])) return GL_TRUE; - - if (activemenu->submenu[i]) { - ggi_color col={0,0,0}; - ggiSetGCForeground(__glut_vis,ggiMapColor(__glut_vis,&col)); - h=activemenu->num_entries*8; - w=activemenu->max_strlen*8; - ggiDrawBox(__glut_vis,0,0,w,h); - activemenu=activemenu->submenu[i]; - showmenu(); - return GL_FALSE; - } - curmenu=activemenu; - activemenu->func(activemenu->value[i]); - return GL_TRUE; -} - -static int oldx=-1; -static int oldy=-1; -static char buffer[16*16*4]; - -static void updatemouse() -{ - GGIGLUTDPRINT_CORE("updatemouse() called\n"); - - ggiPutBox(__glut_vis,oldx,oldy,16,16,buffer); - drawmouse(); -} - -static void drawmouse() -{ - int x,y; - - GGIGLUTDPRINT_CORE("drawmouse() called\n"); - - x=mousex-8; - if (x<0) x=0; - y=mousey-8; - if (y<0) y=0; - ggiGetBox(__glut_vis,x,y,16,16,buffer); - ggiDrawLine(__glut_vis,mousex-2,mousey,mousex+2,mousey); - ggiDrawLine(__glut_vis,mousex,mousey-2,mousex,mousey+2); - oldx=x; - oldy=y; -} - -int glutCreateMenu(void(*func)(int)) -{ - menu_t *m; - - GGIGLUTDPRINT_CORE("glutCreateMenu() called\n"); - - m=malloc(sizeof(menu_t)); - memset(m,0,sizeof(menu_t)); - curmenu=m; - curmenu->func=func; - return (int)curmenu; -} - -static void addEntry(const char *label,int value,menu_t *submenu) -{ - int i=curmenu->num_entries; - - GGIGLUTDPRINT_CORE("addEntry() called\n"); - - /* printf("%i %i %s %p\n",i,value,label,submenu); */ - if (ilabel[i]=strdup(label); - curmenu->value[i]=value; - curmenu->submenu[i]=submenu; - - if (strlen(label)>curmenu->max_strlen) - curmenu->max_strlen=strlen(label); - curmenu->num_entries++; - } -} - -void glutAddMenuEntry(const char *label,int value) -{ - GGIGLUTDPRINT_CORE("glutAddMenuEntry() called\n"); - - addEntry(label,value,NULL); -} - -void glutAddSubMenu(const char *label,int submenu) -{ - char text[100]; - - GGIGLUTDPRINT_CORE("glutAddSubMenu() called\n"); - - if (!curmenu) return; - strncpy(text,label,98); - text[98]=0; - text[strlen(text)+1]=0; - text[strlen(text)]='>'; - - addEntry(text,0,(menu_t *) submenu); -} - -void glutAttachMenu(int button) -{ - GGIGLUTDPRINT_CORE("glutAttachMenu() called\n"); - - mainmenu=curmenu; - __glut_menubutton=button; -} - -void glutDetachMenu(int button) -{ - GGIGLUTDPRINT_CORE("glutDetachMenu() called\n"); -} - -void glutVisibilityFunc(void (*func)(int state)) -{ - GGIGLUTDPRINT_CORE("glutVisibilityFunc() called\n"); - - __glut_visibility=func; -} - -void glutMouseFunc(void (*mouse)(int, int, int, int)) -{ - GGIGLUTDPRINT_CORE("glutMouseFunc() called\n"); - - __glut_mouse=mouse; -} - -void glutMotionFunc(void (*motion)(int,int)) -{ - GGIGLUTDPRINT_CORE("glutMotionFunc() called\n"); - - __glut_motion=motion; -} - -void glutPassiveMotionFunc(void (*motion)(int,int)) -{ - GGIGLUTDPRINT_CORE("glutPassiveMotionFunc() called\n"); - - __glut_passive_motion=motion; -} - -void glutSetWindowTitle(const char *title) -{ - GGIGLUTDPRINT_CORE("glutSetWindowTitle() called\n"); -} - -void glutSetIconTitle(const char *title) -{ - GGIGLUTDPRINT_CORE("glutSetIconTitle() called\n"); -} - -void glutChangeToMenuEntry(int item,const char *label,int value) -{ - GGIGLUTDPRINT_CORE("glutChangeToMenuEntry() called\n"); - - if (item>0 && item<=curmenu->num_entries) { - item--; - free(curmenu->label[item]); - curmenu->label[item]=strdup(label); - curmenu->value[item]=value; - curmenu->submenu[item]=NULL; - } -} -void glutChangeToSubMenu(int item,const char *label,int submenu) -{ - GGIGLUTDPRINT_CORE("glutChengeToSubMenu() called\n"); - - if (item>0 && item<=curmenu->num_entries) { - item--; - free(curmenu->label[item]); - curmenu->label[item]=strdup(label); - curmenu->value[item]=0; - curmenu->submenu[item]=(menu_t *)submenu; - } -} - -void glutDestroyMenu(int menu) -{ - menu_t *m=(menu_t *)menu; - int i; - - GGIGLUTDPRINT_CORE("glutDestroyMenu() called\n"); - - for (i=0;inum_entries;i++) { - free(m->label[i]); - } - free(m); -} - -int glutCreateSubWindow(int win,int x,int y,int w,int h) -{ - GGIGLUTDPRINT_CORE("glutCreateSubWindow() called\n"); - - return 0; -} - -void glutDestroyWindow(int win) -{ - GGIGLUTDPRINT_CORE("glutDestroyWindow() called\n"); -} - -int glutGetWindow(void) -{ - GGIGLUTDPRINT_CORE("glutGetWindow() called\n"); - - return 0; -} - -void glutSetWindow(int win) -{ - GGIGLUTDPRINT_CORE("glutSetWindow() called\n"); -} - -void glutPositionWindow(int x,int y) -{ - GGIGLUTDPRINT_CORE("glutPositionWindow() called\n"); -} - -void glutReshapeWindow(int x,int y) -{ - GGIGLUTDPRINT_CORE("glutReshapeWindow() called\n"); -} - -void glutPushWindow(void) -{ - GGIGLUTDPRINT_CORE("glutPushWindow() called\n"); -} - -void glutPopWindow(void) -{ - GGIGLUTDPRINT_CORE("glutPopWindow() called\n"); -} - -void glutIconifyWindow(void) -{ - GGIGLUTDPRINT_CORE("glutIconifyWindow() called\n"); -} - -void glutShowWindow() -{ - GGIGLUTDPRINT_CORE("glutShowWindow() called\n"); -} - -void glutHideWindow() -{ - GGIGLUTDPRINT_CORE("glutHideWindow() called\n"); -} - -void glutSetCursor(int cursor) -{ - GGIGLUTDPRINT_CORE("glutSetCursor() called\n"); -} - -void glutWarpPointer(int x,int y) -{ - GGIGLUTDPRINT_CORE("glutWarpPointer() called\n"); -} - -void glutEstablishOverlay(void) -{ - GGIGLUTDPRINT_CORE("glutEstablishOverlay() called\n"); -} - -void glutRemoveOverlay(void) -{ - GGIGLUTDPRINT_CORE("glutRemoveOverlay() called\n"); -} - -void glutUseLayer(GLenum layer) -{ - GGIGLUTDPRINT_CORE("glutUseLayer() called\n"); -} - -int glutLayerGet(GLenum type) -{ - GGIGLUTDPRINT_CORE("glutLayerGet() called\n"); - return 0; -} - -void glutPostOverlayRedisplay(void) -{ - GGIGLUTDPRINT_CORE("glutPostOverlayRedisplay() called\n"); -} - -void glutPostWindowOverlayRedisplay(int w) -{ - GGIGLUTDPRINT_CORE("glutPostWindowOverlayRedisplay() called\n"); -} - -void glutShowOverlay(void) -{ - GGIGLUTDPRINT_CORE("glutShowOverlay() called\n"); -} - -void glutHideOverlay(void) -{ - GGIGLUTDPRINT_CORE("glutHideOverlay() called\n"); -} - -int glutGetMenu(void) -{ - GGIGLUTDPRINT_CORE("glutGetMenu() called\n"); - return 0; -} - -void glutSetMenu(int menu) -{ - GGIGLUTDPRINT_CORE("glutSetMenu() called\n"); -} - -void glutRemoveMenuItem(int item) -{ - GGIGLUTDPRINT_CORE("glutRemoveMenuItem() called\n"); -} - -void glutSpaceBallMotionFunc(void (*func)(int key,int x,int y)) -{ - GGIGLUTDPRINT_CORE("glutSpaceBallMotionFunc() called\n"); -} - -void glutSpaceBallRotateFunc(void (*func)(int x,int y,int z)) -{ - GGIGLUTDPRINT_CORE("glutSpaceBallRotateFunc() called\n"); -} - -void glutSpaceBallButtonFunc(void (*func)(int button,int state)) -{ - GGIGLUTDPRINT_CORE("glutSpaceBallButtonFunc() called\n"); -} - -void glutCopyColormap(int win) -{ - GGIGLUTDPRINT_CORE("glutCopyColormap() called\n"); -} - -int glutDeviceGet(GLenum param) -{ - GGIGLUTDPRINT_CORE("glutDeviceGet() called\n"); - - return 0; -} diff --git a/src/mesa/drivers/ggi/default/.gitignore b/src/mesa/drivers/ggi/default/.gitignore deleted file mode 100644 index c8a526b14d7..00000000000 --- a/src/mesa/drivers/ggi/default/.gitignore +++ /dev/null @@ -1 +0,0 @@ -genkgi.conf diff --git a/src/mesa/drivers/ggi/default/genkgi.conf.in b/src/mesa/drivers/ggi/default/genkgi.conf.in deleted file mode 100644 index 02acad2a191..00000000000 --- a/src/mesa/drivers/ggi/default/genkgi.conf.in +++ /dev/null @@ -1,4 +0,0 @@ -# GGIMesa genkgi helper configuration -.root: @ggi_libdir@/ggi/mesa/default - -tgt-fbdev-kgicon-d3dim-mesa d3dim.so diff --git a/src/mesa/drivers/ggi/default/genkgi.h b/src/mesa/drivers/ggi/default/genkgi.h deleted file mode 100644 index 6d0963416f9..00000000000 --- a/src/mesa/drivers/ggi/default/genkgi.h +++ /dev/null @@ -1,76 +0,0 @@ -/* -****************************************************************************** - - GGIMesa - KGIcon specific overrides for fbcon-mesa - API header - - Copyright (C) 1999 Jon Taylor [taylorj@ggi-project.org] - - 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 - THE AUTHOR(S) 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. - -****************************************************************************** -*/ - -#ifndef _GENKGI_MESA_H -#define _GENKGI_MESA_H - -#undef KGI_USE_PPBUFS - -#include -#include - -#include -#include -#include - -#ifndef MAP_FAILED -#define MAP_FAILED ((void *)-1) -#endif - -/* FIXME: LibGGI needs to export its genkgi.h */ -struct genkgi_priv -{ - ggi_gc *mapped_gc; - unsigned int gc_size; - ggifunc_drawline *drawline; - ggifunc_drawbox *drawbox; - ggifunc_fillscreen *fillscreen; - int fd_gc; - int close_gc; - int fd_kgicommand; - uint8 *mapped_kgicommand; - uint8 *kgicommand_ptr; - unsigned int kgicommand_buffersize; -}; - -#define GENKGI_PRIV(vis) ((struct genkgi_priv *)FBDEV_PRIV(vis)->accelpriv) - -extern ggifunc_getapi GGIMesa_genkgi_getapi; -extern ggifunc_flush GGIMesa_genkgi_flush; - -struct genkgi_priv_mesa -{ - char accel[100]; - int have_accel; - void *accelpriv; /* Private data of subdrivers */ - struct genkgi_priv *oldpriv; /* LibGGI's private data */ -}; - -#define GENKGI_PRIV_MESA(vis) ((struct genkgi_priv_mesa *)FBDEV_PRIV_MESA(vis)->accelpriv) - -#endif /* _GENKHI_MESA_H */ diff --git a/src/mesa/drivers/ggi/default/genkgi_mode.c b/src/mesa/drivers/ggi/default/genkgi_mode.c deleted file mode 100644 index f81d6a45bd6..00000000000 --- a/src/mesa/drivers/ggi/default/genkgi_mode.c +++ /dev/null @@ -1,97 +0,0 @@ -/* -****************************************************************************** - - display-fbdev-kgicon-generic-mesa - - Copyright (C) 1999 Jon Taylor [taylorj@ggi-project.org] - - 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 - THE AUTHOR(S) 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. - -****************************************************************************** -*/ - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include "genkgi.h" - -int GGIMesa_genkgi_getapi(ggi_visual *vis, int num, char *apiname, char *arguments) -{ - struct genkgi_priv_mesa *priv = GENKGI_PRIV_MESA(vis); - - GGIMESADPRINT_CORE("Entered mesa_genkgi_getapi, num=%d\n", num); - - strcpy(arguments, ""); - - switch(num) - { - case 0: - if (priv->have_accel) - { - strcpy(apiname, priv->accel); - return 0; - } - break; - } - return -1; -} - -int GGIMesa_genkgi_flush(ggi_visual *vis, int x, int y, int w, int h, int tryflag) -{ - struct genkgi_priv_mesa *priv = GENKGI_PRIV_MESA(vis); - int junkval; - - priv->oldpriv->kgicommand_ptr += getpagesize(); - (kgiu32)(priv->oldpriv->kgicommand_ptr) &= 0xfffff000; - junkval = *((int *)(priv->oldpriv->kgicommand_ptr)); - - /* Check if we are now in the last page, and reset the - * FIFO if so. We can't use the last page to send - * more commands, since there's no page after it that - * we can touch to fault in the last page's commands. - * - * FIXME: This will be replaced with a flush-and-reset handler - * on the end-of-buffer pagefault at some point.... - * - */ - if ((priv->oldpriv->kgicommand_ptr - priv->oldpriv->mapped_kgicommand) - >= (priv->oldpriv->kgicommand_buffersize - getpagesize())) - { - munmap(priv->oldpriv->mapped_kgicommand, priv->oldpriv->kgicommand_buffersize); - if ((priv->oldpriv->mapped_kgicommand = - mmap(NULL, - priv->oldpriv->kgicommand_buffersize, - PROT_READ | PROT_WRITE, - MAP_SHARED, - priv->oldpriv->fd_kgicommand, - 0)) == MAP_FAILED) - { - ggiPanic("Failed to remap kgicommand!"); - } - priv->oldpriv->kgicommand_ptr = priv->oldpriv->mapped_kgicommand; - } - return 0; -} diff --git a/src/mesa/drivers/ggi/default/genkgi_visual.c b/src/mesa/drivers/ggi/default/genkgi_visual.c deleted file mode 100644 index d7838cae6e0..00000000000 --- a/src/mesa/drivers/ggi/default/genkgi_visual.c +++ /dev/null @@ -1,190 +0,0 @@ -/* -****************************************************************************** - - genkgi_visual.c: visual handling for the generic KGI helper - - Copyright (C) 1999 Jon Taylor [taylorj@ggi-project.org] - - 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 - THE AUTHOR(S) 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. - -****************************************************************************** -*/ - -#include -#include -#include -#include -#include "genkgi.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef HAVE_SYS_VT_H -#include -#else -#include -#endif -#ifdef HAVE_LINUX_KDEV_T_H -#include -#endif -#include - -#define DEFAULT_FBNUM 0 - -static char accel_prefix[] = "tgt-fbdev-kgicon-"; -#define PREFIX_LEN (sizeof(accel_prefix)) - -typedef struct { - int async; - char *str; -} accel_info; - -static accel_info accel_strings[] = -{ - { 0, "d3dim" }, /* Direct3D Immediate Mode */ -}; - -#define NUM_ACCELS (sizeof(accel_strings)/sizeof(accel_info)) - -/* FIXME: These should be defined in the makefile system */ -#define CONF_FILE "/usr/local/etc/ggi/mesa/targets/genkgi.conf" -void *_configHandle; -char confstub[512] = CONF_FILE; -char *conffile = confstub; - -static int changed(ggi_visual_t vis, int whatchanged) -{ - GGIMESADPRINT_CORE("Entered ggimesa_genkgi_changed\n"); - - switch (whatchanged) - { - case GGI_CHG_APILIST: - { - char api[256]; - char args[256]; - int i; - const char *fname; - ggi_dlhandle *lib; - - for (i = 0; ggiGetAPI(vis, i, api, args) == 0; i++) - { - strcat(api, "-mesa"); - GGIMESADPRINT_CORE("ggimesa_genkgi_changed: api=%s, i=%d\n", api, i); - fname = ggMatchConfig(_configHandle, api, NULL); - if (fname == NULL) - { - /* No special implementation for this sublib */ - continue; - } - - lib = ggiExtensionLoadDL(vis, fname, args, NULL); - } - } - break; - } - return 0; -} - -static int GGIdlinit(ggi_visual *vis, struct ggi_dlhandle *dlh, - const char *args, void *argptr, uint32 *dlret) -{ - struct genkgi_priv_mesa *priv; - char libname[256], libargs[256]; - int id, err; - struct stat junk; - ggifunc_getapi *oldgetapi; - - GGIMESADPRINT_CORE("display-fbdev-kgicon-mesa: GGIdlinit start\n"); - - GENKGI_PRIV_MESA(vis) = priv = malloc(sizeof(struct genkgi_priv_mesa)); - if (priv == NULL) - { - fprintf(stderr, "Failed to allocate genkgi private data\n"); - return GGI_DL_ERROR; - } - - priv->oldpriv = GENKGI_PRIV(vis); -#if 0 - err = ggLoadConfig(conffile, &_configHandle); - if (err != GGI_OK) - { - gl_ggiPrint("display-fbdev-kgicon-mesa: Couldn't open %s\n", conffile); - return err; - } - - /* Hack city here. We need to probe the KGI driver properly for - * suggest-strings to discover the acceleration type(s). - */ - priv->have_accel = 0; - - if (stat("/proc/gfx0", &junk) == 0) - { - sprintf(priv->accel, "%s%s", accel_prefix, "d3dim"); - priv->have_accel = 1; - GGIMESADPRINT_CORE("display-fbdev-kgicon-mesa: Using accel: \"%s\"\n", priv->accel); - } - - /* Mode management */ - vis->opdisplay->getapi = GGIMesa_genkgi_getapi; - ggiIndicateChange(vis, GGI_CHG_APILIST); - - /* Give the accel sublibs a chance to set up a driver */ - if (priv->have_accel == 1) - { - oldgetapi = vis->opdisplay->getapi; - vis->opdisplay->getapi = GGIMesa_genkgi_getapi; - changed(vis, GGI_CHG_APILIST); - /* If the accel sublibs didn't produce, back up - * and keep looking */ - if ((LIBGGI_MESAEXT(vis)->update_state == NULL) || - (LIBGGI_MESAEXT(vis)->setup_driver == NULL)) - vis->opdisplay->getapi = oldgetapi; - } - - LIBGGI_MESAEXT(vis)->update_state = genkgi_update_state; - LIBGGI_MESAEXT(vis)->setup_driver = genkgi_setup_driver; -#endif - GGIMESADPRINT_CORE("display-fbdev-kgicon-mesa: GGIdlinit finished\n"); - - *dlret = GGI_DL_OPDRAW; - return 0; -} - -int MesaGGIdl_fbdev(int func, void **funcptr) -{ - switch (func) { - case GGIFUNC_open: - *funcptr = GGIopen; - return 0; - case GGIFUNC_exit: - case GGIFUNC_close: - *funcptr = NULL; - return 0; - default: - *funcptr = NULL; - } - return GGI_ENOTFOUND; -} - -#include diff --git a/src/mesa/drivers/ggi/default/linear.c b/src/mesa/drivers/ggi/default/linear.c deleted file mode 100644 index 9d29761ad5b..00000000000 --- a/src/mesa/drivers/ggi/default/linear.c +++ /dev/null @@ -1,409 +0,0 @@ -/* GGI-Driver for MESA - * - * Copyright (C) 1997 Uwe Maurer - * - * 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. - * --------------------------------------------------------------------- - * This code was derived from the following source of information: - * - * svgamesa.c and ddsample.c by Brian Paul - * - */ - -#include -#include -#include -#include "swrast/swrast.h" - -#define RMASK ((1<>RS) << (G+B)) | \ - ((color[GCOMP]>>GS) << B) | \ - ((color[BCOMP]>>BS))) - -#define FLIP(coord) (LIBGGI_VIRTY(ggi_ctx->ggi_visual) - (coord) - 1) - - -/**********************************************************************/ -/***** Write spans of pixels *****/ -/**********************************************************************/ - -void GGIwrite_ci32_span(const GLcontext *ctx, GLuint n, GLint x, GLint y, - const GLuint ci[], const GLubyte mask[]) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - FB_TYPE *fb; - fb = (FB_TYPE *)((char *)LIBGGI_CURWRITE(ggi_ctx->ggi_visual) + - FLIP(y)*LIBGGI_FB_W_STRIDE(ggi_ctx->ggi_visual)) + x; - - if (mask) { - while (n--) { - if (*mask++) - *fb = *ci; - fb++; - ci++; - } - } else { - while (n--) *fb++ = *ci++; - } -} - -void GGIwrite_ci8_span(const GLcontext *ctx, GLuint n, GLint x, GLint y, - const GLubyte ci[], const GLubyte mask[]) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - FB_TYPE *fb; - fb = (FB_TYPE *)((char *)LIBGGI_CURWRITE(ggi_ctx->ggi_visual) + - FLIP(y)*LIBGGI_FB_W_STRIDE(ggi_ctx->ggi_visual)) + x; - - if (mask) { - while (n--) { - if (*mask++) - *fb = *ci; - fb++; - ci++; - } - } else { - while (n--) *fb++ = *ci++; - } -} - - -void GGIwrite_rgba_span(const GLcontext *ctx, GLuint n, GLint x, GLint y, - const GLchan rgba[][4], const GLubyte mask[]) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - FB_TYPE *fb; - fb = (FB_TYPE *)((char *)LIBGGI_CURWRITE(ggi_ctx->ggi_visual) + - FLIP(y)*LIBGGI_FB_W_STRIDE(ggi_ctx->ggi_visual)) + x; - - if (mask) { - while (n--) { - if (*mask++) - *fb = PACK(rgba[0]); - fb++; - rgba++; - } - } else { - while (n--) { - *fb++ = PACK(rgba[0]); - rgba++; - } - } -} - -void GGIwrite_rgb_span(const GLcontext *ctx, GLuint n, GLint x, GLint y, - const GLchan rgba[][3], const GLubyte mask[]) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - FB_TYPE *fb; - fb = (FB_TYPE *)((char *)LIBGGI_CURWRITE(ggi_ctx->ggi_visual) + - FLIP(y)*LIBGGI_FB_W_STRIDE(ggi_ctx->ggi_visual)) + x; - - if (mask) { - while (n--) { - if (*mask++) - *fb = PACK(rgba[0]); - fb++; - rgba++; - } - } else { - while (n--) { - *fb++ = PACK(rgba[0]); - rgba++; - } - } -} - - -void GGIwrite_mono_rgba_span(const GLcontext *ctx, GLuint n, GLint x, GLint y, - const GLchan color[4], const GLubyte mask[]) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - FB_TYPE *fb; - fb = (FB_TYPE *)((char *)LIBGGI_CURWRITE(ggi_ctx->ggi_visual) + - FLIP(y)*LIBGGI_FB_W_STRIDE(ggi_ctx->ggi_visual)) + x; - - if (mask) { - while (n--){ - if (*mask++) - *fb = PACK(color); - ++fb; - } - } else { - while (n--) - *fb++ = PACK(color); - - /* Alternatively we could write a potentialy faster HLine - ggiSetGCForeground(ggi_ctx->ggi_visual, color); - ggiDrawHLine(ggi_ctx->ggi_visual,x,FLIP(y),n); - */ - } -} - -void GGIwrite_mono_ci_span(const GLcontext *ctx, GLuint n, GLint x, GLint y, - const GLuint ci, const GLubyte mask[]) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - FB_TYPE *fb; - fb = (FB_TYPE *)((char *)LIBGGI_CURWRITE(ggi_ctx->ggi_visual) + - FLIP(y)*LIBGGI_FB_W_STRIDE(ggi_ctx->ggi_visual)) + x; - - if (mask){ - while (n--){ - if (*mask++) - *fb = ci; - ++fb; - } - } else { - while (n--) - *fb++ = ci; - - /* Alternatively we could write a potentialy faster HLine - ggiSetGCForeground(ggi_ctx->ggi_visual, ci); - ggiDrawHLine(ggi_ctx->ggi_visual, x, FLIP(y), n); - */ - } -} - - -/**********************************************************************/ -/***** Read spans of pixels *****/ -/**********************************************************************/ - - -void GGIread_ci32_span(const GLcontext *ctx, - GLuint n, GLint x, GLint y, GLuint ci[]) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - FB_TYPE *fb; - fb = (FB_TYPE *)((char *)LIBGGI_CURWRITE(ggi_ctx->ggi_visual) + - FLIP(y)*LIBGGI_FB_W_STRIDE(ggi_ctx->ggi_visual)) + x; - - while (n--) - *ci++ = (GLuint)*fb++; -} - -void GGIread_rgba_span(const GLcontext *ctx, - GLuint n, GLint x, GLint y, GLchan rgba[][4]) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - FB_TYPE color; - FB_TYPE *fb; - fb = (FB_TYPE *)((char *)LIBGGI_CURWRITE(ggi_ctx->ggi_visual) + - FLIP(y)*LIBGGI_FB_W_STRIDE(ggi_ctx->ggi_visual)) + x; - - while (n--) { - color = *fb++; - rgba[0][RCOMP] = (GLubyte) (color>>(G+B))<>B)& ((1<DriverCtx; - int stride = LIBGGI_FB_W_STRIDE(ggi_ctx->ggi_visual); - char *fb = (char *)LIBGGI_CURWRITE(ggi_ctx->ggi_visual); - - while (n--) { - if (*mask++){ - FB_TYPE *dst = (FB_TYPE*)(fb + FLIP(*y)*stride) + *x; - *dst = *ci; - } - ci++; - x++; - y++; - } -} - -void GGIwrite_mono_ci_pixels(const GLcontext *ctx, - GLuint n, const GLint x[], const GLint y[], - GLuint ci, const GLubyte mask[]) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - int stride = LIBGGI_FB_W_STRIDE(ggi_ctx->ggi_visual); - char *fb = (char *)LIBGGI_CURWRITE(ggi_ctx->ggi_visual); - - while (n--) { - if (*mask++){ - FB_TYPE *dst = (FB_TYPE*)(fb + FLIP(*y)*stride) + *x; - *dst = ci; - } - x++; - y++; - } -} - -void GGIwrite_rgba_pixels(const GLcontext *ctx, - GLuint n, const GLint x[], const GLint y[], - const GLchan rgba[][4], const GLubyte mask[]) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - int stride = LIBGGI_FB_W_STRIDE(ggi_ctx->ggi_visual); - char *fb = (char *)LIBGGI_CURWRITE(ggi_ctx->ggi_visual); - - while (n--) { - if (*mask++){ - FB_TYPE *dst = (FB_TYPE*)(fb + FLIP(*y)*stride) + *x; - *dst = PACK(rgba[0]); - } - x++; - y++; - rgba++; - } -} - -void GGIwrite_mono_rgba_pixels(const GLcontext *ctx, - GLuint n, const GLint x[], const GLint y[], - const GLchan rgba[4], const GLubyte mask[]) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - int stride = LIBGGI_FB_W_STRIDE(ggi_ctx->ggi_visual); - char *fb = (char *)LIBGGI_CURWRITE(ggi_ctx->ggi_visual); - - while (n--) { - if (*mask++){ - FB_TYPE *dst = (FB_TYPE*)(fb + FLIP(*y)*stride) + *x; - *dst = PACK(rgba); - } - - x++; - y++; - } -} - -/**********************************************************************/ -/***** Read arrays of pixels *****/ -/**********************************************************************/ - -void GGIread_ci32_pixels(const GLcontext *ctx, - GLuint n, const GLint x[], const GLint y[], - GLuint ci[], const GLubyte mask[]) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - int stride = LIBGGI_FB_W_STRIDE(ggi_ctx->ggi_visual); - char *fb = (char *)LIBGGI_CURWRITE(ggi_ctx->ggi_visual); - - while (n--) { - if (*mask++){ - FB_TYPE *src = (FB_TYPE*)(fb + FLIP(*y)*stride) + *x; - *ci = *src; - } - ci++; - x++; - y++; - } -} - -void GGIread_rgba_pixels(const GLcontext *ctx, - GLuint n, const GLint x[], const GLint y[], - GLubyte rgba[][4], const GLubyte mask[]) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - int stride = LIBGGI_FB_W_STRIDE(ggi_ctx->ggi_visual); - char *fb = (char *)LIBGGI_CURWRITE(ggi_ctx->ggi_visual); - FB_TYPE color; - - while (n--) { - if (*mask++) { - FB_TYPE *src = (FB_TYPE*)(fb + FLIP(*y)*stride) + *x; - color = *src; - - rgba[0][RCOMP] = (GLubyte)(color>>(G+B))<>B)& ((1<gl_ctx); - - GGIMESADPRINT_LIBS("linear_%d: GGIsetup_driver\n", sizeof(FB_TYPE)*8); - - swdd->WriteRGBASpan = GGIwrite_rgba_span; - swdd->WriteRGBSpan = GGIwrite_rgb_span; - swdd->WriteMonoRGBASpan = GGIwrite_mono_rgba_span; - swdd->WriteRGBAPixels = GGIwrite_rgba_pixels; - swdd->WriteMonoRGBAPixels = GGIwrite_mono_rgba_pixels; - - swdd->WriteCI32Span = GGIwrite_ci32_span; - swdd->WriteCI8Span = GGIwrite_ci8_span; - swdd->WriteMonoCISpan = GGIwrite_mono_ci_span; - swdd->WriteCI32Pixels = GGIwrite_ci32_pixels; - swdd->WriteMonoCIPixels = GGIwrite_mono_ci_pixels; - - swdd->ReadCI32Span = GGIread_ci32_span; - swdd->ReadRGBASpan = GGIread_rgba_span; - swdd->ReadCI32Pixels = GGIread_ci32_pixels; - swdd->ReadRGBAPixels = GGIread_rgba_pixels; - - swdd->SetBuffer = GGIset_buffer; - - return 0; -} - -static int GGIopen(ggi_visual_t vis,struct ggi_dlhandle *dlh, - const char *args,void *argptr, uint32 *dlret) -{ - GGIMESADPRINT_CORE("linear_%d: GGIOpen\n", sizeof(FB_TYPE)*8); - LIBGGI_MESAEXT(vis)->setup_driver = GGIsetup_driver; - - *dlret = GGI_DL_OPDRAW; - return 0; -} - -int DLOPENFUNC(int func, void **funcptr) -{ - switch (func) { - case GGIFUNC_open: - *funcptr = GGIopen; - return 0; - case GGIFUNC_exit: - case GGIFUNC_close: - *funcptr = NULL; - return 0; - default: - *funcptr = NULL; - } - return GGI_ENOTFOUND; -} - diff --git a/src/mesa/drivers/ggi/default/linear_15.c b/src/mesa/drivers/ggi/default/linear_15.c deleted file mode 100644 index ead7cc58475..00000000000 --- a/src/mesa/drivers/ggi/default/linear_15.c +++ /dev/null @@ -1,36 +0,0 @@ -/* GGI-Driver for MESA - * - * Copyright (C) 1997 Uwe Maurer - * - * 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. - * --------------------------------------------------------------------- - * This code was derived from the following source of information: - * - * svgamesa.c and ddsample.c by Brian Paul - * - */ - -#include - -#define R 5 -#define G 5 -#define B 5 - -#define FB_TYPE uint16 -#define FB_BITS 15 -#define DLOPENFUNC MesaGGIdl_linear_15 - -#include "linear.c" - diff --git a/src/mesa/drivers/ggi/default/linear_16.c b/src/mesa/drivers/ggi/default/linear_16.c deleted file mode 100644 index 6028699bbc9..00000000000 --- a/src/mesa/drivers/ggi/default/linear_16.c +++ /dev/null @@ -1,36 +0,0 @@ -/* GGI-Driver for MESA - * - * Copyright (C) 1997 Uwe Maurer - * - * 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. - * --------------------------------------------------------------------- - * This code was derived from the following source of information: - * - * svgamesa.c and ddsample.c by Brian Paul - * - */ - -#include - -#define R 5 -#define G 6 -#define B 5 - -#define FB_TYPE uint16 -#define FB_BITS 16 -#define DLOPENFUNC MesaGGIdl_linear_16 - -#include "linear.c" - diff --git a/src/mesa/drivers/ggi/default/linear_24.c b/src/mesa/drivers/ggi/default/linear_24.c deleted file mode 100644 index 7a2236f1241..00000000000 --- a/src/mesa/drivers/ggi/default/linear_24.c +++ /dev/null @@ -1,36 +0,0 @@ -/* GGI-Driver for MESA - * - * Copyright (C) 1997 Uwe Maurer - * - * 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. - * --------------------------------------------------------------------- - * This code was derived from the following source of information: - * - * svgamesa.c and ddsample.c by Brian Paul - * - */ - -#include - -#define R 8 -#define G 8 -#define B 8 - -#define FB_TYPE uint32 -#define FB_BITS 24 -#define DLOPENFUNC MesaGGIdl_linear_24 - -#include "linear.c" - diff --git a/src/mesa/drivers/ggi/default/linear_32.c b/src/mesa/drivers/ggi/default/linear_32.c deleted file mode 100644 index 7cbf945f359..00000000000 --- a/src/mesa/drivers/ggi/default/linear_32.c +++ /dev/null @@ -1,36 +0,0 @@ -/* GGI-Driver for MESA - * - * Copyright (C) 1997 Uwe Maurer - * - * 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. - * --------------------------------------------------------------------- - * This code was derived from the following source of information: - * - * svgamesa.c and ddsample.c by Brian Paul - * - */ - -#include - -#define R 8 -#define G 8 -#define B 8 - -#define FB_TYPE uint32 -#define FB_BITS 32 -#define DLOPENFUNC MesaGGIdl_linear_32 - -#include "linear.c" - diff --git a/src/mesa/drivers/ggi/default/linear_8.c b/src/mesa/drivers/ggi/default/linear_8.c deleted file mode 100644 index 9c7b5d712f0..00000000000 --- a/src/mesa/drivers/ggi/default/linear_8.c +++ /dev/null @@ -1,36 +0,0 @@ -/* GGI-Driver for MESA - * - * Copyright (C) 1997 Uwe Maurer - * - * 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. - * --------------------------------------------------------------------- - * This code was derived from the following source of information: - * - * svgamesa.c and ddsample.c by Brian Paul - * - */ - -#include - -#define R 3 -#define G 3 -#define B 2 - -#define FB_TYPE uint8 -#define FB_BITS 8 -#define DLOPENFUNC MesaGGIdl_linear_8 - -#include "linear.c" - diff --git a/src/mesa/drivers/ggi/default/stubs.c b/src/mesa/drivers/ggi/default/stubs.c deleted file mode 100644 index 62722972b2a..00000000000 --- a/src/mesa/drivers/ggi/default/stubs.c +++ /dev/null @@ -1,512 +0,0 @@ -/* GGI-Driver for MESA - * - * Copyright (C) 1997 Uwe Maurer - * - * 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. - * --------------------------------------------------------------------- - * This code was derived from the following source of information: - * - * svgamesa.c and ddsample.c by Brian Paul - * - */ - -#include - -#include -#include -#include - -#include "swrast/swrast.h" -//#include "swrast_setup/swrast_setup.h" -//#include "swrast/s_context.h" -//#include "swrast/s_depth.h" -//#include "swrast/s_triangle.h" - -#define FLIP(coord) (LIBGGI_MODE(ggi_ctx->ggi_visual)->visible.y-(coord)-1) - -/**********************************************************************/ -/***** Write spans of pixels *****/ -/**********************************************************************/ - -void GGIwrite_ci32_span(const GLcontext *ctx, - GLuint n, GLint x, GLint y, - const GLuint ci[], - const GLubyte mask[] ) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - y = FLIP(y); - if (mask) - { - while (n--) { - if (*mask++) - ggiPutPixel(ggi_ctx->ggi_visual, x, y, *ci); - x++; - ci++; - } - } - else - { - while (n--) - ggiPutPixel(ggi_ctx->ggi_visual, x++, y, *ci++); - } -} - -void GGIwrite_ci8_span(const GLcontext *ctx, - GLuint n, GLint x, GLint y, - const GLubyte ci[], - const GLubyte mask[] ) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - y = FLIP(y); - if (mask) - { - while (n--) { - if (*mask++) - ggiPutPixel(ggi_ctx->ggi_visual, x, y, *ci); - x++; - ci++; - } - } - else - { - while (n--) - ggiPutPixel(ggi_ctx->ggi_visual, x++, y, *ci++); - } -} - -void GGIwrite_mono_ci_span(const GLcontext *ctx, GLuint n, GLint x, GLint y, - const GLuint ci, const GLubyte mask[]) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - y = FLIP(y); - if (mask) - { - while (n--) { - if (*mask++) - ggiPutPixel(ggi_ctx->ggi_visual, x, y, ci); - x++; - } - } - else - { - while (n--) - ggiPutPixel(ggi_ctx->ggi_visual, x++, y, ci); - } -} - -void GGIwrite_mono_rgba_span(const GLcontext *ctx, GLuint n, GLint x, GLint y, - const GLchan rgba[4], const GLubyte mask[]) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - ggi_color rgb; - ggi_pixel col; - - y = FLIP(y); - - rgb.r = (uint16)(rgba[RCOMP]) << SHIFT; - rgb.g = (uint16)(rgba[GCOMP]) << SHIFT; - rgb.b = (uint16)(rgba[BCOMP]) << SHIFT; - col = ggiMapColor(ggi_ctx->ggi_visual, &rgb); - - if (mask) - { - while (n--) { - if (*mask++) - ggiPutPixel(ggi_ctx->ggi_visual, x, y, col); - x++; - } - } - else - { - ggiDrawHLine(ggi_ctx->ggi_visual, x, y, n); - } -} - -void GGIwrite_rgba_span( const GLcontext *ctx, - GLuint n, GLint x, GLint y, - const GLubyte rgba[][4], - const GLubyte mask[]) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - ggi_color rgb; - ggi_pixel col; - y = FLIP(y); - - if (mask) - { - while (n--) { - if (*mask++) - { - rgb.r = (uint16)(rgba[0][RCOMP]) << SHIFT; - rgb.g = (uint16)(rgba[0][GCOMP]) << SHIFT; - rgb.b = (uint16)(rgba[0][BCOMP]) << SHIFT; - col = ggiMapColor(ggi_ctx->ggi_visual, &rgb); - ggiPutPixel(ggi_ctx->ggi_visual, x, y, col); - } - x++; - rgba++; - } - } - else - { - while (n--) - { - rgb.r = (uint16)(rgba[0][RCOMP]) << SHIFT; - rgb.g = (uint16)(rgba[0][GCOMP]) << SHIFT; - rgb.b = (uint16)(rgba[0][BCOMP]) << SHIFT; - col = ggiMapColor(ggi_ctx->ggi_visual, &rgb); - ggiPutPixel(ggi_ctx->ggi_visual, x++, y, col); - rgba++; - } - } -} - -void GGIwrite_rgb_span( const GLcontext *ctx, - GLuint n, GLint x, GLint y, - const GLubyte rgba[][3], - const GLubyte mask[] ) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - ggi_color rgb; - ggi_pixel col; - y = FLIP(y); - - if (mask) - { - while (n--) { - if (*mask++) - { - rgb.r = (uint16)(rgba[0][RCOMP]) << SHIFT; - rgb.g = (uint16)(rgba[0][GCOMP]) << SHIFT; - rgb.b = (uint16)(rgba[0][BCOMP]) << SHIFT; - col = ggiMapColor(ggi_ctx->ggi_visual, &rgb); - ggiPutPixel(ggi_ctx->ggi_visual, x, y, col); - } - x++; - rgba++; - } - } - else - { - while (n--) - { - rgb.r = (uint16)(rgba[0][RCOMP]) << SHIFT; - rgb.g = (uint16)(rgba[0][GCOMP]) << SHIFT; - rgb.b = (uint16)(rgba[0][BCOMP]) << SHIFT; - col = ggiMapColor(ggi_ctx->ggi_visual, &rgb); - ggiPutPixel(ggi_ctx->ggi_visual, x++, y, col); - rgba++; - } - } -} - - - -/**********************************************************************/ -/***** Read spans of pixels *****/ -/**********************************************************************/ - - -void GGIread_ci32_span( const GLcontext *ctx, - GLuint n, GLint x, GLint y, GLuint ci[]) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - y = FLIP(y); - while (n--) - ggiGetPixel(ggi_ctx->ggi_visual, x++, y, ci++); -} - -void GGIread_rgba_span( const GLcontext *ctx, - GLuint n, GLint x, GLint y, - GLubyte rgba[][4]) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - ggi_color rgb; - ggi_pixel col; - - y = FLIP(y); - - while (n--) - { - ggiGetPixel(ggi_ctx->ggi_visual, x++, y, &col); - ggiUnmapPixel(ggi_ctx->ggi_visual, col, &rgb); - rgba[0][RCOMP] = (GLubyte) (rgb.r >> SHIFT); - rgba[0][GCOMP] = (GLubyte) (rgb.g >> SHIFT); - rgba[0][BCOMP] = (GLubyte) (rgb.b >> SHIFT); - rgba[0][ACOMP] = 0; - rgba++; - } -} - -/**********************************************************************/ -/***** Write arrays of pixels *****/ -/**********************************************************************/ - -void GGIwrite_ci32_pixels( const GLcontext *ctx, - GLuint n, const GLint x[], const GLint y[], - const GLuint ci[], const GLubyte mask[] ) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - while (n--) { - if (*mask++) - ggiPutPixel(ggi_ctx->ggi_visual, *x, FLIP(*y), *ci); - ci++; - x++; - y++; - } -} - -void GGIwrite_mono_ci_pixels(const GLcontext *ctx, - GLuint n, const GLint x[], const GLint y[], - GLuint ci, const GLubyte mask[]) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - while (n--) { - if (*mask++) - ggiPutPixel(ggi_ctx->ggi_visual, *x, FLIP(*y), ci); - x++; - y++; - } -} - -void GGIwrite_rgba_pixels( const GLcontext *ctx, - GLuint n, const GLint x[], const GLint y[], - const GLubyte rgba[][4], - const GLubyte mask[] ) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - ggi_pixel col; - ggi_color rgb; - while (n--) { - if (*mask++) { - rgb.r = (uint16)(rgba[0][RCOMP]) << SHIFT; - rgb.g = (uint16)(rgba[0][GCOMP]) << SHIFT; - rgb.b = (uint16)(rgba[0][BCOMP]) << SHIFT; - col = ggiMapColor(ggi_ctx->ggi_visual, &rgb); - ggiPutPixel(ggi_ctx->ggi_visual, *x, FLIP(*y), col); - } - x++; - y++; - rgba++; - } -} - -void GGIwrite_mono_rgba_pixels(const GLcontext *ctx, - GLuint n, const GLint x[], const GLint y[], - const GLchan rgba[4], const GLubyte mask[]) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - ggi_color rgb; - ggi_pixel col; - - rgb.r = (uint16)(rgba[RCOMP]) << SHIFT; - rgb.g = (uint16)(rgba[GCOMP]) << SHIFT; - rgb.b = (uint16)(rgba[BCOMP]) << SHIFT; - col = ggiMapColor(ggi_ctx->ggi_visual, &rgb); - - while (n--) { - if (*mask++) - ggiPutPixel(ggi_ctx->ggi_visual, *x, FLIP(*y), col); - x++; - y++; - } -} - -/**********************************************************************/ -/***** Read arrays of pixels *****/ -/**********************************************************************/ - -void GGIread_ci32_pixels( const GLcontext *ctx, - GLuint n, const GLint x[], const GLint y[], - GLuint ci[], const GLubyte mask[]) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - while (n--) { - if (*mask++) - ggiGetPixel(ggi_ctx->ggi_visual, *x, FLIP(*y), ci); - ci++; - x++; - y++; - } -} - -void GGIread_rgba_pixels( const GLcontext *ctx, - GLuint n, const GLint x[], const GLint y[], - GLubyte rgba[][4], - const GLubyte mask[] ) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - ggi_color rgb; - ggi_pixel col; - - while (n--) - { - if (*mask++) - { - ggiGetPixel(ggi_ctx->ggi_visual, *x, FLIP(*y), &col); - ggiUnmapPixel(ggi_ctx->ggi_visual, col, &rgb); - rgba[0][RCOMP] = rgb.r >> SHIFT; - rgba[0][GCOMP] = rgb.g >> SHIFT; - rgba[0][BCOMP] = rgb.b >> SHIFT; - rgba[0][ACOMP] = 0; - } - x++; - y++; - rgba++; - } -} - -int GGIextend_visual(ggi_visual_t vis) -{ - return 0; -} - -//static swrast_tri_func ggimesa_stubs_get_triangle_func(GLcontext *ctx); - -int GGIsetup_driver(ggi_mesa_context_t ggi_ctx) -{ - struct swrast_device_driver *swdd = - _swrast_GetDeviceDriverReference(ggi_ctx->gl_ctx); - - GGIMESADPRINT_CORE("stubs: setup_driver\n"); - - swdd->WriteRGBASpan = GGIwrite_rgba_span; - swdd->WriteRGBSpan = GGIwrite_rgb_span; - swdd->WriteMonoRGBASpan = GGIwrite_mono_rgba_span; - swdd->WriteRGBAPixels = GGIwrite_rgba_pixels; - swdd->WriteMonoRGBAPixels = GGIwrite_mono_rgba_pixels; - - swdd->WriteCI32Span = GGIwrite_ci32_span; - swdd->WriteCI8Span = GGIwrite_ci8_span; - swdd->WriteMonoCISpan = GGIwrite_mono_ci_span; - swdd->WriteCI32Pixels = GGIwrite_ci32_pixels; - swdd->WriteMonoCIPixels = GGIwrite_mono_ci_pixels; - - swdd->ReadCI32Span = GGIread_ci32_span; - swdd->ReadRGBASpan = GGIread_rgba_span; - swdd->ReadCI32Pixels = GGIread_ci32_pixels; - swdd->ReadRGBAPixels = GGIread_rgba_pixels; - - return 0; -} - -void GGIupdate_state(ggi_mesa_context_t *ctx) -{ - //ctx->Driver.TriangleFunc = _swsetup_Triangle; -} - -/* -void GGItriangle_flat(GLcontext *ctx, const SWvertex *v0, const SWvertex *v1, const SWvertex *v2) -{ -//#define INTERP_Z 1 -#define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE - -#define SETUP_CODE \ - ggi_color color; \ - color.r = v0->color[0]; \ - color.g = v0->color[1]; \ - color.b = v0->color[2]; \ - color.a = v0->color[3]; \ - ggiSetGCForeground(VIS, ggiMapColor(VIS, &color)); - -#define INNER_LOOP(LEFT,RIGHT,Y) \ - ggiDrawHLine(VIS,LEFT,FLIP(Y),RIGHT-LEFT); - -#include "swrast/s_tritemp.h" -} - - -static void GGItriangle_flat_depth(GLcontext *ctx, const SWvertex *v0, const SWvertex *v1, const SWvertex *v2) -{ -#define INTERP_Z 1 -#define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE - -#define SETUP_CODE \ - ggi_color color; \ - color.r = v0->color[0]; \ - color.g = v0->color[1]; \ - color.b = v0->color[2]; \ - color.a = v0->color[3]; \ - ggiSetGCForeground(VIS, ggiMapColor(VIS, &color)); - -#define INNER_LOOP(LEFT,RIGHT,Y) \ - { \ - GLint i,xx=LEFT,yy=FLIP(Y),n=RIGHT-LEFT,length=0; \ - GLint startx=xx; \ - for (i=0;iStencil._Enabled) return NULL; - if (ctx->Polygon.SmoothFlag) return NULL; - if (ctx->Polygon.StippleFlag) return NULL; - if (ctx->Texture._ReallyEnabled) return NULL; - if (ctx->Light.ShadeModel==GL_SMOOTH) return NULL; - if (ctx->Depth.Test && ctx->Depth.Func != GL_LESS) return NULL; - - if (ctx->Depth.Test) - return GGItriangle_flat_depth; - - return GGItriangle_flat; -} -*/ -static int GGIopen(ggi_visual_t vis, struct ggi_dlhandle *dlh, - const char *args, void *argptr, uint32 *dlret) -{ - LIBGGI_MESAEXT(vis)->update_state = GGIupdate_state; - LIBGGI_MESAEXT(vis)->setup_driver = GGIsetup_driver; - - *dlret = GGI_DL_OPDRAW; - return 0; -} - -int MesaGGIdl_stubs(int func, void **funcptr) -{ - switch (func) { - case GGIFUNC_open: - *funcptr = GGIopen; - return 0; - case GGIFUNC_exit: - case GGIFUNC_close: - *funcptr = NULL; - return 0; - default: - *funcptr = NULL; - } - return GGI_ENOTFOUND; -} diff --git a/src/mesa/drivers/ggi/display/.gitignore b/src/mesa/drivers/ggi/display/.gitignore deleted file mode 100644 index 98858db2c0e..00000000000 --- a/src/mesa/drivers/ggi/display/.gitignore +++ /dev/null @@ -1 +0,0 @@ -fbdev.conf diff --git a/src/mesa/drivers/ggi/display/fbdev.conf.in b/src/mesa/drivers/ggi/display/fbdev.conf.in deleted file mode 100644 index 2acb89426f6..00000000000 --- a/src/mesa/drivers/ggi/display/fbdev.conf.in +++ /dev/null @@ -1,4 +0,0 @@ -# GGIMesa fbdev target configuration -.root: @ggi_libdir@/ggi/mesa/default - -tgt-fbdev-kgicon-generic-mesa genkgi.so diff --git a/src/mesa/drivers/ggi/display/fbdev_mode.c b/src/mesa/drivers/ggi/display/fbdev_mode.c deleted file mode 100644 index 85c35ffe0e0..00000000000 --- a/src/mesa/drivers/ggi/display/fbdev_mode.c +++ /dev/null @@ -1,130 +0,0 @@ -/****************************************************************************** - - display-fbdev-mesa - - Copyright (C) 1999 Jon Taylor [taylorj@ggi-project.org] - - 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 - THE AUTHOR(S) 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. - -****************************************************************************** -*/ - -#include -#include -#include -#include -#include -#include -#include - -#include - -#include -#include -#include -#include - -#ifndef MAP_FAILED -#define MAP_FAILED ((void*)-1) -#endif - -#define FB_KLUDGE_FONTX 8 -#define FB_KLUDGE_FONTY 16 -#define FB_KLUDGE_TEXTMODE 13 -#define TIMINGFILE "/etc/fb.modes" - -int GGIMesa_fbdev_getapi(ggi_visual *vis, int num, char *apiname, char *arguments) -{ - struct fbdev_priv_mesa *priv = GGIMESA_PRIV(vis); - - arguments = '\0'; - - switch(num) { - case 0: - if (priv->oldpriv->have_accel) { - strcpy(apiname, priv->oldpriv->accel); - return 0; - } - break; - } - - return -1; -} - -static int do_setmode(ggi_visual *vis) -{ - struct fbdev_priv_mesa *priv = GGIMESA_PRIV(vis); - int err, id; - char libname[GGI_API_MAXLEN], libargs[GGI_API_MAXLEN]; - ggi_graphtype gt; - - _ggiZapMode(vis, ~GGI_DL_OPDISPLAY); - priv->have_accel = 0; - - for (id = 1; GGIMesa_fbdev_getapi(vis, id, libname, libargs) == 0; id++) { - if (_ggiOpenDL(vis, libname, libargs, NULL) == 0) { - GGIMESADPRINT_LIBS(stderr, "display-fbdev-mesa: Error opening the " - "%s (%s) library.\n", libname, libargs); - return GGI_EFATAL; - } - - GGIMESADPRINT_CORE("Success in loading %s (%s)\n", - libname, libargs); - } - - if (priv->oldpriv->accel && - _ggiOpenDL(vis, priv->accel, NULL, NULL) != 0) { - priv->have_accel = 1; - } else { - priv->have_accel = 0; - } - vis->accelactive = 0; - - ggiIndicateChange(vis, GGI_CHG_APILIST); - - GGIMESADPRINT_CORE("display-fbdev-mesa: do_setmode SUCCESS\n"); - - return 0; -} - - -int GGIMesa_fbdev_setmode(ggi_visual *vis, ggi_mode *mode) -{ - int err; - - if ((err = ggiCheckMode(vis, mode)) != 0) { - return err; - } - - GGIMESADPRINT_CORE("display-fbdev-mesa: setmode %dx%d#%dx%dF%d[0x%02x]\n", - mode->visible.x, mode->visible.y, - mode->virt.x, mode->virt.y, - mode->frames, mode->graphtype); - - memcpy(LIBGGI_MODE(vis), mode, sizeof(ggi_mode)); - - /* Now actually set the mode */ - err = do_setmode(vis); - if (err != 0) { - return err; - } - - GGIMESADPRINT_CORE("display-fbdev-mesa: setmode success.\n"); - - return 0; -} diff --git a/src/mesa/drivers/ggi/display/fbdev_visual.c b/src/mesa/drivers/ggi/display/fbdev_visual.c deleted file mode 100644 index f0c1771c778..00000000000 --- a/src/mesa/drivers/ggi/display/fbdev_visual.c +++ /dev/null @@ -1,138 +0,0 @@ -/****************************************************************************** - - display-fbdev-mesa: visual handling - - Copyright (C) 1999 Jon Taylor [taylorj@ggi-project.org] - - 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 - THE AUTHOR(S) 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. - -****************************************************************************** -*/ - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - - -#ifdef HAVE_SYS_VT_H -#include -#else -#include -#endif -#ifdef HAVE_LINUX_KDEV_T_H -#include -#endif -#include - -#define MAX_DEV_LEN 63 -#define DEFAULT_FBNUM 0 - -static char accel_prefix[] = "tgt-fbdev-"; -#define PREFIX_LEN (sizeof(accel_prefix)) - -typedef struct { - int async; - char *str; -} accel_info; - -static accel_info accel_strings[] = { - { 0, "kgicon-generic",}, /* no accel - check for KGIcon */ - { 0, NULL }, /* Atari Blitter */ -}; - -#define NUM_ACCELS (sizeof(accel_strings)/sizeof(accel_info)) - - - -static int GGIopen(ggi_visual *vis, struct ggi_dlhandle *dlh, - const char *args, void *argptr, uint32 *dlret) -{ - int err; - struct fbdev_priv_mesa *priv; - ggifunc_getapi *oldgetapi; - - - priv->oldpriv = LIBGGI_PRIVATE(vis); /* Hook back */ - - GGIMESA_PRIV(vis) = priv = malloc(sizeof(struct fbdev_priv_mesa)); - if (priv == NULL) { - fprintf(stderr, "GGIMesa: Failed to allocate fbdev private data\n"); - return GGI_ENOMEM; - } - - oldgetapi = vis->opdisplay->getapi; - vis->opdisplay->getapi = GGIMesa_fbdev_getapi; - changed(vis, GGI_CHG_APILIST); - - /* If the accel sublibs didn't sucessfuly hook a driver, - * back up and keep looking */ - if ((LIBGGI_MESAEXT(vis)->update_state == NULL) || - (LIBGGI_MESAEXT(vis)->setup_driver == NULL)) - { - vis->opdisplay->getapi = oldgetapi; - } - - *dlret = GGI_DL_EXTENSION; - return 0; -} - - -static int GGIclose(ggi_visual *vis, struct ggi_dlhandle *dlh) -{ - struct fbdev_priv_mesa *priv = GGIMESA_PRIV(vis); - - if (priv) { - LIBGGI_PRIVATE(vis) = priv->oldpriv; - free(priv); - } - - return 0; -} - - -int MesaGGIdl_fbdev_mesa(int func, void **funcptr) -{ - switch (func) { - case GGIFUNC_open: - *funcptr = GGIopen; - return 0; - case GGIFUNC_exit: - *funcptr = NULL; - return 0; - case GGIFUNC_close: - *funcptr = GGIclose; - return 0; - default: - *funcptr = NULL; - } - - return GGI_ENOTFOUND; -} - - -#include diff --git a/src/mesa/drivers/ggi/ggimesa.c b/src/mesa/drivers/ggi/ggimesa.c deleted file mode 100644 index bc08144d663..00000000000 --- a/src/mesa/drivers/ggi/ggimesa.c +++ /dev/null @@ -1,670 +0,0 @@ -/* GGI-Driver for MESA - * - * Copyright (C) 1997-1998 Uwe Maurer - uwe_maurer@t-online.de - * 2002 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. - * --------------------------------------------------------------------- - * This code was derived from the following source of information: - * - * svgamesa.c and ddsample.c by Brian Paul - * - */ - -#ifdef HAVE_CONFIG_H -#include "conf.h" -#endif - -#include -#include -#include "main/extensions.h" -#include "main/buffers.h" -#include "main/colormac.h" -#include "main/imports.h" -#include "main/matrix.h" -#include "main/teximage.h" -#include "main/texformat.h" -#include "main/texstore.h" -#include "swrast/swrast.h" -#include "swrast_setup/swrast_setup.h" -#include "tnl/tnl.h" -#include "tnl/t_context.h" -#include "tnl/t_pipeline.h" -#include "vbo/vbo.h" - -/* We use LibGG to manage config files */ -#include - - -/* XXX: Those #defines should be provided via - * config.h - */ -#define GGIMESAPATHTAG "pAtHTAg" -#define GGIMESACONFDIR "pAtHTAg/usr/local/etc/ggi" -#define GGIMESATAGLEN 7 -#define GGIMESACONFFILE "ggimesa.conf" - - -/* Static variables - */ -static int _ggimesaLibIsUp = 0; -static void *_ggimesaConfigHandle; -static char _ggimesaconfstub[512] = GGIMESACONFDIR; -static char *_ggimesaconfdir = _ggimesaconfstub+GGIMESATAGLEN; - -int _ggimesaDebugSync = 0; -uint32 _ggimesaDebugState = 0; - - - -/* Extension ID. Defaulting to -1 should make segfault on abuse more likely... - */ -ggi_extid _ggiMesaID = -1; - - -#define SUBLIB_PREFIX "MesaGGIdl_" - - -/* - * Returns the directory where global config files are kept - */ - -const char *ggiMesaGetConfDir(void) -{ -#ifdef __WIN32__ - /* On Win32 we allow overriding of the compiled in path. */ - const char *envdir = getenv("GGI_CONFDIR"); - if (envdir) return envdir; -#endif - return _ggimesaconfdir; -} - - -/* Dummy function which returns -1 - We use this to reset the function pointers */ -static int _ggi_error(void) -{ - GGIMESADPRINT_CORE("_ggi_error() called\n"); - - return -1; -} - - -static int changed(ggi_visual_t vis, int whatchanged) -{ - GLcontext *ctx; - ctx = _mesa_get_current_context(); - - GGIMESADPRINT_CORE("changed() called\n"); - - switch (whatchanged) { - case GGI_CHG_APILIST: - { - char api[GGI_MAX_APILEN]; - char args[GGI_MAX_APILEN]; - int i; - const char *fname; - ggi_dlhandle *lib; - - GLvisual *gl_vis = &(LIBGGI_MESAEXT(vis)->mesa_visual.gl_visual); - GLframebuffer *gl_fb = &(LIBGGI_MESAEXT(vis)->mesa_buffer); - - /* Initialize the framebuffer to provide all necessary - buffers in software. The target libraries that are loaded - next are free to modify this according to their - capabilities. - */ - /* FIXME: if the target changes capabilities we'll leak - swrast's memory !!! Need to deallocate first */ - _mesa_initialize_framebuffer(gl_fb, gl_vis, - gl_vis->depthBits > 0, - gl_vis->stencilBits > 0, - gl_vis->accumRedBits > 0, - gl_vis->alphaBits > 0); - - for (i = 0; ggiGetAPI(vis, i, api, args) == 0; i++) { - strcat(api, "-mesa"); - GGIMESADPRINT_CORE("GGIMesa: looking for" - "a sublib named %s\n", api); - fname = ggMatchConfig(_ggimesaConfigHandle, api, NULL); - if (fname == NULL) { - /* No special implementation for this sublib */ - continue; - } - lib = ggiExtensionLoadDL(vis, fname, args, NULL, - SUBLIB_PREFIX); - } - - /* The targets have cleared everything they can do from - the framebuffer structure so we provide the rest in sw - */ - /*_swrast_alloc_buffers(gl_fb);*/ - - break; - } - } - return 0; -} - - -int ggiMesaInit() -{ - int err; - char *str; - char *conffile; - - GGIMESADPRINT_CORE("ggiMesaInit() called\n"); - - _ggimesaLibIsUp++; - if (_ggimesaLibIsUp > 1) return 0; /* Initialize only at first call */ - - str = getenv("GGIMESA_DEBUGSYNC"); - if (str != NULL) { - _ggimesaDebugSync = 1; - } - - str = getenv("GGIMESA_DEBUG"); - if (str != NULL) { - _ggimesaDebugState = atoi(str); - GGIMESADPRINT_CORE("%s Debugging=%d\n", - _ggimesaDebugSync ? "sync" : "async", - _ggimesaDebugState); - } - - - conffile = malloc(strlen(ggiMesaGetConfDir()) + 1 - + strlen(GGIMESACONFFILE) +1); - if (conffile == NULL) { - fprintf(stderr, "GGIMesa: unable to allocate memory for config filename.\n"); - return GGI_ENOMEM; - } - sprintf(conffile, "%s%c%s", - ggiMesaGetConfDir(), '/', GGIMESACONFFILE); - err = ggLoadConfig(conffile, &_ggimesaConfigHandle); - if (err != GGI_OK) { - fprintf(stderr, "GGIMesa: Couldn't open %s\n", - conffile); - free(conffile); - _ggimesaLibIsUp--; - return err; - } - free(conffile); - - _ggiMesaID = ggiExtensionRegister("GGIMesa", - sizeof(struct ggi_mesa_ext), changed); - if (_ggiMesaID < 0) { - fprintf(stderr, "GGIMesa: failed to register as extension\n"); - _ggimesaLibIsUp--; - ggFreeConfig(_ggimesaConfigHandle); - return _ggiMesaID; - } - - return 0; -} - -int ggiMesaExit(void) -{ - int rc; - - GGIMESADPRINT_CORE("ggiMesaExit() called\n"); - - if (!_ggimesaLibIsUp) return -1; - - if (_ggimesaLibIsUp > 1) { - /* Exit only at last call */ - _ggimesaLibIsUp--; - return 0; - } - - rc = ggiExtensionUnregister(_ggiMesaID); - ggFreeConfig(_ggimesaConfigHandle); - - _ggimesaLibIsUp = 0; - - return rc; -} - - - - -static void gl_ggiUpdateState(GLcontext *ctx, GLuint new_state); - - -static void gl_ggiGetSize(GLframebuffer *fb, GLuint *width, GLuint *height) -{ - /* FIXME: this is a hack to work around the new interface */ - GLcontext *ctx; - ggi_mesa_context_t ggi_ctx; - ctx = _mesa_get_current_context(); - ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - - GGIMESADPRINT_CORE("gl_ggiGetSize() called\n"); - - *width = LIBGGI_VIRTX(ggi_ctx->ggi_visual); - *height = LIBGGI_VIRTY(ggi_ctx->ggi_visual); - printf("returning %d, %d\n", *width, *height); -} - -/** - * We only implement this function as a mechanism to check if the - * framebuffer size has changed (and update corresponding state). - */ -static void gl_ggiViewport(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h) -{ - GLuint newWidth, newHeight; - GLframebuffer *buffer = ctx->WinSysDrawBuffer; - gl_ggiGetSize( buffer, &newWidth, &newHeight ); - if (buffer->Width != newWidth || buffer->Height != newHeight) { - _mesa_resize_framebuffer(ctx, buffer, newWidth, newHeight ); - } -} - - -static void gl_ggiSetIndex(GLcontext *ctx, GLuint ci) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - - GGIMESADPRINT_CORE("gl_ggiSetIndex() called\n"); - - ggiSetGCForeground(ggi_ctx->ggi_visual, ci); - ggi_ctx->color = (ggi_pixel)ci; -} - -static void gl_ggiSetClearIndex(GLcontext *ctx, GLuint ci) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - - GGIMESADPRINT_CORE("gl_ggiSetClearIndex() called\n"); - - ggiSetGCForeground(ggi_ctx->ggi_visual, ci); - ggi_ctx->clearcolor = (ggi_pixel)ci; -} - -static void gl_ggiSetClearColor(GLcontext *ctx, const GLfloat color[4]) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - ggi_color rgb; - ggi_pixel col; - GLubyte byteColor[3]; - - GGIMESADPRINT_CORE("gl_ggiSetClearColor() called\n"); - - CLAMPED_FLOAT_TO_UBYTE(byteColor[0], color[0]); - CLAMPED_FLOAT_TO_UBYTE(byteColor[1], color[1]); - CLAMPED_FLOAT_TO_UBYTE(byteColor[2], color[2]); - - rgb.r = (uint16)byteColor[0] << SHIFT; - rgb.g = (uint16)byteColor[1] << SHIFT; - rgb.b = (uint16)byteColor[2] << SHIFT; - col = ggiMapColor(ggi_ctx->ggi_visual, &rgb); - ggiSetGCForeground(ggi_ctx->ggi_visual, col); - ggi_ctx->clearcolor = col; -} - -static void gl_ggiClear(GLcontext *ctx, GLbitfield mask) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - int x = ctx->DrawBuffer->_Xmin; - int y = ctx->DrawBuffer->_Ymin; - int w = ctx->DrawBuffer->_Xmax - x; - int h = ctx->DrawBuffer->_Ymax - y; - GLboolean all = (w == ctx->DrawBuffer->Width && h == ctx->DrawBuffer->height) - - GGIMESADPRINT_CORE("gl_ggiClear() called\n"); - - if (mask & (DD_FRONT_LEFT_BIT | DD_BACK_LEFT_BIT)) { - ggiSetGCForeground(ggi_ctx->ggi_visual, ggi_ctx->clearcolor); - - if (all) { - int w, h; - w = LIBGGI_VIRTX(ggi_ctx->ggi_visual); - h = LIBGGI_VIRTX(ggi_ctx->ggi_visual); - ggiDrawBox(ggi_ctx->ggi_visual, 0, 0, w, h); - } else { - ggiDrawBox(ggi_ctx->ggi_visual, x, y, //FLIP(y), - width, height); - } - ggiSetGCForeground(ggi_ctx->ggi_visual, ggi_ctx->color); - - mask &= ~(DD_FRONT_LEFT_BIT | DD_BACK_LEFT_BIT); - } - _swrast_Clear(ctx, mask); - -} - - -/* Set the buffer used for reading */ -/* XXX support for separate read/draw buffers hasn't been tested */ -static GLboolean gl_ggiSetBuffer(GLcontext *ctx, GLframebuffer *buffer, GLuint bufferBit) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - - printf("set read %d\n", bufferBit); - GGIMESADPRINT_CORE("gl_ggiSetBuffer() called\n"); - - if (bufferBit == DD_FRONT_LEFT_BIT) - { - ggiSetReadFrame(ggi_ctx->ggi_visual, - ggiGetDisplayFrame(ggi_ctx->ggi_visual)); - ggiSetWriteFrame(ggi_ctx->ggi_visual, - ggiGetDisplayFrame(ggi_ctx->ggi_visual)); - return GL_TRUE; - } - else if (bufferBit == DD_BACK_LEFT_BIT) - { - ggiSetReadFrame(ggi_ctx->ggi_visual, - ggiGetDisplayFrame(ggi_ctx->ggi_visual)?0 : 1); - ggiSetWriteFrame(ggi_ctx->ggi_visual, - ggiGetDisplayFrame(ggi_ctx->ggi_visual)?0 : 1); - return GL_TRUE; - } - else - return GL_FALSE; -} - - -static const GLubyte * gl_ggiGetString(GLcontext *ctx, GLenum name) -{ - GGIMESADPRINT_CORE("gl_ggiGetString() called\n"); - - if (name == GL_RENDERER) { - return (GLubyte *) "Mesa GGI"; - } else { - return NULL; - } -} - -static void gl_ggiFlush(GLcontext *ctx) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - - GGIMESADPRINT_CORE("gl_ggiFlush() called\n"); - - ggiFlush(ggi_ctx->ggi_visual); -} - -static void gl_ggiIndexMask(GLcontext *ctx, GLuint mask) -{ - GGIMESADPRINT_CORE("gl_ggiIndexMask() called\n"); -} - -static void gl_ggiColorMask(GLcontext *ctx, GLboolean rmask, GLboolean gmask, - GLboolean bmask, GLboolean amask) -{ - GGIMESADPRINT_CORE("gl_ggiColorMask() called\n"); -} - -static void gl_ggiEnable(GLcontext *ctx, GLenum pname, GLboolean state) -{ - GGIMESADPRINT_CORE("gl_ggiEnable() called\n"); -} - -static void gl_ggiSetupPointers(GLcontext *ctx) -{ - TNLcontext *tnl; - - GGIMESADPRINT_CORE("gl_ggiSetupPointers() called\n"); - - /* Plug in default driver functions */ - _mesa_init_driver_functions(&ctx->Driver); - - /* Plug in ggi-specific functions */ - ctx->Driver.GetString = gl_ggiGetString; - ctx->Driver.GetBufferSize = gl_ggiGetSize; - ctx->Driver.Viewport = gl_ggiViewport; - ctx->Driver.Finish = gl_ggiFlush; - ctx->Driver.Flush = gl_ggiFlush; - ctx->Driver.Clear = gl_ggiClear; - ctx->Driver.ClearIndex = gl_ggiSetClearIndex; - ctx->Driver.ClearColor = gl_ggiSetClearColor; - ctx->Driver.IndexMask = gl_ggiIndexMask; - ctx->Driver.ColorMask = gl_ggiColorMask; - ctx->Driver.Enable = gl_ggiEnable; - ctx->Driver.UpdateState = gl_ggiUpdateState; - - /* Initialize TNL driver interface */ - tnl = TNL_CONTEXT(ctx); - tnl->Driver.RunPipeline = _tnl_run_pipeline; - - /* Install setup for tnl */ - _swsetup_Wakeup(ctx); -} - -static void get_mode_info(ggi_visual_t vis, int *r, int *g, int *b, - GLboolean *rgb, GLboolean *db, int *ci) -{ - unsigned int i; - - *r = 0; - *g = 0; - *b = 0; - - for(i = 0; i < sizeof(ggi_pixel)*8; ++i) { - int mask = 1 << i; - if (LIBGGI_PIXFMT(vis)->red_mask & mask) - ++(*r); - if (LIBGGI_PIXFMT(vis)->green_mask & mask) - ++(*g); - if (LIBGGI_PIXFMT(vis)->blue_mask & mask) - ++(*b); - } - - *rgb = GT_SCHEME(LIBGGI_MODE(vis)->graphtype) == GT_TRUECOLOR; - *db = LIBGGI_MODE(vis)->frames > 1; - *ci = GT_SIZE(LIBGGI_MODE(vis)->graphtype); - - printf("rgb (%d, %d, %d) db %d, rgb %d ci %d\n",*r,*g,*b,*db,*rgb,*ci); -} - - -int ggiMesaAttach(ggi_visual_t vis) -{ - int rc; - - GGIMESADPRINT_CORE("ggiMesaAttach() called\n"); - - rc = ggiExtensionAttach(vis, _ggiMesaID); - if (rc == 0) - { - int r, g, b, ci; - GLboolean rgb, db; - GLvisual *gl_visual; - - /* We are creating the primary instance */ - memset(LIBGGI_MESAEXT(vis), 0, sizeof(struct ggi_mesa_ext)); - LIBGGI_MESAEXT(vis)->update_state = (void *)_ggi_error; - LIBGGI_MESAEXT(vis)->setup_driver = (void *)_ggi_error; - - /* Initialize default mesa visual */ - get_mode_info(vis, &r, &g, &b, &rgb, &db, &ci); - gl_visual = &(LIBGGI_MESAEXT(vis)->mesa_visual.gl_visual); - _mesa_initialize_visual(gl_visual, - rgb, db, 0 /* No stereo */, - r, g, b, 0 /* No alpha */, ci, - 0 /* No depth */, 0 /* No stencil */, - 0, 0, 0, 0 /* No accum */, 0); - - /* Now fake an "API change" so the right libs get loaded */ - changed(vis, GGI_CHG_APILIST); - } - - return rc; -} - -int ggiMesaDetach(ggi_visual_t vis) -{ - GGIMESADPRINT_CORE("ggiMesaDetach() called\n"); - - return ggiExtensionDetach(vis, _ggiMesaID); -} - -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) -{ - GLvisual *gl_vis = &(LIBGGI_MESAEXT(vis)->mesa_visual.gl_visual); - int r, g, b, ci; - GLboolean db, rgb; - - get_mode_info(vis, &r, &g, &b, &rgb, &db, &ci); - - /* Initialize the visual with the provided information */ - _mesa_initialize_visual(gl_vis, - rgb, db, stereo_flag, - r, g, b, 0 /* FIXME */, ci, - depth_size, stencil_size, - accum_red_size, accum_green_size, - accum_blue_size, accum_alpha_size, 0); - - /* Now fake an "API change" so the right libs get loaded. After all, - extending the visual by all these new buffers could be considered - a "mode change" which requires an "API change". - */ - changed(vis, GGI_CHG_APILIST); - - return 0; -} - - -ggi_mesa_context_t ggiMesaCreateContext(ggi_visual_t vis) -{ - ggi_mesa_context_t ctx; - int err; - - GGIMESADPRINT_CORE("ggiMesaCreateContext() called\n"); - - ctx = (ggi_mesa_context_t)malloc(sizeof(struct ggi_mesa_context)); - if (!ctx) - return NULL; - - ctx->ggi_visual = vis; - ctx->color = 0; - - ctx->gl_ctx = - _mesa_create_context(&(LIBGGI_MESAEXT(vis)->mesa_visual.gl_visual), - NULL, (void *) ctx, GL_FALSE); - if (!ctx->gl_ctx) - goto free_context; - - _mesa_enable_sw_extensions(ctx->gl_ctx); - - _swrast_CreateContext(ctx->gl_ctx); - _vbo_CreateContext(ctx->gl_ctx); - _tnl_CreateContext(ctx->gl_ctx); - _swsetup_CreateContext(ctx->gl_ctx); - - gl_ggiSetupPointers(ctx->gl_ctx); - - /* Make sure that an appropriate sublib has been loaded */ - if (!LIBGGI_MESAEXT(ctx->ggi_visual)->setup_driver){ - GGIMESADPRINT_CORE("setup_driver==NULL!\n"); - GGIMESADPRINT_CORE("Please check your config files!\n"); - goto free_context; - } - - /* Set up the sublib driver */ - err = LIBGGI_MESAEXT(ctx->ggi_visual)->setup_driver(ctx); - if (err){ - GGIMESADPRINT_CORE("setup_driver failed (err = %d)", err); - goto free_gl_context; - } - - return ctx; - -free_gl_context: - _mesa_destroy_context(ctx->gl_ctx); -free_context: - free(ctx); - - return NULL; -} - -void ggiMesaDestroyContext(ggi_mesa_context_t ctx) -{ - GGIMESADPRINT_CORE("ggiMesaDestroyContext() called\n"); - - if(!ctx) - return; - - _mesa_destroy_context(ctx->gl_ctx); - free(ctx); -} - -void ggiMesaMakeCurrent(ggi_mesa_context_t ctx, ggi_visual_t vis) -{ - GGIMESADPRINT_CORE("ggiMesaMakeCurrent(ctx = %p) called\n", ctx); - - /* FIXME: clean up where are ggi_vis */ - if (ctx->ggi_visual != vis) { - GGIMESADPRINT_CORE("Cannot migrate GL contexts\n"); - return; - } - - _mesa_make_current(ctx->gl_ctx, &LIBGGI_MESAEXT(vis)->mesa_buffer); -} - - -/* - * Swap front/back buffers for current context if double buffered. - */ -void ggiMesaSwapBuffers(void) -{ - GLcontext *ctx; - ggi_mesa_context_t ggi_ctx; - ctx = _mesa_get_current_context(); - ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - - GGIMESADPRINT_CORE("ggiMesaSwapBuffers() called\n"); - - _mesa_notifySwapBuffers(ctx); - gl_ggiFlush(ctx); - - ggiSetDisplayFrame(ggi_ctx->ggi_visual, - !ggiGetDisplayFrame(ggi_ctx->ggi_visual)); - ggiSetWriteFrame(ggi_ctx->ggi_visual, - !ggiGetWriteFrame(ggi_ctx->ggi_visual)); - ggiSetReadFrame(ggi_ctx->ggi_visual, - !ggiGetReadFrame(ggi_ctx->ggi_visual)); - - GGIMESADPRINT_CORE("swap disp: %d, write %d\n", - ggiGetDisplayFrame(ggi_ctx->ggi_visual), - ggiGetWriteFrame(ggi_ctx->ggi_visual)); -} - -static void gl_ggiUpdateState(GLcontext *ctx, GLuint new_state) -{ - ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx; - - GGIMESADPRINT_CORE("gl_ggiUpdateState() called\n"); - - /* Propogate statechange information to swrast and swrast_setup - * modules. The GGI driver has no internal GL-dependent state. - */ - _swrast_InvalidateState(ctx, new_state); - _swsetup_InvalidateState(ctx, new_state); - _tnl_InvalidateState(ctx, new_state); - - /* XXX: Better use an assertion that bails out here on failure */ - if (!LIBGGI_MESAEXT(ggi_ctx->ggi_visual)->update_state) { - GGIMESADPRINT_CORE("update_state == NULL!\n"); - GGIMESADPRINT_CORE("Please check your config files!\n"); - ggiPanic(""); - } - - LIBGGI_MESAEXT(ggi_ctx->ggi_visual)->update_state(ggi_ctx); -} - diff --git a/src/mesa/drivers/ggi/ggimesa.conf.in b/src/mesa/drivers/ggi/ggimesa.conf.in deleted file mode 100644 index 72132334fd0..00000000000 --- a/src/mesa/drivers/ggi/ggimesa.conf.in +++ /dev/null @@ -1,13 +0,0 @@ -# GGIMesa global configuration -.root: @ggi_libdir@/ggi/mesa - -generic-stubs-mesa default/stubs.so -generic-linear-8-mesa default/linear_8.so -generic-linear-15-mesa default/linear_15.so -generic-linear-16-mesa default/linear_16.so -generic-linear-24-mesa default/linear_24.so -generic-linear-32-mesa default/linear_32.so - -display-fbdev-mesa display/fbdev.so - -# .include @ggi_confdir@/ggi/mesa/targets/fbdev.conf diff --git a/src/mesa/drivers/ggi/include/ggi/mesa/debug.h b/src/mesa/drivers/ggi/include/ggi/mesa/debug.h deleted file mode 100644 index f461fee72c6..00000000000 --- a/src/mesa/drivers/ggi/include/ggi/mesa/debug.h +++ /dev/null @@ -1,260 +0,0 @@ -/* -****************************************************************************** - - GGIMesa debugging macros - - Copyright (C) 1998-1999 Marcus Sundberg [marcus@ggi-project.org] - Copyright (C) 1999-2000 Jon Taylor [taylorj@ggi-project.org] - - 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 - THE AUTHOR(S) 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. - -****************************************************************************** -*/ - -#ifndef _GGI_MESA_INTERNAL_DEBUG_H -#define _GGI_MESA_INTERNAL_DEBUG_H - -#include -#include -#include -#include - -#ifndef DEBUG -#define DEBUG -#endif - -__BEGIN_DECLS - -/* Exported variables */ -#ifdef BUILDING_GGIMESA -extern uint32 _ggimesaDebugState; -extern int _ggimesaDebugSync; -#else -IMPORTVAR uint32 _ggimesaDebugState; -IMPORTVAR int _ggimesaDebugSync; -#endif - -__END_DECLS - - -/* Debugging types - * bit 0 is reserved! */ - -#define GGIMESADEBUG_CORE (1<<1) /* 2 */ -#define GGIMESADEBUG_MODE (1<<2) /* 4 */ -#define GGIMESADEBUG_COLOR (1<<3) /* 8 */ -#define GGIMESADEBUG_DRAW (1<<4) /* 16 */ -#define GGIMESADEBUG_MISC (1<<5) /* 32 */ -#define GGIMESADEBUG_LIBS (1<<6) /* 64 */ -#define GGIMESADEBUG_EVENTS (1<<7) /* 128 */ - -#define GGIMESADEBUG_ALL 0xffffffff - -#ifdef __GNUC__ - -#ifdef DEBUG -#define GGIMESADPRINT(args...) if (_ggimesaDebugState) { ggDPrintf(_ggimesaDebugSync, "GGIMesa",args); } -#define GGIMESADPRINT_CORE(args...) if (_ggimesaDebugState & GGIMESADEBUG_CORE) { ggDPrintf(_ggimesaDebugSync,"GGIMesa",args); } -#define GGIMESADPRINT_MODE(args...) if (_ggimesaDebugState & GGIMESADEBUG_MODE) { ggDPrintf(_ggimesaDebugSync,"GGIMesa",args); } -#define GGIMESADPRINT_COLOR(args...) if (_ggimesaDebugState & GGIMESADEBUG_COLOR) { ggDPrintf(_ggimesaDebugSync,"GGIMesa",args); } -#define GGIMESADPRINT_DRAW(args...) if (_ggimesaDebugState & GGIMESADEBUG_DRAW) { ggDPrintf(_ggimesaDebugSync,"GGIMesa",args); } -#define GGIMESADPRINT_MISC(args...) if (_ggimesaDebugState & GGIMESADEBUG_MISC) { ggDPrintf(_ggimesaDebugSync,"GGIMesa",args); } -#define GGIMESADPRINT_LIBS(args...) if (_ggimesaDebugState & GGIMESADEBUG_LIBS) { ggDPrintf(_ggimesaDebugSync,"GGIMesa",args); } -#define GGIMESADPRINT_EVENTS(args...) if (_ggimesaDebugState & GGIMESADEBUG_EVENTS) { ggDPrintf(_ggimesaDebugSync,"GGIMesa",args); } -#else /* DEBUG */ -#define GGIMESADPRINT(args...) do{}while(0) -#define GGIMESADPRINT_CORE(args...) do{}while(0) -#define GGIMESADPRINT_MODE(args...) do{}while(0) -#define GGIMESADPRINT_COLOR(args...) do{}while(0) -#define GGIMESADPRINT_DRAW(args...) do{}while(0) -#define GGIMESADPRINT_MISC(args...) do{}while(0) -#define GGIMESADPRINT_LIBS(args...) do{}while(0) -#define GGIMESADPRINT_EVENTS(args...) do{}while(0) -#endif /* DEBUG */ - -#else /* __GNUC__ */ - -__BEGIN_DECLS - -static inline void GGIMESADPRINT(const char *form,...) -{ -#ifdef DEBUG - if (_ggiDebugState) { - va_list args; - - fprintf(stderr, "GGIMesa: "); - va_start(args, form); - vfprintf(stderr, form, args); - va_end(args); - if (_ggimesaDebugSync) fflush(stderr); - } -#endif -} - -static inline void GGIMESADPRINT_CORE(const char *form,...) -{ -#ifdef DEBUG - if (_ggiDebugState & GGIDEBUG_CORE) { - va_list args; - - fprintf(stderr, "GGIMesa: "); - va_start(args, form); - vfprintf(stderr, form, args); - va_end(args); - if (_ggimesaDebugSync) fflush(stderr); - } -#endif -} - -static inline void GGIMESADPRINT_MODE(const char *form,...) -{ -#ifdef DEBUG - if (_ggiDebugState & GGIDEBUG_MODE) { - va_list args; - - fprintf(stderr, "GGIMesa: "); - va_start(args, form); - vfprintf(stderr, form, args); - va_end(args); - if (_ggimesaDebugSync) fflush(stderr); - } -#endif -} - -static inline void GGIMESADPRINT_COLOR(const char *form,...) -{ -#ifdef DEBUG - if (_ggiDebugState & GGIDEBUG_COLOR) { - va_list args; - - fprintf(stderr, "GGIMesa: "); - va_start(args, form); - vfprintf(stderr, form, args); - va_end(args); - if (_ggimesaDebugSync) fflush(stderr); - } -#endif -} - -static inline void GGIMESADPRINT_DRAW(const char *form,...) -{ -#ifdef DEBUG - if (_ggiDebugState & GGIDEBUG_DRAW) { - va_list args; - - fprintf(stderr, "GGIMesa: "); - va_start(args, form); - vfprintf(stderr, form, args); - va_end(args); - if (_ggimesaDebugSync) fflush(stderr); - } -#endif -} - -static inline void GGIMESADPRINT_MISC(const char *form,...) -{ -#ifdef DEBUG - if (_ggiDebugState & GGIDEBUG_MISC) { - va_list args; - - fprintf(stderr, "GGIMesa: "); - va_start(args, form); - vfprintf(stderr, form, args); - va_end(args); - if (_ggimesaDebugSync) fflush(stderr); - } -#endif -} - -static inline void GGIMESADPRINT_LIBS(const char *form,...) -{ -#ifdef DEBUG - if (_ggiDebugState & GGIDEBUG_LIBS) { - va_list args; - - fprintf(stderr, "GGIMesa: "); - va_start(args, form); - vfprintf(stderr, form, args); - va_end(args); - if (_ggimesaDebugSync) fflush(stderr); - } -#endif -} - -static inline void GGIMESADPRINT_EVENTS(const char *form,...) -{ -#ifdef DEBUG - if (_ggiDebugState & GGIDEBUG_EVENTS) { - va_list args; - - fprintf(stderr, "GGIMesa: "); - va_start(args, form); - vfprintf(stderr, form, args); - va_end(args); - if (_ggimesaDebugSync) fflush(stderr); - } -#endif -} - -__END_DECLS - -#endif /* __GNUC__ */ - -#ifdef DEBUG -#define GGIMESA_ASSERT(x,str) \ -{ if (!(x)) { \ - fprintf(stderr,"GGIMESA:%s:%d: INTERNAL ERROR: %s\n",__FILE__,__LINE__,str); \ - exit(1); \ -} } -#define GGIMESA_APPASSERT(x,str) \ -{ if (!(x)) { \ - fprintf(stderr,"GGIMESA:%s:%d: APPLICATION ERROR: %s\n",__FILE__,__LINE__,str); \ - exit(1); \ -} } -#else /* DEBUG */ -#define GGIMESA_ASSERT(x,str) do{}while(0) -#define GGIMESA_APPASSERT(x,str) do{}while(0) -#endif /* DEBUG */ - -#ifdef DEBUG -# define GGIMESAD0(x) x -#else -# define GGIMESAD0(x) /* empty */ -#endif - -#ifdef GGIMESADLEV -# if GGIMESADLEV == 1 -# define GGIMESAD1(x) x -# define GGIMESAD2(x) /* empty */ -# define GGIMESAD3(x) /* empty */ -# elif GGIMESADLEV == 2 -# define GGIMESAD1(x) x -# define GGIMESAD2(x) x -# define GGIMESAD3(x) /* empty */ -# elif GGIMESADLEV > 2 -# define GGIMESAD1(x) x -# define GGIMESAD2(x) x -# define GGIMESAD3(x) x -# endif -#else -# define GGIMESAD1(x) /* empty */ -# define GGIMESAD2(x) /* empty */ -# define GGIMESAD3(x) /* empty */ -#endif - -#endif /* _GGI_MESA_INTERNAL_DEBUG_H */ diff --git a/src/mesa/drivers/ggi/include/ggi/mesa/display_fbdev.h b/src/mesa/drivers/ggi/include/ggi/mesa/display_fbdev.h deleted file mode 100644 index 5c3c1e290c9..00000000000 --- a/src/mesa/drivers/ggi/include/ggi/mesa/display_fbdev.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef _GGIMESA_DISPLAY_FBDEV_H -#define _GGIMESA_DISPLAY_FBDEV_H - -#include -#include - -ggifunc_setmode GGIMesa_fbdev_setmode; -ggifunc_getapi GGIMesa_fbdev_getapi; - -#define FBDEV_PRIV_MESA(vis) ((struct fbdev_priv_mesa *)(FBDEV_PRIV(vis)->accelpriv)) - -struct fbdev_priv_mesa -{ - char *accel; - int have_accel; - void *accelpriv; - ggi_fbdev_priv *oldpriv; /* Hooks back to the LibGGI fbdev target's private data */ -}; - -#endif /* _GGIMESA_DISPLAY_FBDEV_H */ diff --git a/src/mesa/drivers/ggi/include/ggi/mesa/ggimesa.h b/src/mesa/drivers/ggi/include/ggi/mesa/ggimesa.h deleted file mode 100644 index ecdbe414f8a..00000000000 --- a/src/mesa/drivers/ggi/include/ggi/mesa/ggimesa.h +++ /dev/null @@ -1,84 +0,0 @@ -/* GGI-Driver for MESA - * - * Copyright (C) 1997 Uwe Maurer - * - * 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. - * --------------------------------------------------------------------- - * This code was derived from the following source of information: - * - * svgamesa.c and ddsample.c by Brian Paul - * - */ - -#ifndef _GGIMESA_H -#define _GGIMESA_H - -#include -#include -#include -#include "config.h" -#include "context.h" -#include "drawpix.h" -#include "imports.h" -#include "matrix.h" -#include "state.h" -#include "mtypes.h" -#include "macros.h" -#include "depth.h" - -#undef ASSERT /* ASSERT is redefined */ - -#include -#include -#include -#include "GL/ggimesa.h" - -/* - * GGIMesa visual configuration. - * - * This structure "derives" from Mesa's GLvisual and extends it by - * GGI's visual. Combination of these two structures is enough to fully - * describe the mode the application is currently running in. GGI - * visual provides information about color configuration and buffering - * method, GLvisual fills the rest. - */ -struct ggi_mesa_visual { - GLvisual gl_visual; - ggi_visual_t ggi_visual; -}; - -/* - * GGIMesa context. - * - * GGIMesa context expands the Mesa's context (it doesn't actualy derive - * from it, but this ability isn't needed, and it is best if GL context - * creation is left up to Mesa). It also contains a reference to the GGI - * visual it is attached to, which is very useful for all Mesa callbacks. - */ -struct ggi_mesa_context -{ - GLcontext *gl_ctx; - ggi_visual_t ggi_visual; - - ggi_pixel color; /* Current color or index*/ - ggi_pixel clearcolor; - - void *priv; -}; - -#define SHIFT (GGI_COLOR_PRECISION - 8) - -#endif - diff --git a/src/mesa/drivers/ggi/include/ggi/mesa/ggimesa_int.h b/src/mesa/drivers/ggi/include/ggi/mesa/ggimesa_int.h deleted file mode 100644 index faafc779e64..00000000000 --- a/src/mesa/drivers/ggi/include/ggi/mesa/ggimesa_int.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef _GGI_MESA_INT_H -#define _GGI_MESA_INT_H - -#include -#include "ggimesa.h" - - -extern ggi_extid _ggiMesaID; - -ggifunc_setmode GGIMesa_setmode; -ggifunc_getapi GGIMesa_getapi; - -typedef struct ggi_mesa_ext -{ - /* - * How mesa extends this visual; i.e., size of the depth buffer etc. - * - * By default (upon attaching) this structure is initialized to what - * libggi is guaranteed to handle without any help: single buffered - * visual without any ancilary buffers. - */ - struct ggi_mesa_visual mesa_visual; - - /* - * Mesa framebuffer is a collection of all ancilary buffers required. - * - * This structure contains the ancilary buffers provided in in - * software. On each mode change it is loaded with the list of - * required buffers and the target is expected to clear the ones - * it can provide in hw. The remaining ones are then provided in sw. - * - */ - GLframebuffer mesa_buffer; - - void (*update_state)(ggi_mesa_context_t ctx); - int (*setup_driver)(ggi_mesa_context_t ctx); - - void *private; -} ggi_mesa_ext_t; - -#define LIBGGI_MESAEXT(vis) ((ggi_mesa_ext_t *)LIBGGI_EXT(vis,_ggiMesaID)) -#define GGIMESA_PRIV(vis) ((LIBGGI_MESAEXT(vis)->priv)) - -#endif /* _GGI_MISC_INT_H */