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

# context.h

Go to the documentation of this file.

    00001 // -*- c++ -*-
    00002 // Generated by gtkmmproc -- DO NOT MODIFY!
    00003 #ifndef _GDKMM_GL_CONTEXT_H
    00004 #define _GDKMM_GL_CONTEXT_H
    00005
    00006 #include <glibmm.h>
    00007
    00008 // -*- C++ -*-
    00009 /* gdkglextmm - C++ Wrapper for GdkGLExt
    00010  * Copyright (C) 2002-2003  Naofumi Yasufuku
    00011  *
    00012  * This library is free software; you can redistribute it and/or
    00013  * modify it under the terms of the GNU Lesser General Public
    00014  * License as published by the Free Software Foundation; either
    00015  * version 2.1 of the License, or (at your option) any later version.
    00016  *
    00017  * This library is distributed in the hope that it will be useful,
    00018  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    00019  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00020  * Lesser General Public License for more details.
    00021  *
    00022  * You should have received a copy of the GNU Lesser General Public
    00023  * License along with this library; if not, write to the Free Software
    00024  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA.
    00025  */
    00026
    00027 #include <gdkmm/gl/defs.h>
    00028 #include <gdkmm/gl/tokens.h>
    00029 #include <gdkmm/gl/config.h>
    00030 #include <gdkmm/gl/drawable.h>
    00031
    00032 #include <GL/gl.h>
    00033
    00034
    00035 #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00036 typedef struct _GdkGLContext GdkGLContext;
    00037 typedef struct _GdkGLContextClass GdkGLContextClass;
    00038 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
    00039
    00040
    00041 namespace Gdk
    00042 {
    00043
    00044 namespace GL
    00045 { class Context_Class; } // namespace GL
    00046
    00047 } // namespace Gdk
    00048 namespace Gdk
    00049 {
    00050 namespace GL
    00051 {
    00052
    00053 class Drawable;
    00054
    00061 class Context : public Glib::Object
    00062 {
    00063
    00064 #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00065
    00066 public:
    00067   typedef Context CppObjectType;
    00068   typedef Context_Class CppClassType;
    00069   typedef GdkGLContext BaseObjectType;
    00070   typedef GdkGLContextClass BaseClassType;
    00071
    00072 private:  friend class Context_Class;
    00073   static CppClassType context_class_;
    00074
    00075 private:
    00076   // noncopyable
    00077   Context(const Context&);
    00078   Context& operator=(const Context&);
    00079
    00080 protected:
    00081   explicit Context(const Glib::ConstructParams& construct_params);
    00082   explicit Context(GdkGLContext* castitem);
    00083
    00084 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
    00085
    00086 public:
    00087   virtual ~Context();
    00088
    00089 #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00090   static GType get_type()      G_GNUC_CONST;
    00091   static GType get_base_type() G_GNUC_CONST;
    00092 #endif
    00093
    00095   GdkGLContext*       gobj()       { return reinterpret_cast<GdkGLContext*>(gobject_); }
    00096
    00098   const GdkGLContext* gobj() const { return reinterpret_cast<GdkGLContext*>(gobject_); }
    00099
    00101   GdkGLContext* gobj_copy();
    00102
    00103 private:
    00104
    00105
    00106 protected:
    00107
    00108   Context(const Glib::RefPtr<const Drawable>& gldrawable,
    00109           const Glib::RefPtr<const Context>& share_list,
    00110           bool direct = true,
    00111           int render_type = RGBA_TYPE);
    00112
    00113   explicit Context(const Glib::RefPtr<const Drawable>& gldrawable,
    00114                    bool direct = true,
    00115                    int render_type = RGBA_TYPE);
    00116
    00117 public:
    00118
    00129   static Glib::RefPtr<Context> create(const Glib::RefPtr<const Drawable>& gldrawable,
    00130                                       const Glib::RefPtr<const Context>& share_list,
    00131                                       bool direct = true,
    00132                                       int render_type = RGBA_TYPE);
    00133
    00143   static Glib::RefPtr<Context> create(const Glib::RefPtr<const Drawable>& gldrawable,
    00144                                       bool direct = true,
    00145                                       int render_type = RGBA_TYPE);
    00146
    00147 public:
    00148
    00159   bool copy(const Glib::RefPtr<const Context>& src,
    00160             unsigned long mask = GL_ALL_ATTRIB_BITS);
    00161
    00162
    00166   Glib::RefPtr<Drawable> get_gl_drawable();
    00167
    00171   Glib::RefPtr<const Drawable> get_gl_drawable() const;
    00172
    00173
    00177   Glib::RefPtr<Config> get_gl_config();
    00178
    00182   Glib::RefPtr<const Config> get_gl_config() const;
    00183
    00184
    00189   Glib::RefPtr<Context> get_share_list();
    00190
    00195   Glib::RefPtr<const Context> get_share_list() const;
    00196
    00197
    00201   bool is_direct() const;
    00202
    00203
    00207   int get_render_type() const;
    00208
    00209
    00214   static Glib::RefPtr<Context> get_current();
    00215
    00216
    00217 public:
    00218
    00219 public:
    00220   //C++ methods used to invoke GTK+ virtual functions:
    00221
    00222 protected:
    00223   //GTK+ Virtual Functions (override these to change behaviour):
    00224
    00225   //Default Signal Handlers::
    00226
    00227
    00228 };
    00229
    00230 } // namespace GL
    00231 } // namespace Gdk
    00232
    00233
    00234 namespace Glib
    00235 {
    00241   Glib::RefPtr<Gdk::GL::Context> wrap(GdkGLContext* object, bool take_copy = false);
    00242 }
    00243
    00244
    00245 #endif /* _GDKMM_GL_CONTEXT_H */
    00246