MeVisLab Resolution Independence API
mlOpenGLSystem.h
Go to the documentation of this file.
1
/*************************************************************************************
2
**
3
** Copyright 2007, MeVis Medical Solutions AG
4
**
5
** The user may use this file in accordance with the license agreement provided with
6
** the Software or, alternatively, in accordance with the terms contained in a
7
** written agreement between the user and MeVis Medical Solutions AG.
8
**
9
** For further information use the contact form at https://www.mevislab.de/contact
10
**
11
**************************************************************************************/
12
13
#ifndef ML_OPENGL_SYSTEM_H
14
#define ML_OPENGL_SYSTEM_H
15
16
18
19
//------------------------------------------------------------------------------------
22
//------------------------------------------------------------------------------------
24
#ifndef ML_OPENGL_NAMESPACE
25
#define ML_OPENGL_NAMESPACE ml
26
#endif
27
31
#ifndef ML_OPENGL_START_NAMESPACE
32
#define ML_OPENGL_START_NAMESPACE namespace ML_OPENGL_NAMESPACE {
33
#endif
34
36
#ifndef ML_OPENGL_END_NAMESPACE
37
#define ML_OPENGL_END_NAMESPACE }
38
#endif
40
41
#include <ThirdPartyWarningsDisable.h>
42
#include <iostream>
43
#include <vector>
44
#include <string>
45
#include <ThirdPartyWarningsRestore.h>
46
47
//---------------Export from DLL----------------------
48
// To export classes in this DLL, mark them with the
49
// MLOPENGL_EXPORT macro
50
51
#ifdef MLOPENGL_EXPORTS
52
#define MLOPENGL_EXPORT ML_LIBRARY_EXPORT_ATTRIBUTE
53
#else
54
#define MLOPENGL_EXPORT ML_LIBRARY_IMPORT_ATTRIBUTE
55
#endif
56
57
//--------------- General Error Posting for OpenInventor and OpenGL modules----------------------
58
59
//-----------------------------------------------------------------------------------------------
63
//-----------------------------------------------------------------------------------------------
64
#ifndef SO_MEVISLAB_ERR_POST
65
#define SO_MEVISLAB_ERR_POST(OSTREAM_VAL) { \
66
std::stringstream stroutVal; \
67
stroutVal << OSTREAM_VAL; \
68
std::string stdStrBuf = stroutVal.str(); \
69
SoDebugError::post(stdStrBuf.c_str(), ""); \
70
}
71
#endif
72
73
//-----------------------------------------------------------------------------------------------
77
//-----------------------------------------------------------------------------------------------
78
#ifndef MEVISLAB_CHECK_AND_POST_OPENGL_ERROR
79
#define MEVISLAB_CHECK_AND_POST_OPENGL_ERROR(FUNC_NAME) \
80
{ \
81
const GLenum err = glGetError(); \
82
if (GL_NO_ERROR != err){ \
83
if (GL_OUT_OF_MEMORY == err){ SO_MEVISLAB_ERR_POST(FUNC_NAME << ":Out of memory error" << std::endl); } \
84
else if (GL_INVALID_ENUM == err){ SO_MEVISLAB_ERR_POST(FUNC_NAME << ":Invalid enum" << std::endl); } \
85
else if (GL_INVALID_VALUE == err){ SO_MEVISLAB_ERR_POST(FUNC_NAME << ":Invalid value" << std::endl); } \
86
else if (GL_INVALID_OPERATION == err){ SO_MEVISLAB_ERR_POST(FUNC_NAME << ":Invalid operation" << std::endl); } \
87
else if (GL_STACK_OVERFLOW == err){ SO_MEVISLAB_ERR_POST(FUNC_NAME << ":Stack overflow" << std::endl); } \
88
else if (GL_STACK_UNDERFLOW == err){ SO_MEVISLAB_ERR_POST(FUNC_NAME << ":Stack underflow" << std::endl); } \
89
else { SO_MEVISLAB_ERR_POST(FUNC_NAME << ":Non standard OpenGL error with id " << err << " detected" << std::endl); } \
90
} \
91
}
92
#endif
93
94
#endif
MeVis
Foundation
Sources
MLOpenGL
mlOpenGLSystem.h
Generated by
1.10.0