summaryrefslogtreecommitdiff
path: root/plugins/gtkui/gtkglext-gtk2/gdk/gdkglconfig.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/gtkui/gtkglext-gtk2/gdk/gdkglconfig.c')
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkglconfig.c442
1 files changed, 0 insertions, 442 deletions
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkglconfig.c b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglconfig.c
deleted file mode 100644
index 7743d05a..00000000
--- a/plugins/gtkui/gtkglext-gtk2/gdk/gdkglconfig.c
+++ /dev/null
@@ -1,442 +0,0 @@
-/* GdkGLExt - OpenGL Extension to GDK
- * Copyright (C) 2002-2004 Naofumi Yasufuku
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- */
-
-#include "gdkglprivate.h"
-#include "gdkglconfig.h"
-
-#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
-#include <gdk/gdkscreen.h>
-#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
-
-gboolean _gdk_gl_config_no_standard_colormap = FALSE;
-
-static void gdk_gl_config_class_init (GdkGLConfigClass *klass);
-static void gdk_gl_config_finalize (GObject *object);
-
-static gpointer parent_class = NULL;
-
-GType
-gdk_gl_config_get_type (void)
-{
- static GType type = 0;
-
- if (!type)
- {
- static const GTypeInfo type_info = {
- sizeof (GdkGLConfigClass),
- (GBaseInitFunc) NULL,
- (GBaseFinalizeFunc) NULL,
- (GClassInitFunc) gdk_gl_config_class_init,
- (GClassFinalizeFunc) NULL,
- NULL, /* class_data */
- sizeof (GdkGLConfig),
- 0, /* n_preallocs */
- (GInstanceInitFunc) NULL
- };
-
- type = g_type_register_static (G_TYPE_OBJECT,
- "GdkGLConfig",
- &type_info, 0);
- }
-
- return type;
-}
-
-static void
-gdk_gl_config_class_init (GdkGLConfigClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
- GDK_GL_NOTE_FUNC_PRIVATE ();
-
- parent_class = g_type_class_peek_parent (klass);
-
- object_class->finalize = gdk_gl_config_finalize;
-}
-
-static void
-gdk_gl_config_finalize (GObject *object)
-{
- GDK_GL_NOTE_FUNC_PRIVATE ();
-
- G_OBJECT_CLASS (parent_class)->finalize (object);
-}
-
-static GdkGLConfig *
-gdk_gl_config_new_ci (GdkScreen *screen,
- GdkGLConfigMode mode)
-{
- GdkGLConfig *glconfig = NULL;
- static const int buf_size_list[] = { 16, 12, 8, 4, 2, 1, 0 };
- int list[32];
- int n = 0;
- int i;
-
- list[n++] = GDK_GL_BUFFER_SIZE;
- list[n++] = 1;
- if (mode & GDK_GL_MODE_DOUBLE)
- {
- list[n++] = GDK_GL_DOUBLEBUFFER;
- }
- if (mode & GDK_GL_MODE_STEREO)
- {
- list[n++] = GDK_GL_STEREO;
- }
- if (mode & GDK_GL_MODE_DEPTH)
- {
- list[n++] = GDK_GL_DEPTH_SIZE;
- list[n++] = 1;
- }
- if (mode & GDK_GL_MODE_STENCIL)
- {
- list[n++] = GDK_GL_STENCIL_SIZE;
- list[n++] = 1;
- }
- list[n] = GDK_GL_ATTRIB_LIST_NONE;
-
- /* from GLUT */
- /* glXChooseVisual specify GLX_BUFFER_SIZE prefers the
- "smallest index buffer of at least the specified size".
- This would be reasonable if GLUT allowed the user to
- specify the required buffe size, but GLUT's display mode
- is too simplistic (easy to use?). GLUT should try to find
- the "largest". So start with a large buffer size and
- shrink until we find a matching one that exists. */
-
- for (i = 0; buf_size_list[i]; i++)
- {
- /* XXX Assumes list[1] is where GDK_GL_BUFFER_SIZE parameter is. */
- list[1] = buf_size_list[i];
-
-#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
- glconfig = gdk_gl_config_new_for_screen (screen, list);
-#else /* GDKGLEXT_MULTIHEAD_SUPPORT */
- glconfig = gdk_gl_config_new (list);
-#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
-
- if (glconfig != NULL)
- return glconfig;
- }
-
- return NULL;
-}
-
-static GdkGLConfig *
-gdk_gl_config_new_rgb (GdkScreen *screen,
- GdkGLConfigMode mode)
-{
- int list[32];
- int n = 0;
-
- list[n++] = GDK_GL_RGBA;
- list[n++] = GDK_GL_RED_SIZE;
- list[n++] = 1;
- list[n++] = GDK_GL_GREEN_SIZE;
- list[n++] = 1;
- list[n++] = GDK_GL_BLUE_SIZE;
- list[n++] = 1;
- if (mode & GDK_GL_MODE_ALPHA)
- {
- list[n++] = GDK_GL_ALPHA_SIZE;
- list[n++] = 1;
- }
- if (mode & GDK_GL_MODE_DOUBLE)
- {
- list[n++] = GDK_GL_DOUBLEBUFFER;
- }
- if (mode & GDK_GL_MODE_STEREO)
- {
- list[n++] = GDK_GL_STEREO;
- }
- if (mode & GDK_GL_MODE_DEPTH)
- {
- list[n++] = GDK_GL_DEPTH_SIZE;
- list[n++] = 1;
- }
- if (mode & GDK_GL_MODE_STENCIL)
- {
- list[n++] = GDK_GL_STENCIL_SIZE;
- list[n++] = 1;
- }
- if (mode & GDK_GL_MODE_ACCUM)
- {
- list[n++] = GDK_GL_ACCUM_RED_SIZE;
- list[n++] = 1;
- list[n++] = GDK_GL_ACCUM_GREEN_SIZE;
- list[n++] = 1;
- list[n++] = GDK_GL_ACCUM_BLUE_SIZE;
- list[n++] = 1;
- if (mode & GDK_GL_MODE_ALPHA)
- {
- list[n++] = GDK_GL_ACCUM_ALPHA_SIZE;
- list[n++] = 1;
- }
- }
- list[n] = GDK_GL_ATTRIB_LIST_NONE;
-
-#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
- return gdk_gl_config_new_for_screen (screen, list);
-#else /* GDKGLEXT_MULTIHEAD_SUPPORT */
- return gdk_gl_config_new (list);
-#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
-}
-
-static GdkGLConfig *
-gdk_gl_config_new_by_mode_common (GdkScreen *screen,
- GdkGLConfigMode mode)
-{
- GdkGLConfig *glconfig;
-
-#define _GL_CONFIG_NEW_BY_MODE(__screen, __mode) \
- ( ((__mode) & GDK_GL_MODE_INDEX) ? \
- gdk_gl_config_new_ci (__screen, __mode) : \
- gdk_gl_config_new_rgb (__screen, __mode) )
-
- glconfig = _GL_CONFIG_NEW_BY_MODE (screen, mode);
- if (glconfig == NULL)
- {
- /* Fallback cases when can't get exactly what was asked for... */
- if (!(mode & GDK_GL_MODE_DOUBLE))
- {
- /* If we can't find a single buffered visual, try looking
- for a double buffered visual. We can treat a double
- buffered visual as a single buffered visual by changing
- the draw buffer to GL_FRONT and treating any swap
- buffers as no-ops. */
- mode |= GDK_GL_MODE_DOUBLE;
- glconfig = _GL_CONFIG_NEW_BY_MODE (screen, mode);
- if (glconfig != NULL)
- glconfig->as_single_mode = TRUE;
- }
- }
-
-#undef _GL_CONFIG_NEW_BY_MODE
-
- return glconfig;
-}
-
-/**
- * gdk_gl_config_new_by_mode:
- * @mode: display mode bit mask.
- *
- * Returns an OpenGL frame buffer configuration that match the specified
- * display mode.
- *
- * Return value: the new #GdkGLConfig.
- **/
-GdkGLConfig *
-gdk_gl_config_new_by_mode (GdkGLConfigMode mode)
-{
- GdkScreen *screen;
-
-#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
- screen = gdk_screen_get_default ();
-#else /* GDKGLEXT_MULTIHEAD_SUPPORT */
- screen = NULL;
-#endif
-
- return gdk_gl_config_new_by_mode_common (screen, mode);
-}
-
-#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
-
-/**
- * gdk_gl_config_new_by_mode_for_screen:
- * @screen: target screen.
- * @mode: display mode bit mask.
- *
- * Returns an OpenGL frame buffer configuration that match the specified
- * display mode.
- *
- * Return value: the new #GdkGLConfig.
- **/
-GdkGLConfig *
-gdk_gl_config_new_by_mode_for_screen (GdkScreen *screen,
- GdkGLConfigMode mode)
-{
- return gdk_gl_config_new_by_mode_common (screen, mode);
-}
-
-#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
-
-/**
- * gdk_gl_config_get_layer_plane:
- * @glconfig: a #GdkGLConfig.
- *
- * Gets the layer plane (level) of the frame buffer.
- * Zero is the default frame buffer.
- * Positive layer planes correspond to frame buffers that overlay the default
- * buffer, and negative layer planes correspond to frame buffers that underlie
- * the default frame buffer.
- *
- * Return value: layer plane.
- **/
-gint
-gdk_gl_config_get_layer_plane (GdkGLConfig *glconfig)
-{
- g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), 0);
-
- return glconfig->layer_plane;
-}
-
-/**
- * gdk_gl_config_get_n_aux_buffers:
- * @glconfig: a #GdkGLConfig.
- *
- * Gets the number of auxiliary color buffers.
- *
- * Return value: number of auxiliary color buffers.
- **/
-gint
-gdk_gl_config_get_n_aux_buffers (GdkGLConfig *glconfig)
-{
- g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), 0);
-
- return glconfig->n_aux_buffers;
-}
-
-/**
- * gdk_gl_config_get_n_sample_buffers:
- * @glconfig: a #GdkGLConfig.
- *
- * Gets the number of multisample buffers.
- *
- * Return value: number of multisample buffers.
- **/
-gint
-gdk_gl_config_get_n_sample_buffers (GdkGLConfig *glconfig)
-{
- g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), 0);
-
- return glconfig->n_sample_buffers;
-}
-
-/**
- * gdk_gl_config_is_rgba:
- * @glconfig: a #GdkGLConfig.
- *
- * Returns whether the configured frame buffer is RGBA mode.
- *
- * Return value: TRUE if the configured frame buffer is RGBA mode, FALSE
- * otherwise.
- **/
-gboolean
-gdk_gl_config_is_rgba (GdkGLConfig *glconfig)
-{
- g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), FALSE);
-
- return glconfig->is_rgba;
-}
-
-/**
- * gdk_gl_config_is_double_buffered:
- * @glconfig: a #GdkGLConfig.
- *
- * Returns whether the configuration supports the double-buffered visual.
- *
- * Return value: TRUE if the double-buffered visual is supported, FALSE
- * otherwise.
- **/
-gboolean
-gdk_gl_config_is_double_buffered (GdkGLConfig *glconfig)
-{
- g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), FALSE);
-
- return (glconfig->is_double_buffered && (!glconfig->as_single_mode));
-}
-
-/**
- * gdk_gl_config_is_stereo:
- * @glconfig: a #GdkGLConfig.
- *
- * Returns whether the configuration supports the stereo visual.
- *
- * Return value: TRUE if the stereo visual is supported, FALSE otherwise.
- **/
-gboolean
-gdk_gl_config_is_stereo (GdkGLConfig *glconfig)
-{
- g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), FALSE);
-
- return glconfig->is_stereo;
-}
-
-/**
- * gdk_gl_config_has_alpha:
- * @glconfig: a #GdkGLConfig.
- *
- * Returns whether the configured color buffer has alpha bits.
- *
- * Return value: TRUE if the color buffer has alpha bits, FALSE otherwise.
- **/
-gboolean
-gdk_gl_config_has_alpha (GdkGLConfig *glconfig)
-{
- g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), FALSE);
-
- return glconfig->has_alpha;
-}
-
-/**
- * gdk_gl_config_has_depth_buffer:
- * @glconfig: a #GdkGLConfig.
- *
- * Returns whether the configured frame buffer has depth buffer.
- *
- * Return value: TRUE if the frame buffer has depth buffer, FALSE otherwise.
- **/
-gboolean
-gdk_gl_config_has_depth_buffer (GdkGLConfig *glconfig)
-{
- g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), FALSE);
-
- return glconfig->has_depth_buffer;
-}
-
-/**
- * gdk_gl_config_has_stencil_buffer:
- * @glconfig: a #GdkGLConfig.
- *
- * Returns whether the configured frame buffer has stencil buffer.
- *
- * Return value: TRUE if the frame buffer has stencil buffer, FALSE otherwise.
- **/
-gboolean
-gdk_gl_config_has_stencil_buffer (GdkGLConfig *glconfig)
-{
- g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), FALSE);
-
- return glconfig->has_stencil_buffer;
-}
-
-/**
- * gdk_gl_config_has_accum_buffer:
- * @glconfig: a #GdkGLConfig.
- *
- * Returns whether the configured frame buffer has accumulation buffer.
- *
- * Return value: TRUE if the frame buffer has accumulation buffer, FALSE
- * otherwise.
- **/
-gboolean
-gdk_gl_config_has_accum_buffer (GdkGLConfig *glconfig)
-{
- g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), FALSE);
-
- return glconfig->has_accum_buffer;
-}