Retrieves the value set using gdk.glcontext.GLContext.setDebugEnabled.
Retrieves the #GdkDisplay the context is created for
Retrieves the value set using gdk.glcontext.GLContext.setForwardCompatible.
Retrieves the major and minor version requested by calling gdk.glcontext.GLContext.setRequiredVersion.
Retrieves the #GdkGLContext that this context share data with.
Checks whether the context is using an OpenGL or OpenGL ES profile.
Retrieves the OpenGL version of the context.
Retrieves the #GdkWindow used by the context.
Whether the #GdkGLContext is in legacy mode or not.
Makes the context the current one.
Realizes the given #GdkGLContext.
Returns this, for use in with statements.
Sets whether the #GdkGLContext should perform extra validations and run time checking. This is useful during development, but has additional overhead.
Sets whether the #GdkGLContext should be forward compatible.
Sets the major and minor version of OpenGL to request.
Requests that GDK create a OpenGL ES context instead of an OpenGL one, if the platform and windowing system allows it.
Get display property.
Get sharedContext property.
Get window property.
Get builder for gdk.glcontext.GLContext
Clears the current #GdkGLContext.
Retrieves the current #GdkGLContext.
Set the GObject of a D ObjectWrap wrapper.
Get a pointer to the underlying C object.
Calls g_object_ref() on a GObject.
Calls g_object_unref() on a GObject.
Get the GType of an object.
GObject GType property.
Convenience method to return this cast to a type. For use in D with statements.
Template to get the D object from a C GObject and cast it to the given D object type.
Connect a D closure to an object signal.
Template for setting a GObject property.
Template for getting a GObject property.
Creates a binding between source_property on source and target_property on target.
Creates a binding between source_property on source and target_property on target, allowing you to set the transformation functions to be used by the binding.
This function is intended for #GObject implementations to re-enforce a floating[floating-ref] object reference. Doing this is seldom required: all #GInitiallyUnowneds are created with a floating reference which usually just needs to be sunken by calling gobject.object.ObjectWrap.refSink.
Increases the freeze count on object. If the freeze count is non-zero, the emission of "notify" signals on object is stopped. The signals are queued until the freeze count is decreased to zero. Duplicate notifications are squashed so that at most one #GObject::notify signal is emitted for each property modified while the object is frozen.
Gets a named field from the objects table of associations (see gobject.object.ObjectWrap.setData).
Gets a property of an object.
This function gets back user data pointers stored via gobject.object.ObjectWrap.setQdata.
Gets n_properties properties for an object. Obtained properties will be set to values. All properties must be valid. Warnings will be emitted and undefined behaviour may result if invalid properties are passed in.
Checks whether object has a floating[floating-ref] reference.
Emits a "notify" signal for the property property_name on object.
Emits a "notify" signal for the property specified by pspec on object.
Increase the reference count of object, and possibly remove the floating[floating-ref] reference, if object has a floating reference.
Releases all references to other objects. This can be used to break reference cycles.
Each object carries around a table of associations from strings to pointers. This function lets you set an association.
Sets a property on an object.
Remove a specified datum from the object's data associations, without invoking the association's destroy handler.
This function gets back user data pointers stored via gobject.object.ObjectWrap.setQdata and removes the data from object without invoking its destroy() function (if any was set). Usually, calling this function is only required to update user data pointers with a destroy notifier, for example:
Reverts the effect of a previous call to gobject.object.ObjectWrap.freezeNotify. The freeze count is decreased on object and when it reaches zero, queued "notify" signals are emitted.
This function essentially limits the life time of the closure to the life time of the object. That is, when the object is finalized, the closure is invalidated by calling gobject.closure.Closure.invalidate on it, in order to prevent invocations of the closure with a finalized (nonexisting) object. Also, gobject.object.ObjectWrap.ref_ and gobject.object.ObjectWrap.unref are added as marshal guards to the closure, to ensure that an extra reference count is held on object during invocation of the closure. Usually, this function will be called on closures that use this object as closure data.
Connect to Notify signal.
#GdkGLContext is an object representing the platform-specific OpenGL drawing context.
#GdkGLContexts are created for a #GdkWindow using gdk.window.Window.createGlContext, and the context will match the #GdkVisual of the window.
A #GdkGLContext is not tied to any particular normal framebuffer. For instance, it cannot draw to the #GdkWindow back buffer. The GDK repaint system is in full control of the painting to that. Instead, you can create render buffers or textures and use gdk.global.cairoDrawFromGl in the draw function of your widget to draw them. Then GDK will handle the integration of your rendering with that of other widgets.
Support for #GdkGLContext is platform-specific, context creation can fail, returning null context.
A #GdkGLContext has to be made "current" in order to start using it, otherwise any OpenGL call will be ignored.
Creating a new OpenGL context ##
In order to create a new #GdkGLContext instance you need a #GdkWindow, which you typically get during the realize call of a widget.
A #GdkGLContext is not realized until either gdk.glcontext.GLContext.makeCurrent, or until it is realized using gdk.glcontext.GLContext.realize. It is possible to specify details of the GL context like the OpenGL version to be used, or whether the GL context should have extra state validation enabled after calling gdk.window.Window.createGlContext by calling gdk.glcontext.GLContext.realize. If the realization fails you have the option to change the settings of the #GdkGLContext and try again.
Using a GdkGLContext ##
You will need to make the #GdkGLContext the current context before issuing OpenGL calls; the system sends OpenGL commands to whichever context is current. It is possible to have multiple contexts, so you always need to ensure that the one which you want to draw with is the current one before issuing commands:
You can now perform your drawing using OpenGL commands.
You can check which #GdkGLContext is the current one by using gdk.glcontext.GLContext.getCurrent; you can also unset any #GdkGLContext that is currently set by calling gdk.glcontext.GLContext.clearCurrent.