summaryrefslogtreecommitdiff
path: root/src/glut/os2/glut_util.cpp
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2003-06-13 21:49:46 +0000
committerBrian Paul <brian.paul@tungstengraphics.com>2003-06-13 21:49:46 +0000
commit225517aff0afc3270fab277d1c9ac2864053820c (patch)
treefa00e2b162788b4fe2ebb9254baf6526997c9903 /src/glut/os2/glut_util.cpp
parent8fa507592b7bdb087c9eb32ed2322cb805b724ec (diff)
GLUT for OS/2 (Evgeny Kotsuba)
Diffstat (limited to 'src/glut/os2/glut_util.cpp')
-rw-r--r--src/glut/os2/glut_util.cpp90
1 files changed, 90 insertions, 0 deletions
diff --git a/src/glut/os2/glut_util.cpp b/src/glut/os2/glut_util.cpp
new file mode 100644
index 0000000000..76f25020af
--- /dev/null
+++ b/src/glut/os2/glut_util.cpp
@@ -0,0 +1,90 @@
+
+/* Copyright (c) Mark J. Kilgard, 1994. */
+
+/* This program is freely distributable without licensing fees
+ and is provided without guarantee or warrantee expressed or
+ implied. This program is -not- in the public domain. */
+
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <stdio.h>
+
+#include "glutint.h"
+
+#if !defined(__OS2__)
+
+/* strdup is actually not a standard ANSI C or POSIX routine
+ so implement a private one for GLUT. OpenVMS does not have a
+ strdup; Linux's standard libc doesn't declare strdup by default
+ (unless BSD or SVID interfaces are requested). */
+char *
+__glutStrdup(const char *string)
+{
+ char *copy;
+
+ copy = (char*) malloc(strlen(string) + 1);
+ if (copy == NULL)
+ return NULL;
+ strcpy(copy, string);
+ return copy;
+}
+#endif
+
+void
+__glutWarning(char *format,...)
+{
+ va_list args;
+
+ va_start(args, format);
+ fprintf(stderr, "GLUT: Warning in %s: ",
+ __glutProgramName ? __glutProgramName : "(unamed)");
+ vfprintf(stderr, format, args);
+ va_end(args);
+ putc('\n', stderr);
+}
+
+/* CENTRY */
+void GLUTAPIENTRY
+glutReportErrors(void)
+{
+ GLenum error;
+
+ while ((error = glGetError()) != GL_NO_ERROR)
+ __glutWarning("GL error: %s", gluErrorString(error));
+}
+/* ENDCENTRY */
+
+void
+__glutFatalError(char *format,...)
+{
+ va_list args;
+
+ va_start(args, format);
+ fprintf(stderr, "GLUT: Fatal Error in %s: ",
+ __glutProgramName ? __glutProgramName : "(unamed)");
+ vfprintf(stderr, format, args);
+ va_end(args);
+ putc('\n', stderr);
+/* || defined(__OS2__) */
+#if defined(_WIN32)
+ if (__glutExitFunc) {
+ __glutExitFunc(1);
+ }
+#endif
+ exit(1);
+}
+
+void
+__glutFatalUsage(char *format,...)
+{
+ va_list args;
+
+ va_start(args, format);
+ fprintf(stderr, "GLUT: Fatal API Usage in %s: ",
+ __glutProgramName ? __glutProgramName : "(unamed)");
+ vfprintf(stderr, format, args);
+ va_end(args);
+ putc('\n', stderr);
+ abort();
+}