added glutGetProcAddress() and GLUT_FPS env var option
[mesa.git] / src / glut / dos / init.c
index d3f458217010036c35fe6bdb0a8e6ef2b519e00e..a6d7e830b0c7fdd774efff9c7fcc879eb004bd22 100644 (file)
@@ -19,7 +19,7 @@
  */\r
 \r
 /*\r
- * DOS/DJGPP glut driver v0.1 for Mesa 4.0\r
+ * DOS/DJGPP glut driver v1.0 for Mesa 4.0\r
  *\r
  *  Copyright (C) 2002 - Borca Daniel\r
  *  Email : dborca@yahoo.com\r
  */\r
 \r
 \r
-#include <signal.h>\r
 #include "GL/glut.h"\r
 #include "internal.h"\r
 \r
 \r
-static void *old_sig_int  = NULL;\r
-\r
-\r
-static void signal_handler (int num)\r
-{\r
- signal(SIGINT, old_sig_int);\r
-\r
- raise(num);\r
-}\r
-\r
-\r
 void APIENTRY glutInit (int *argcp, char **argv)\r
 {\r
- /* Hack alert:\r
-    only SIGINT (but not Ctrl-Break)\r
-    calls the destructors and will safely clean up\r
- */\r
- old_sig_int = signal(SIGINT, signal_handler);\r
+ glutGet(GLUT_ELAPSED_TIME);\r
 }\r
 \r
 \r
@@ -132,34 +116,42 @@ void APIENTRY glutMainLoop (void)
           }\r
        }\r
 \r
-       if (g_mouse && motion_func && ((pc_mouse_x != old_mouse_x) || (pc_mouse_y != old_mouse_y))) {\r
-          idle        = GL_FALSE;\r
-          old_mouse_x = pc_mouse_x;\r
-          old_mouse_y = pc_mouse_y;\r
-\r
-          motion_func(old_mouse_x, old_mouse_y);\r
-       }\r
-\r
-       if (g_mouse && mouse_func && (pc_mouse_b != old_mouse_b)) {\r
-          int new_mouse_b = pc_mouse_b;\r
-\r
-          if ((old_mouse_b & 1) && !(new_mouse_b & 1))\r
-             mouse_func(GLUT_LEFT_BUTTON, GLUT_UP,   pc_mouse_x, pc_mouse_y);\r
-          else if (!(old_mouse_b & 1) && (new_mouse_b & 1))\r
-             mouse_func(GLUT_LEFT_BUTTON, GLUT_DOWN, pc_mouse_x, pc_mouse_y);\r
-\r
-          if ((old_mouse_b & 2) && !(new_mouse_b & 2))\r
-             mouse_func(GLUT_RIGHT_BUTTON, GLUT_UP,   pc_mouse_x, pc_mouse_y);\r
-          else if (!(old_mouse_b & 2) && (new_mouse_b & 2))\r
-             mouse_func(GLUT_RIGHT_BUTTON, GLUT_DOWN, pc_mouse_x, pc_mouse_y);\r
-\r
-          if ((old_mouse_b & 4) && !(new_mouse_b & 4))\r
-             mouse_func(GLUT_MIDDLE_BUTTON, GLUT_UP,   pc_mouse_x, pc_mouse_y);\r
-          else if (!(old_mouse_b & 3) && (new_mouse_b & 4))\r
-             mouse_func(GLUT_MIDDLE_BUTTON, GLUT_DOWN, pc_mouse_x, pc_mouse_y);\r
-\r
-          idle        = GL_FALSE;\r
-          old_mouse_b = new_mouse_b;\r
+       if (g_mouse) {\r
+          int mouse_x;\r
+          int mouse_y;\r
+          int mouse_b;\r
+       \r
+          mouse_b = pc_query_mouse(&mouse_x, &mouse_y);\r
+          \r
+          if (motion_func && ((mouse_x != old_mouse_x) || (mouse_y != old_mouse_y))) {\r
+             idle        = GL_FALSE;\r
+             old_mouse_x = mouse_x;\r
+             old_mouse_y = mouse_y;\r
+   \r
+             motion_func(old_mouse_x, old_mouse_y);\r
+          }\r
+   \r
+          if (mouse_func && (mouse_b != old_mouse_b)) {\r
+             int new_mouse_b = mouse_b;\r
+   \r
+             if ((old_mouse_b & 1) && !(new_mouse_b & 1))\r
+                mouse_func(GLUT_LEFT_BUTTON, GLUT_UP,   mouse_x, mouse_y);\r
+             else if (!(old_mouse_b & 1) && (new_mouse_b & 1))\r
+                mouse_func(GLUT_LEFT_BUTTON, GLUT_DOWN, mouse_x, mouse_y);\r
+   \r
+             if ((old_mouse_b & 2) && !(new_mouse_b & 2))\r
+                mouse_func(GLUT_RIGHT_BUTTON, GLUT_UP,   mouse_x, mouse_y);\r
+             else if (!(old_mouse_b & 2) && (new_mouse_b & 2))\r
+                mouse_func(GLUT_RIGHT_BUTTON, GLUT_DOWN, mouse_x, mouse_y);\r
+   \r
+             if ((old_mouse_b & 4) && !(new_mouse_b & 4))\r
+                mouse_func(GLUT_MIDDLE_BUTTON, GLUT_UP,   mouse_x, mouse_y);\r
+             else if (!(old_mouse_b & 3) && (new_mouse_b & 4))\r
+                mouse_func(GLUT_MIDDLE_BUTTON, GLUT_DOWN, mouse_x, mouse_y);\r
+   \r
+             idle        = GL_FALSE;\r
+             old_mouse_b = new_mouse_b;\r
+          }\r
        }\r
 \r
        if (idle && idle_func)\r