summaryrefslogtreecommitdiff
path: root/src/glut/dos/window.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/glut/dos/window.c')
-rw-r--r--src/glut/dos/window.c63
1 files changed, 4 insertions, 59 deletions
diff --git a/src/glut/dos/window.c b/src/glut/dos/window.c
index ba0f5acee5..cce1a1f777 100644
--- a/src/glut/dos/window.c
+++ b/src/glut/dos/window.c
@@ -19,7 +19,7 @@
*/
/*
- * DOS/DJGPP glut driver v1.2 for Mesa 4.1
+ * DOS/DJGPP glut driver v1.3 for Mesa 5.0
*
* Copyright (C) 2002 - Borca Daniel
* Email : dborca@yahoo.com
@@ -28,26 +28,16 @@
#include "GL/glut.h"
-#ifndef FX
#include "GL/dmesa.h"
-#else
-#include "GL/fxmesa.h"
-#endif
#include "internal.h"
static int window;
-#ifndef FX
static DMesaVisual visual = NULL;
static DMesaContext context = NULL;
static DMesaBuffer buffer[MAX_WINDOWS];
-#else
-static void *visual = NULL;
-static fxMesaContext context = NULL;
-static int fx_attrib[32];
-#endif
@@ -58,12 +48,8 @@ static void clean (void)
for (i=0; i<MAX_WINDOWS; i++) {
glutDestroyWindow(i+1);
}
-#ifndef FX
if (context) DMesaDestroyContext(context);
if (visual) DMesaDestroyVisual(visual);
-#else
- if (context) fxMesaDestroyContext(context);
-#endif
pc_close_stdout();
pc_close_stderr();
@@ -76,23 +62,10 @@ int APIENTRY glutCreateWindow (const char *title)
int i;
if (!visual) {
- int screen_w = DEFAULT_WIDTH;
- int screen_h = DEFAULT_HEIGHT;
-
- if ((g_width<=640) && (g_height<=480)) {
- screen_w = 640;
- screen_h = 480;
- } else if ((g_width<=800) && (g_height<=600)) {
- screen_w = 800;
- screen_h = 600;
- } else if ((g_width<=1024) && (g_height<=768)) {
- screen_w = 1024;
- screen_h = 768;
- }
-
-#ifndef FX
- if ((visual=DMesaCreateVisual(screen_w, screen_h, DEFAULT_BPP,
+ if ((visual=DMesaCreateVisual(g_xpos + g_width, g_ypos + g_height, g_bpp, g_refresh,
g_display_mode & GLUT_DOUBLE,
+ !(g_display_mode & GLUT_INDEX),
+ g_display_mode & GLUT_ALPHA,
g_display_mode & GLUT_DEPTH ?DEPTH_SIZE :0,
g_display_mode & GLUT_STENCIL?STENCIL_SIZE:0,
g_display_mode & GLUT_ACCUM ?ACCUM_SIZE :0))==NULL) {
@@ -103,25 +76,12 @@ int APIENTRY glutCreateWindow (const char *title)
DMesaDestroyVisual(visual);
return 0;
}
-#else
- i = 0;
- if (g_display_mode & GLUT_DOUBLE) fx_attrib[i++] = FXMESA_DOUBLEBUFFER;
- if (g_display_mode & GLUT_DEPTH) { fx_attrib[i++] = FXMESA_DEPTH_SIZE; fx_attrib[i++] = DEPTH_SIZE; }
- if (g_display_mode & GLUT_STENCIL) { fx_attrib[i++] = FXMESA_STENCIL_SIZE; fx_attrib[i++] = STENCIL_SIZE; }
- if (g_display_mode & GLUT_ACCUM) { fx_attrib[i++] = FXMESA_ACCUM_SIZE; fx_attrib[i++] = ACCUM_SIZE; }
- fx_attrib[i] = FXMESA_NONE;
- if ((context=fxMesaCreateBestContext(-1, screen_w, screen_h, fx_attrib))==NULL) {
- return 0;
- }
- visual = context;
-#endif
pc_open_stdout();
pc_open_stderr();
pc_atexit(clean);
}
-#ifndef FX
for (i=0; i<MAX_WINDOWS; i++) {
if (!buffer[i]) {
DMesaBuffer b;
@@ -143,11 +103,6 @@ int APIENTRY glutCreateWindow (const char *title)
}
return 0;
-#else
- fxMesaMakeCurrent(context);
-
- return 1;
-#endif
}
@@ -159,12 +114,10 @@ int APIENTRY glutCreateSubWindow (int win, int x, int y, int width, int height)
void APIENTRY glutDestroyWindow (int win)
{
-#ifndef FX
if (buffer[win-1]) {
DMesaDestroyBuffer(buffer[win-1]);
buffer[win-1] = NULL;
}
-#endif
}
@@ -177,11 +130,7 @@ void APIENTRY glutPostRedisplay (void)
void APIENTRY glutSwapBuffers (void)
{
if (g_mouse) pc_scare_mouse();
-#ifndef FX
DMesaSwapBuffers(buffer[window]);
-#else
- fxMesaSwapBuffers();
-#endif
if (g_mouse) pc_unscare_mouse();
}
@@ -210,18 +159,15 @@ void APIENTRY glutSetIconTitle (const char *title)
void APIENTRY glutPositionWindow (int x, int y)
{
-#ifndef FX
if (DMesaViewport(buffer[window], x, y, g_width, g_height)) {
g_xpos = x;
g_ypos = y;
}
-#endif
}
void APIENTRY glutReshapeWindow (int width, int height)
{
-#ifndef FX
if (DMesaViewport(buffer[window], g_xpos, g_ypos, width, height)) {
g_width = width;
g_height = height;
@@ -231,7 +177,6 @@ void APIENTRY glutReshapeWindow (int width, int height)
glViewport(0, 0, width, height);
}
}
-#endif
}