glut_util.c
上传用户:xk288cn
上传日期:2007-05-28
资源大小:4876k
文件大小:2k
源码类别:

GIS编程

开发平台:

Visual C++

  1. /* Copyright (c) Mark J. Kilgard, 1994. */
  2. /* This program is freely distributable without licensing fees
  3.    and is provided without guarantee or warrantee expressed or
  4.    implied. This program is -not- in the public domain. */
  5. #include <stdlib.h>
  6. #include <stdarg.h>
  7. #include <string.h>
  8. #include <stdio.h>
  9. #include "glutint.h"
  10. /* strdup is actually not a standard ANSI C or POSIX routine
  11.    so implement a private one for GLUT.  OpenVMS does not have a
  12.    strdup; Linux's standard libc doesn't declare strdup by default
  13.    (unless BSD or SVID interfaces are requested). */
  14. char *
  15. __glutStrdup(const char *string)
  16. {
  17.   char *copy;
  18.   copy = (char*) malloc(strlen(string) + 1);
  19.   if (copy == NULL)
  20.     return NULL;
  21.   strcpy(copy, string);
  22.   return copy;
  23. }
  24. void
  25. __glutWarning(char *format,...)
  26. {
  27.   va_list args;
  28.   va_start(args, format);
  29.   fprintf(stderr, "GLUT: Warning in %s: ",
  30.     __glutProgramName ? __glutProgramName : "(unamed)");
  31.   vfprintf(stderr, format, args);
  32.   va_end(args);
  33.   putc('n', stderr);
  34. }
  35. /* CENTRY */
  36. void APIENTRY 
  37. glutReportErrors(void)
  38. {
  39.   GLenum error;
  40.   while ((error = glGetError()) != GL_NO_ERROR)
  41.     __glutWarning("GL error: %s", gluErrorString(error));
  42. }
  43. /* ENDCENTRY */
  44. void
  45. __glutFatalError(char *format,...)
  46. {
  47.   va_list args;
  48.   va_start(args, format);
  49.   fprintf(stderr, "GLUT: Fatal Error in %s: ",
  50.     __glutProgramName ? __glutProgramName : "(unamed)");
  51.   vfprintf(stderr, format, args);
  52.   va_end(args);
  53.   putc('n', stderr);
  54. #ifdef _WIN32
  55.   if (__glutExitFunc) {
  56.     __glutExitFunc(1);
  57.   }
  58. #endif
  59.   exit(1);
  60. }
  61. void
  62. __glutFatalUsage(char *format,...)
  63. {
  64.   va_list args;
  65.   va_start(args, format);
  66.   fprintf(stderr, "GLUT: Fatal API Usage in %s: ",
  67.     __glutProgramName ? __glutProgramName : "(unamed)");
  68.   vfprintf(stderr, format, args);
  69.   va_end(args);
  70.   putc('n', stderr);
  71.   abort();
  72. }