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

gtkmm/gl/widget.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 /* gtkglextmm - C++ Wrapper for GtkGLExt
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 _GTKMM_GL_WIDGET_H
00021 #define _GTKMM_GL_WIDGET_H
00022 
00023 #include <gtkmm/widget.h>
00024 
00025 #include <gdkmm/gl/tokens.h>
00026 #include <gdkmm/gl/config.h>
00027 #include <gdkmm/gl/context.h>
00028 #include <gdkmm/gl/window.h>
00029 
00030 namespace Gtk
00031 {
00032   namespace GL
00033   {
00034 
00040     class Widget
00041     {
00042     private:
00043       Widget(const Widget&);
00044       Widget& operator=(const Widget&);
00045 
00046     protected:
00047       explicit Widget(Gtk::Widget& widget) : _M_widget(widget) {}
00048 
00049     public:
00050       virtual ~Widget() = 0;
00051 
00052     public:
00053 
00066       static bool set_gl_capability(Gtk::Widget& widget,
00067                                     const Glib::RefPtr<const Gdk::GL::Config>& glconfig,
00068                                     const Glib::RefPtr<const Gdk::GL::Context>& share_list,
00069                                     bool direct = true,
00070                                     int render_type = Gdk::GL::RGBA_TYPE);
00071 
00083       static bool set_gl_capability(Gtk::Widget& widget,
00084                                     const Glib::RefPtr<const Gdk::GL::Config>& glconfig,
00085                                     bool direct = true,
00086                                     int render_type = Gdk::GL::RGBA_TYPE);
00087 
00094       static bool is_gl_capable(const Gtk::Widget& widget);
00095 
00101       static Glib::RefPtr<Gdk::GL::Config> get_gl_config(const Gtk::Widget& widget);
00102 
00116       static Glib::RefPtr<Gdk::GL::Context> create_gl_context(const Gtk::Widget& widget,
00117                                                               const Glib::RefPtr<const Gdk::GL::Context>& share_list,
00118                                                               bool direct = true,
00119                                                               int render_type = Gdk::GL::RGBA_TYPE);
00120 
00133       static Glib::RefPtr<Gdk::GL::Context> create_gl_context(const Gtk::Widget& widget,
00134                                                               bool direct = true,
00135                                                               int render_type = Gdk::GL::RGBA_TYPE);
00136 
00146       static Glib::RefPtr<Gdk::GL::Context> get_gl_context(const Gtk::Widget& widget);
00147 
00153       static Glib::RefPtr<Gdk::GL::Window> get_gl_window(const Gtk::Widget& widget);
00154 
00160       static Glib::RefPtr<Gdk::GL::Drawable> get_gl_drawable(const Gtk::Widget& widget);
00161 
00162     public:
00163 
00175       bool set_gl_capability(const Glib::RefPtr<const Gdk::GL::Config>& glconfig,
00176                              const Glib::RefPtr<const Gdk::GL::Context>& share_list,
00177                              bool direct = true,
00178                              int render_type = Gdk::GL::RGBA_TYPE)
00179       { return set_gl_capability(_M_widget, glconfig, share_list, direct, render_type); }
00180 
00191       bool set_gl_capability(const Glib::RefPtr<const Gdk::GL::Config>& glconfig,
00192                              bool direct = true,
00193                              int render_type = Gdk::GL::RGBA_TYPE)
00194       { return set_gl_capability(_M_widget, glconfig, direct, render_type); }
00195 
00201       bool is_gl_capable() const
00202       { return is_gl_capable(_M_widget); }
00203 
00208       Glib::RefPtr<Gdk::GL::Config> get_gl_config()
00209       { return get_gl_config(_M_widget); }
00210 
00215       Glib::RefPtr<const Gdk::GL::Config> get_gl_config() const
00216       { return get_gl_config(_M_widget); }
00217 
00230       Glib::RefPtr<Gdk::GL::Context> create_gl_context(const Glib::RefPtr<const Gdk::GL::Context>& share_list,
00231                                                        bool direct = true,
00232                                                        int render_type = Gdk::GL::RGBA_TYPE)
00233       { return create_gl_context(_M_widget, share_list, direct, render_type); }
00234 
00246       Glib::RefPtr<Gdk::GL::Context> create_gl_context(bool direct = true,
00247                                                        int render_type = Gdk::GL::RGBA_TYPE)
00248       { return create_gl_context(_M_widget, direct, render_type); }
00249 
00258       Glib::RefPtr<Gdk::GL::Context> get_gl_context()
00259       { return get_gl_context(_M_widget); }
00260 
00265       Glib::RefPtr<Gdk::GL::Window> get_gl_window()
00266       { return get_gl_window(_M_widget); }
00267 
00272       Glib::RefPtr<const Gdk::GL::Window> get_gl_window() const
00273       { return get_gl_window(_M_widget); }
00274 
00279       Glib::RefPtr<Gdk::GL::Drawable> get_gl_drawable()
00280       { return get_gl_drawable(_M_widget); }
00281 
00286       Glib::RefPtr<const Gdk::GL::Drawable> get_gl_drawable() const
00287       { return get_gl_drawable(_M_widget); }
00288 
00289     private:
00290       Gtk::Widget& _M_widget;
00291 
00292     };
00293 
00306   } // namespace GL
00307 } // namespace Gtk
00308 
00309 #endif // _GTKMM_GL_WIDGET_H

Generated on Thu Nov 20 22:46:33 2003 for gtkglextmm by doxygen 1.3.4