Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Examples  

gdkmm/gl/query.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 /* gdkglextmm - C++ Wrapper for GdkGLExt
00003  * Copyright (C) 2002-2003  Naofumi Yasufuku
00004  *
00005  * This library is free software; you can redistribute it and/or
00006  * modify it under the terms of the GNU Lesser General Public
00007  * License as published by the Free Software Foundation; either
00008  * version 2.1 of the License, or (at your option) any later version.
00009  *
00010  * This library is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013  * Lesser General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU Lesser General Public
00016  * License along with this library; if not, write to the Free Software
00017  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA.
00018  */
00019 
00020 #ifndef _GDKMM_GL_QUERY_H
00021 #define _GDKMM_GL_QUERY_H
00022 
00023 #include <glibmm.h>
00024 
00025 #include <gdkmm/gl/defs.h>
00026 
00027 #ifdef GDKGLEXTMM_MULTIHEAD_SUPPORT
00028 #include <gdkmm/display.h>
00029 #endif // GDKGLEXTMM_MULTIHEAD_SUPPORT
00030 
00031 #include <gdk/gdkgltypes.h>
00032 
00033 namespace Gdk
00034 {
00035   namespace GL
00036   {
00037 
00038     /** OpenGL support information query stuff.
00039      *
00040      *
00041      */
00042 
00043     /** Indicates whether the window system supports the OpenGL extension
00044      * (GLX, WGL, etc.).
00045      *
00046      * @return  <tt>true</tt> if the OpenGL is supported,
00047      *          <tt>false</tt> otherwise.
00048      */
00049     bool query_extension();
00050 
00051 #ifdef GDKGLEXTMM_MULTIHEAD_SUPPORT
00052     bool query_extension(const Glib::RefPtr<const Gdk::Display>& display);
00053 #endif // GDKGLEXTMM_MULTIHEAD_SUPPORT
00054 
00055     /** Returns the version numbers of the OpenGL extension to the window system.
00056      *
00057      * In the X Window System, it returns the GLX version.
00058      *
00059      * In the Microsoft Windows, it returns the Windows version.
00060      *
00061      * @param major  returns the major version number of the OpenGL extension.
00062      * @param minor  returns the minor version number of the OpenGL extension.
00063      * @return  <tt>false</tt> if it fails, <tt>true</tt> otherwise.
00064      */
00065     bool query_version(int& major, int& minor);
00066 
00067 #ifdef GDKGLEXTMM_MULTIHEAD_SUPPORT
00068     bool query_version(const Glib::RefPtr<const Gdk::Display>& display,
00069                        int& major, int& minor);
00070 #endif // GDKGLEXTMM_MULTIHEAD_SUPPORT
00071 
00072     /** Determines whether a given OpenGL extension is supported.
00073      *
00074      * There must be a valid current Gdk::GL::Drawable to call
00075      * Gdk::GL::Query::gl_extension().
00076      *
00077      * Gdk::GL::Query::gl_extension() returns information about OpenGL extensions
00078      * only. This means that window system dependent extensions (for example,
00079      * GLX extensions) are not reported by Gdk::GL::Query::gl_extension().
00080      *
00081      * @param extension  name of OpenGL extension.
00082      * @return  <tt>false</tt> if the OpenGL extension is supported,
00083      *          <tt>true</tt> if not supported.
00084      */
00085     bool query_gl_extension(const char* extension);
00086 
00087     /** Determines whether a given OpenGL extension is supported.
00088      *
00089      * There must be a valid current Gdk::GL::Drawable to call
00090      * Gdk::GL::Query::gl_extension().
00091      *
00092      * Gdk::GL::Query::gl_extension() returns information about OpenGL extensions
00093      * only. This means that window system dependent extensions (for example,
00094      * GLX extensions) are not reported by Gdk::GL::Query::gl_extension().
00095      *
00096      * @param extension  name of OpenGL extension.
00097      * @return  <tt>false</tt> if the OpenGL extension is supported,
00098      *          <tt>true</tt> if not supported.
00099      */
00100     bool query_gl_extension(const Glib::ustring& extension);
00101 
00102     /** Returns the address of the OpenGL extension functions.
00103      *
00104      * @param proc_name  extension function name.
00105      * @return  the address of the extension function named by @a proc_name.
00106      */
00107     GdkGLProc get_proc_address(const char* proc_name);
00108 
00109     /** Returns the address of the OpenGL extension functions.
00110      *
00111      * @param proc_name  extension function name.
00112      * @return  the address of the extension function named by @a proc_name.
00113      */
00114     GdkGLProc get_proc_address(const Glib::ustring& proc_name);
00115 
00116   } // namespace GL
00117 } // namespace Gdk
00118 
00119 #endif // _GDKMM_GL_QUERY_H

Generated on Sat May 17 02:09:50 2003 for gtkglextmm by doxygen1.3