Esempio n. 1
0
/*< 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));
    }
}
Esempio n. 2
0
/**
 * 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);
}
Esempio n. 3
0
/**
 * 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);
}
Esempio n. 4
0
/**
 * 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);
}
Esempio n. 5
0
/**
 * 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);
}
Esempio n. 6
0
/**
 * 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);
}
Esempio n. 7
0
/**
 * 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);
}
Esempio n. 8
0
/**
 * 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);
}