diff options
author | Brian Paul <brian.paul@tungstengraphics.com> | 2002-02-12 03:24:06 +0000 |
---|---|---|
committer | José Fonseca <jfonseca@vmware.com> | 2011-07-11 20:03:29 +0100 |
commit | 88d15e039faeb491244738afa41d56b08a680e19 (patch) | |
tree | 54d9a41c0a9e6d166eb47ce090c7aa23e367655d /src/glut/dos/window.c | |
parent | 6e3e00f037bae60bdf206aeacad91128de6f800e (diff) | |
download | glut-88d15e039faeb491244738afa41d56b08a680e19.tar.gz |
Daniel Borca's GLUT for DOS/DGJPP.
Diffstat (limited to 'src/glut/dos/window.c')
-rw-r--r-- | src/glut/dos/window.c | 160 |
1 files changed, 160 insertions, 0 deletions
diff --git a/src/glut/dos/window.c b/src/glut/dos/window.c new file mode 100644 index 0000000..7496524 --- /dev/null +++ b/src/glut/dos/window.c @@ -0,0 +1,160 @@ +/* + * Mesa 3-D graphics library + * Version: 4.0 + * Copyright (C) 1995-1998 Brian Paul + * + * 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. + */ + +/* + * DOS/DJGPP glut driver v0.1 for Mesa 4.0 + * + * Copyright (C) 2002 - Borca Daniel + * Email : dborca@yahoo.com + * Web : http://www.geocities.com/dborca + */ + + +#include "GL/glut.h" +#include "GL/dmesa.h" +#include "internal.h" + + +static DMesaVisual visual = NULL; +static DMesaContext context = NULL; +static DMesaBuffer buffer = NULL; + + +static void clean (void) +{ + __asm__("movw $3, %%ax; int $0x10":::"%eax"); + pc_close_stdout(); + pc_close_stderr(); +} + +int APIENTRY glutCreateWindow (const char *title) +{ + if ((visual=DMesaCreateVisual(COLOR_DEPTH, + g_display_mode & GLUT_DOUBLE, + 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) { + return GL_FALSE; + } + + if ((context=DMesaCreateContext(visual, NULL))==NULL) { + DMesaDestroyVisual(visual); + return GL_FALSE; + } + + if ((buffer=DMesaCreateBuffer(visual, g_width, g_height, g_xpos, g_ypos))==NULL) { + DMesaDestroyContext(context); + DMesaDestroyVisual(visual); + return GL_FALSE; + } + + if (!DMesaMakeCurrent(context, buffer)) { + DMesaDestroyContext(context); + DMesaDestroyVisual(visual); + return GL_FALSE; + } + + pc_open_stdout(); + pc_open_stderr(); + pc_atexit(clean); + + return GL_TRUE; +} + + +int APIENTRY glutCreateSubWindow (int win, int x, int y, int width, int height) +{ + return GL_FALSE; +} + + +void APIENTRY glutDestroyWindow (int win) +{ +} + + +void APIENTRY glutPostRedisplay (void) +{ + g_redisplay = GL_TRUE; +} + + +void APIENTRY glutSwapBuffers (void) +{ + if (g_mouse) pc_scare_mouse(); + DMesaSwapBuffers(buffer); + if (g_mouse) pc_unscare_mouse(); +} + + +int APIENTRY glutGetWindow (void) +{ + return 0; +} + + +void APIENTRY glutSetWindow (int win) +{ +} + + +void APIENTRY glutSetWindowTitle (const char *title) +{ +} + + +void APIENTRY glutSetIconTitle (const char *title) +{ +} + + +void APIENTRY glutPositionWindow (int x, int y) +{ +} + + +void APIENTRY glutReshapeWindow (int width, int height) +{ +} + + +void APIENTRY glutPopWindow (void) +{ +} + + +void APIENTRY glutPushWindow (void) +{ +} + + +void APIENTRY glutIconifyWindow (void) +{ +} + + +void APIENTRY glutShowWindow (void) +{ +} + + +void APIENTRY glutHideWindow (void) +{ +} |