00001 #define ERRCHECK() \
00002 {\
00003 \
00004 GLenum errCode;\
00005 const GLubyte *errString;\
00006 if ((errCode = glGetError()) != GL_NO_ERROR) {\
00007 errString = gluErrorString(errCode);\
00008 fprintf (stderr, "OpenGL Error: %s at %s:%d\n", errString, __FILE__,__LINE__);\
00009 exit(1);\
00010 }\
00011 }\
00012
00013 #define CHECK_FRAMEBUFFER_STATUS() \
00014 {\
00015 GLenum status; \
00016 status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT); \
00017 switch(status) { \
00018 case GL_FRAMEBUFFER_COMPLETE_EXT: \
00019 break; \
00020 case GL_FRAMEBUFFER_UNSUPPORTED_EXT: \
00021 fprintf(stderr,"framebuffer GL_FRAMEBUFFER_UNSUPPORTED_EXT\n");\
00022 \
00023 assert(0); \
00024 break; \
00025 case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT: \
00026 fprintf(stderr,"framebuffer INCOMPLETE_ATTACHMENT\n");\
00027 break; \
00028 case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT: \
00029 fprintf(stderr,"framebuffer FRAMEBUFFER_MISSING_ATTACHMENT %d\n",__LINE__);\
00030 break; \
00031 case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT: \
00032 fprintf(stderr,"framebuffer FRAMEBUFFER_DIMENSIONS\n");\
00033 break; \
00034 case GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT: \
00035 fprintf(stderr,"framebuffer INCOMPLETE_DUPLICATE_ATTACHMENT\n");\
00036 break; \
00037 case GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT: \
00038 fprintf(stderr,"framebuffer INCOMPLETE_FORMATS\n");\
00039 break; \
00040 case GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT: \
00041 fprintf(stderr,"framebuffer INCOMPLETE_DRAW_BUFFER %s:%d\n",__FILE__,__LINE__);\
00042 break; \
00043 case GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT: \
00044 fprintf(stderr,"framebuffer INCOMPLETE_READ_BUFFER %s:%d\n",__FILE__,__LINE__);\
00045 break; \
00046 case GL_FRAMEBUFFER_BINDING_EXT: \
00047 fprintf(stderr,"framebuffer BINDING_EXT\n");\
00048 break; \
00049
00050
00051
00052
00053
00054 \
00055 default: \
00056 \
00057 assert(0); \
00058 }\
00059 }