OpenCOVER
InitGLOperation.h
Go to the documentation of this file.
1#ifndef INITGLOPERATION_H
2#define INITGLOPERATION_H
3
4/* based on https://github.com/ThermalPixel/osgdemos/osgdebug
5
6 Copyright (c) 2014, Andreas Klein
7 All rights reserved.
8
9 Redistribution and use in source and binary forms, with or without
10 modification, are permitted provided that the following conditions are met:
11
12 1. Redistributions of source code must retain the above copyright notice, this
13 list of conditions and the following disclaimer.
14 2. Redistributions in binary form must reproduce the above copyright notice,
15 this list of conditions and the following disclaimer in the documentation
16 and/or other materials provided with the distribution.
17
18 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
19 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
22 ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
29 The views and conclusions contained in the software and documentation are those
30 of the authors and should not be interpreted as representing official policies,
31 either expressed or implied, of the FreeBSD Project.
32*/
33
34#include <osgViewer/ViewerEventHandlers>
35
36namespace opencover {
37
38class InitGLOperation: public osg::GraphicsOperation
39{
40public:
42 virtual void operator ()(osg::GraphicsContext* gc);
43
44 bool boundSwapBarrier() const;
45
46private:
47 OpenThreads::Mutex m_mutex;
48 static void debugCallback(GLenum source, GLenum type, GLuint id, GLenum severity,
49 GLsizei length, const GLchar *message, void *userData);
50 static void debugCallback(GLenum source, GLenum type, GLuint id, GLenum severity,
51 GLsizei length, const GLchar *message, const void *userData);
52
53 struct DebugCallbackData
54 {
55 int contextId;
56 int debugLevel;
57 bool abortOnError;
58 };
59 DebugCallbackData m_callbackData;
60
61 bool m_boundSwapBarrier = false;
62};
63
64}
65#endif
Definition: ARToolKit.h:33
Definition: InitGLOperation.h:39
virtual void operator()(osg::GraphicsContext *gc)