00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
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 }
00307 }
00308
00309 #endif // _GTKMM_GL_WIDGET_H