1 /*
2 * Copyright 1994-1997 Mark Kilgard, All rights reserved.
3 * Distributed under the terms of the MIT License.
4 *
5 * GPL licensing not permitted.
6 *
7 * Authors:
8 * Mark Kilgard
9 */
10
11
12 #include <stdlib.h>
13 #include <stdarg.h>
14 #include <string.h>
15 #include <stdio.h>
16
17 #include "glutint.h"
18
19
20 /* strdup is actually not a standard ANSI C or POSIX routine
21 so implement a private one for GLUT. OpenVMS does not have a
22 strdup; Linux's standard libc doesn't declare strdup by default
23 (unless BSD or SVID interfaces are requested). */
24 char *
__glutStrdup(const char * string)25 __glutStrdup(const char *string)
26 {
27 char *copy;
28
29 copy = (char*) malloc(strlen(string) + 1);
30 if (copy == NULL)
31 return NULL;
32 strcpy(copy, string);
33 return copy;
34 }
35
36 void
__glutWarning(const char * format,...)37 __glutWarning(const char *format,...)
38 {
39 va_list args;
40
41 va_start(args, format);
42 fprintf(stderr, "GLUT: Warning in %s: ",
43 __glutProgramName ? __glutProgramName : "(unamed)");
44 vfprintf(stderr, format, args);
45 va_end(args);
46 putc('\n', stderr);
47 }
48
49 /* CENTRY */
50 void APIENTRY
glutReportErrors(void)51 glutReportErrors(void)
52 {
53 GLenum error;
54
55 while ((error = glGetError()) != GL_NO_ERROR)
56 __glutWarning("GL error: %s", gluErrorString(error));
57 }
58 /* ENDCENTRY */
59
60 void
__glutFatalError(const char * format,...)61 __glutFatalError(const char *format,...)
62 {
63 va_list args;
64
65 va_start(args, format);
66 fprintf(stderr, "GLUT: Fatal Error in %s: ",
67 __glutProgramName ? __glutProgramName : "(unamed)");
68 vfprintf(stderr, format, args);
69 va_end(args);
70 putc('\n', stderr);
71 exit(1);
72 }
73
74 void
__glutFatalUsage(const char * format,...)75 __glutFatalUsage(const char *format,...)
76 {
77 va_list args;
78
79 va_start(args, format);
80 fprintf(stderr, "GLUT: Fatal API Usage in %s: ",
81 __glutProgramName ? __glutProgramName : "(unamed)");
82 vfprintf(stderr, format, args);
83 va_end(args);
84 putc('\n', stderr);
85 abort();
86 }
87