/*< private >*/ void _gdk_gl_context_set_gl_drawable (GdkGLContext *glcontext, GdkGLDrawable *gldrawable) { GdkGLContextImplWin32 *impl = GDK_GL_CONTEXT_IMPL_WIN32 (glcontext->impl); GDK_GL_NOTE_FUNC_PRIVATE (); if (impl->gldrawable == gldrawable) return; if (impl->gldrawable != NULL) { g_object_remove_weak_pointer (G_OBJECT (impl->gldrawable), (gpointer *) &(impl->gldrawable)); impl->gldrawable = NULL; } if (gldrawable != NULL && GDK_IS_GL_DRAWABLE (gldrawable)) { impl->gldrawable = gldrawable; g_object_add_weak_pointer (G_OBJECT (impl->gldrawable), (gpointer *) &(impl->gldrawable)); } }
/** * gdk_gl_drawable_is_double_buffered: * @gldrawable: a #GdkGLDrawable. * * Returns whether the @gldrawable supports the double-buffered visual. * * Return value: TRUE if the double-buffered visual is supported, * FALSE otherwise. **/ gboolean gdk_gl_drawable_is_double_buffered (GdkGLDrawable *gldrawable) { g_return_val_if_fail (GDK_IS_GL_DRAWABLE (gldrawable), FALSE); return GDK_GL_DRAWABLE_GET_CLASS (gldrawable)->is_double_buffered (gldrawable); }
/** * gdk_gl_drawable_swap_buffers: * @gldrawable: a #GdkGLDrawable. * * Exchange front and back buffers. * **/ void gdk_gl_drawable_swap_buffers (GdkGLDrawable *gldrawable) { g_return_if_fail (GDK_IS_GL_DRAWABLE (gldrawable)); GDK_GL_DRAWABLE_GET_CLASS (gldrawable)->swap_buffers (gldrawable); }
/** * gdk_gl_drawable_get_gl_config: * @gldrawable: a #GdkGLDrawable. * * Gets #GdkGLConfig with which the @gldrawable is configured. * * Return value: the #GdkGLConfig. **/ GdkGLConfig * gdk_gl_drawable_get_gl_config (GdkGLDrawable *gldrawable) { g_return_val_if_fail (GDK_IS_GL_DRAWABLE (gldrawable), NULL); return GDK_GL_DRAWABLE_GET_CLASS (gldrawable)->get_gl_config (gldrawable); }
/** * gdk_gl_drawable_gl_end: * @gldrawable: a #GdkGLDrawable. * * Delimits the end of the OpenGL execution. * **/ void gdk_gl_drawable_gl_end (GdkGLDrawable *gldrawable) { g_return_if_fail (GDK_IS_GL_DRAWABLE (gldrawable)); GDK_GL_DRAWABLE_GET_CLASS (gldrawable)->gl_end (gldrawable); }
/** * gdk_gl_drawable_get_size: * @gldrawable: a #GdkGLDrawable. * @width: location to store drawable's width, or NULL. * @height: location to store drawable's height, or NULL. * * Fills *width and *height with the size of GL drawable. * width or height can be NULL if you only want the other one. * **/ void gdk_gl_drawable_get_size (GdkGLDrawable *gldrawable, gint *width, gint *height) { g_return_if_fail (GDK_IS_GL_DRAWABLE (gldrawable)); GDK_GL_DRAWABLE_GET_CLASS (gldrawable)->get_size (gldrawable, width, height); }
/** * gdk_gl_drawable_make_current: * @gldrawable: a #GdkGLDrawable. * @glcontext: a #GdkGLContext. * * Attach an OpenGL rendering context to a @gldrawable. * * Return value: TRUE if it is successful, FALSE otherwise. **/ gboolean gdk_gl_drawable_make_current (GdkGLDrawable *gldrawable, GdkGLContext *glcontext) { g_return_val_if_fail (GDK_IS_GL_DRAWABLE (gldrawable), FALSE); return GDK_GL_DRAWABLE_GET_CLASS (gldrawable)->make_context_current (gldrawable, gldrawable, glcontext); }
/** * gdk_gl_context_new: * @gldrawable: a #GdkGLDrawable. * @share_list: the #GdkGLContext with which to share display lists and texture * objects. NULL indicates that no sharing is to take place. * @direct: whether rendering is to be done with a direct connection to * the graphics system. * @render_type: GDK_GL_RGBA_TYPE or GDK_GL_COLOR_INDEX_TYPE (currently not * used). * * Creates a new OpenGL rendering context. * * Return value: the new #GdkGLContext. **/ GdkGLContext * gdk_gl_context_new (GdkGLDrawable *gldrawable, GdkGLContext *share_list, gboolean direct, int render_type) { g_return_val_if_fail (GDK_IS_GL_DRAWABLE (gldrawable), NULL); return GDK_GL_DRAWABLE_GET_CLASS (gldrawable)->create_new_context (gldrawable, share_list, direct, render_type); }