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
00047
bool widget_set_gl_capability(Gtk::Widget& widget,
00048
const Glib::RefPtr<const Gdk::GL::Config>& glconfig,
00049
const Glib::RefPtr<const Gdk::GL::Context>& share_list,
00050
bool direct =
true,
00051
int render_type = Gdk::GL::RGBA_TYPE);
00052
00064
bool widget_set_gl_capability(Gtk::Widget& widget,
00065
const Glib::RefPtr<const Gdk::GL::Config>& glconfig,
00066
bool direct =
true,
00067
int render_type = Gdk::GL::RGBA_TYPE);
00068
00075
bool widget_is_gl_capable(
const Gtk::Widget& widget);
00076
00082 Glib::RefPtr<Gdk::GL::Config>
widget_get_gl_config(
const Gtk::Widget& widget);
00083
00097 Glib::RefPtr<Gdk::GL::Context>
widget_create_gl_context(
const Gtk::Widget& widget,
00098
const Glib::RefPtr<const Gdk::GL::Context>& share_list,
00099
bool direct =
true,
00100
int render_type = Gdk::GL::RGBA_TYPE);
00101
00114 Glib::RefPtr<Gdk::GL::Context>
widget_create_gl_context(
const Gtk::Widget& widget,
00115
bool direct =
true,
00116
int render_type = Gdk::GL::RGBA_TYPE);
00117
00127 Glib::RefPtr<Gdk::GL::Context>
widget_get_gl_context(
const Gtk::Widget& widget);
00128
00134 Glib::RefPtr<Gdk::GL::Window>
widget_get_gl_window(
const Gtk::Widget& widget);
00135
00141 Glib::RefPtr<Gdk::GL::Drawable>
widget_get_gl_drawable(
const Gtk::Widget& widget);
00142
00148
template <
class T_GtkW
idget>
00149 class Widget
00150 {
00151
public:
00152
virtual ~Widget() = 0;
00153
00154
public:
00155
00167 bool set_gl_capability(
const Glib::RefPtr<const Gdk::GL::Config>& glconfig,
00168
const Glib::RefPtr<const Gdk::GL::Context>& share_list,
00169
bool direct =
true,
00170
int render_type = Gdk::GL::RGBA_TYPE)
00171 {
return widget_set_gl_capability(*static_cast<T_GtkWidget*>(
this), glconfig, share_list, direct, render_type); }
00172
00183 bool set_gl_capability(
const Glib::RefPtr<const Gdk::GL::Config>& glconfig,
00184
bool direct =
true,
00185
int render_type = Gdk::GL::RGBA_TYPE)
00186 {
return widget_set_gl_capability(*static_cast<T_GtkWidget*>(
this), glconfig, direct, render_type); }
00187
00193 bool is_gl_capable()
const
00194
{
return widget_is_gl_capable(*static_cast<const T_GtkWidget*>(
this)); }
00195
00200 Glib::RefPtr<Gdk::GL::Config>
get_gl_config()
00201 {
return widget_get_gl_config(*static_cast<T_GtkWidget*>(
this)); }
00202
00207 Glib::RefPtr<const Gdk::GL::Config>
get_gl_config()
const
00208
{
return widget_get_gl_config(*static_cast<const T_GtkWidget*>(
this)); }
00209
00222 Glib::RefPtr<Gdk::GL::Context> create_gl_context(
const Glib::RefPtr<const Gdk::GL::Context>& share_list,
00223
bool direct =
true,
00224
int render_type = Gdk::GL::RGBA_TYPE)
00225 {
return widget_create_gl_context(*static_cast<T_GtkWidget*>(
this), share_list, direct, render_type); }
00226
00238 Glib::RefPtr<Gdk::GL::Context> create_gl_context(
bool direct =
true,
00239
int render_type = Gdk::GL::RGBA_TYPE)
00240 {
return widget_create_gl_context(*static_cast<T_GtkWidget*>(
this), direct, render_type); }
00241
00250 Glib::RefPtr<Gdk::GL::Context>
get_gl_context()
00251 {
return widget_get_gl_context(*static_cast<T_GtkWidget*>(
this)); }
00252
00257 Glib::RefPtr<Gdk::GL::Window>
get_gl_window()
00258 {
return widget_get_gl_window(*static_cast<T_GtkWidget*>(
this)); }
00259
00264 Glib::RefPtr<const Gdk::GL::Window>
get_gl_window()
const
00265
{
return widget_get_gl_window(*static_cast<const T_GtkWidget*>(
this)); }
00266
00271 Glib::RefPtr<Gdk::GL::Drawable>
get_gl_drawable()
00272 {
return widget_get_gl_drawable(*static_cast<T_GtkWidget*>(
this)); }
00273
00278 Glib::RefPtr<const Gdk::GL::Drawable>
get_gl_drawable()
const
00279
{
return widget_get_gl_drawable(*static_cast<const T_GtkWidget*>(
this)); }
00280
00281 };
00282
00283
template <
class T_GtkW
idget>
00284 Widget<T_GtkWidget>::~Widget()
00285 {}
00286
00299 }
00300 }
00301
00302
#endif // _GTKMM_GL_WIDGET_H