2 * Mesa 3-D graphics library
4 * Copyright (C) 1995-1998 Brian Paul
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Library General Public License for more details.
16 * You should have received a copy of the GNU Library General Public
17 * License along with this library; if not, write to the Free
18 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
22 * DOS/DJGPP glut driver v1.3 for Mesa 5.0
24 * Copyright (C) 2002 - Borca Daniel
25 * Email : dborca@yahoo.com
26 * Web : http://www.geocities.com/dborca
38 static DMesaVisual visual
= NULL
;
39 static DMesaContext context
= NULL
;
40 static DMesaBuffer buffer
[MAX_WINDOWS
];
44 static void clean (void)
48 for (i
=0; i
<MAX_WINDOWS
; i
++) {
49 glutDestroyWindow(i
+1);
51 if (context
) DMesaDestroyContext(context
);
52 if (visual
) DMesaDestroyVisual(visual
);
60 int APIENTRY
glutCreateWindow (const char *title
)
65 if ((visual
=DMesaCreateVisual(g_xpos
+ g_width
, g_ypos
+ g_height
, g_bpp
, g_refresh
,
66 g_display_mode
& GLUT_DOUBLE
,
67 !(g_display_mode
& GLUT_INDEX
),
68 g_display_mode
& GLUT_ALPHA
,
69 g_display_mode
& GLUT_DEPTH
?DEPTH_SIZE
:0,
70 g_display_mode
& GLUT_STENCIL
?STENCIL_SIZE
:0,
71 g_display_mode
& GLUT_ACCUM
?ACCUM_SIZE
:0))==NULL
) {
75 if ((context
=DMesaCreateContext(visual
, NULL
))==NULL
) {
76 DMesaDestroyVisual(visual
);
85 for (i
=0; i
<MAX_WINDOWS
; i
++) {
89 if ((b
=DMesaCreateBuffer(visual
, g_xpos
, g_ypos
, g_width
, g_height
))==NULL
) {
92 if (!DMesaMakeCurrent(context
, b
)) {
93 DMesaDestroyBuffer(b
);
97 pc_mouse_area(g_xpos
, g_ypos
, g_xpos
+ g_width
- 1, g_ypos
+ g_height
- 1);
100 buffer
[window
= i
] = b
;
109 int APIENTRY
glutCreateSubWindow (int win
, int x
, int y
, int width
, int height
)
115 void APIENTRY
glutDestroyWindow (int win
)
118 DMesaDestroyBuffer(buffer
[win
-1]);
119 buffer
[win
-1] = NULL
;
124 void APIENTRY
glutPostRedisplay (void)
126 g_redisplay
= GL_TRUE
;
130 void APIENTRY
glutSwapBuffers (void)
132 if (g_mouse
) pc_scare_mouse();
133 DMesaSwapBuffers(buffer
[window
]);
134 if (g_mouse
) pc_unscare_mouse();
138 int APIENTRY
glutGetWindow (void)
144 void APIENTRY
glutSetWindow (int win
)
150 void APIENTRY
glutSetWindowTitle (const char *title
)
155 void APIENTRY
glutSetIconTitle (const char *title
)
160 void APIENTRY
glutPositionWindow (int x
, int y
)
162 if (DMesaViewport(buffer
[window
], x
, y
, g_width
, g_height
)) {
169 void APIENTRY
glutReshapeWindow (int width
, int height
)
171 if (DMesaViewport(buffer
[window
], g_xpos
, g_ypos
, width
, height
)) {
175 reshape_func(width
, height
);
177 glViewport(0, 0, width
, height
);
183 void APIENTRY
glutPopWindow (void)
188 void APIENTRY
glutPushWindow (void)
193 void APIENTRY
glutIconifyWindow (void)
198 void APIENTRY
glutShowWindow (void)
203 void APIENTRY
glutHideWindow (void)