GLContext.h
Go to the documentation of this file.
00001 // ****************************************************************************
00002 // This file is part of the Integrating Vision Toolkit (IVT).
00003 //
00004 // The IVT is maintained by the Karlsruhe Institute of Technology (KIT)
00005 // (www.kit.edu) in cooperation with the company Keyetech (www.keyetech.de).
00006 //
00007 // Copyright (C) 2014 Karlsruhe Institute of Technology (KIT).
00008 // All rights reserved.
00009 //
00010 // Redistribution and use in source and binary forms, with or without
00011 // modification, are permitted provided that the following conditions are met:
00012 //
00013 // 1. Redistributions of source code must retain the above copyright
00014 //    notice, this list of conditions and the following disclaimer.
00015 //
00016 // 2. Redistributions in binary form must reproduce the above copyright
00017 //    notice, this list of conditions and the following disclaimer in the
00018 //    documentation and/or other materials provided with the distribution.
00019 //
00020 // 3. Neither the name of the KIT nor the names of its contributors may be
00021 //    used to endorse or promote products derived from this software
00022 //    without specific prior written permission.
00023 //
00024 // THIS SOFTWARE IS PROVIDED BY THE KIT AND CONTRIBUTORS “AS IS” AND ANY
00025 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
00026 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00027 // DISCLAIMED. IN NO EVENT SHALL THE KIT OR CONTRIBUTORS BE LIABLE FOR ANY
00028 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
00029 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00030 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
00031 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00032 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
00033 // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00034 // ****************************************************************************
00035 // ****************************************************************************
00036 // Filename:  GLContext.h
00037 // Author:    Florian Hecht
00038 // Date:      2008
00039 // ****************************************************************************
00040 
00041 
00042 #ifndef _GL_CONTEXT_H_
00043 #define _GL_CONTEXT_H_
00044 
00045 
00046 // ****************************************************************************
00047 // Necessary includes
00048 // ****************************************************************************
00049 
00050 #ifdef __APPLE__
00051 #include <OpenGL/gl.h>
00052 #include <OpenGL/glu.h>
00053 #else
00054 #ifdef WIN32
00055 #include <windows.h>
00056 #endif
00057 #include <GL/gl.h>
00058 #include <GL/glu.h>
00059 #endif
00060 
00061 #ifdef USE_QTGUI
00062 #ifdef USE_OPENGL
00063 #include <qgl.h>
00064 #endif
00065 class MyQGLContext;
00066 class QPixmap;
00067 class QApplication;
00068 #endif
00069 
00070 #ifdef USE_GTKGUI
00071 #include <GL/glx.h>
00072 #endif
00073 
00074 
00075 // ****************************************************************************
00076 // Forward declarations
00077 // ****************************************************************************
00078 
00079 class CByteImage;
00080 
00081 class CGLContext
00082 {
00083 public:
00084         CGLContext();
00085         ~CGLContext();
00086 
00087         bool CreateContext(int width, int height, void *shareContext = 0);
00088         void DeleteContext();
00089 
00090         void MakeCurrent();
00091         void DoneCurrent();
00092         bool GetImage(CByteImage *pImage);
00093 
00094 private:
00095 
00096 #ifdef WIN32
00097         HDC                             m_hDC;
00098         HBITMAP                 m_hBmp;
00099         HBITMAP                 m_hBmpOld;
00100         HGLRC                   m_hGLRC;
00101 
00102         int                             m_nWidth;
00103         int                             m_nHeight;
00104         unsigned char   *m_pPixels;
00105 #endif
00106 
00107 #ifdef USE_QTGUI
00108         QApplication    *m_pApp;
00109         QPixmap         *m_pPixmap;
00110         MyQGLContext    *m_pGLContext;
00111 #endif
00112 
00113 #ifdef USE_COCOAGUI
00114         void *m_pGLContext;
00115         int     m_nWidth;
00116         int m_nHeight;
00117         unsigned char *m_pBuffer;
00118 #endif
00119 
00120 #ifdef USE_GTKGUI
00121         Display         *m_pXDisplay;
00122         GLXContext      m_glxcontext;
00123         int             m_nWidth;
00124         int             m_nHeight;
00125         GLXPixmap       m_glxpixmap;
00126         Pixmap          m_pFrontBuffer;
00127 #endif
00128 
00129 };
00130 
00131 
00132 
00133 #endif /* _GL_CONTEXT_H_ */


asr_ivt
Author(s): Allgeyer Tobias, Hutmacher Robin, Kleinert Daniel, Meißner Pascal, Scholz Jonas, Stöckle Patrick
autogenerated on Thu Jun 6 2019 21:46:57