source: trunk/packages/vizservers/nanovis/Trace.cpp @ 2218

Last change on this file since 2218 was 2096, checked in by ldelgass, 13 years ago

Normalize line endings, set eol-style to native on *.cpp, *.h files

  • Property svn:eol-style set to native
File size: 2.7 KB
Line 
1
2#include "nanovis.h"
3#include <Trace.h>
4#include <stdio.h>
5#include <stdarg.h>
6
7#include <GL/glew.h>
8#include <GL/glut.h>
9#include <syslog.h>
10
11void
12LogMessage(int priority, const char *path, int lineNum, const char* fmt, ...)
13{
14#define MSG_LEN (2047)
15    char message[MSG_LEN+1];
16    const char *s;
17    int length;
18    va_list lst;
19
20    va_start(lst, fmt);
21    s = strrchr(path, '/');
22    if (s == NULL) {
23        s = path;
24    } else {
25        s++;
26    }
27    length = snprintf(message, MSG_LEN, "line %d of \"%s\": ", lineNum, s);
28    length += vsnprintf(message + length, MSG_LEN - length, fmt, lst);
29    message[MSG_LEN] = '\0';
30    syslog(priority, message, length);
31}
32
33bool
34CheckFBO(GLenum *statusPtr)
35{
36    *statusPtr = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
37    return (*statusPtr == GL_FRAMEBUFFER_COMPLETE_EXT);
38}
39
40void
41PrintFBOStatus(GLenum status, const char *prefix)
42{
43    const char *mesg;
44    switch(status) {
45    case GL_FRAMEBUFFER_COMPLETE_EXT:
46        mesg = "<<<< OK >>>>";                                          break;
47    case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT:
48        mesg = "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT";              break;
49    case GL_FRAMEBUFFER_UNSUPPORTED_EXT:
50        mesg = "GL_FRAMEBUFFER_UNSUPPORTED_EXT";                        break;
51    case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT:
52        mesg = "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT";      break;
53    case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT:
54        mesg = "GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT";              break;
55    case GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT:
56        mesg = "GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT";                 break;
57    case GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT:
58        mesg = "GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT";             break;
59    case GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT:
60        mesg = "GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT";             break;
61    default:
62        TRACE("FB Status: %s: UNKNOWN framebuffer status %u\n",
63               prefix, (unsigned int)status);
64        return;
65    }
66    TRACE("FB Status: %s: %s\n", prefix, mesg);
67}
68
69bool
70CheckGL(const char *prefix)
71{
72    const char *mesg;
73    GLenum status = (GLenum)glGetError();
74    switch(status) {
75    case GL_NO_ERROR:
76        return true;
77    case GL_INVALID_ENUM:
78        mesg = "GL_INVALID_ENUM";                       break;
79    case GL_INVALID_VALUE:
80        mesg = "GL_INVALID_VALUE";                      break;
81    case GL_INVALID_OPERATION:
82        mesg = "GL_INVALID_OPERATION";                  break;
83    case GL_STACK_OVERFLOW:
84        mesg = "GL_STACK_OVERFLOW";                     break;
85    case GL_STACK_UNDERFLOW:
86        mesg = "GL_STACK_UNDERFLOW";                    break;
87    case GL_OUT_OF_MEMORY:
88        mesg = "GL_OUT_OF_MEMORY";                      break;
89    case GL_INVALID_FRAMEBUFFER_OPERATION_EXT:
90        mesg = "GL_INVALID_FRAMEBUFFER_OPERATION_EXT";  break;
91    default:
92        TRACE("GL Status: %s: Unknown status %d\n", prefix, status);
93        return false;
94    }
95    TRACE("GL Status: %s: %s\n", prefix, mesg);
96    return false;
97}
98
99
Note: See TracBrowser for help on using the repository browser.