summaryrefslogtreecommitdiff
path: root/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkgloverlay-x11.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkgloverlay-x11.c')
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkgloverlay-x11.c229
1 files changed, 0 insertions, 229 deletions
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkgloverlay-x11.c b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkgloverlay-x11.c
deleted file mode 100644
index 40356060..00000000
--- a/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkgloverlay-x11.c
+++ /dev/null
@@ -1,229 +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 "gdkglx.h"
-#include "gdkglprivate-x11.h"
-#include "gdkgloverlay-x11.h"
-
-#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
-#include <gdk/gdkscreen.h>
-#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
-
-#include <X11/Xmd.h>
-
-/*
- * SERVER_OVERLAY_VISUALS property entry format
- *
- * format: 32
- *
- * <Name> <Type> <Description>
- * overlay_visual VisualID Visual ID of visual.
- * transparent_type CARD32 None (0).
- * TransparentPixel (1).
- * TransparentMask (2).
- * value CARD32 Pixel value or transparency mask.
- * layer INT32 The layer the visual resides in.
- */
-
-/*
- * SOV property.
- * (format is 32: the returned data is represented as a long array)
- */
-
-typedef struct
-{
- long overlay_visual;
- long transparent_type;
- long value;
- long layer;
-} __SOVProp;
-
-/* SOV properties data. */
-
-typedef struct
-{
- __SOVProp *prop;
- unsigned long num;
-} __SOVPropArray;
-
-static const gchar quark_sov_props_string[] = "gdk-gl-overlay-sov-props";
-static GQuark quark_sov_props = 0;
-
-static void
-sov_prop_array_destroy (__SOVPropArray *sov_props)
-{
- if (sov_props->prop != NULL)
- XFree (sov_props->prop);
-
- g_free (sov_props);
-}
-
-static __SOVPropArray *
-gdk_gl_overlay_get_sov_props (GdkScreen *screen)
-{
- __SOVPropArray *sov_props;
- GdkWindow *root_window;
-#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
- GdkDisplay *display;
-#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
- Display *xdisplay;
- Atom xa_sov;
- Status status;
- Atom actual_type;
- int actual_format;
- unsigned long nitems, bytes_after;
- unsigned char *prop = NULL;
-
- GDK_GL_NOTE_FUNC_PRIVATE ();
-
-#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
- root_window = gdk_screen_get_root_window (screen);
-#else /* GDKGLEXT_MULTIHEAD_SUPPORT */
- root_window = gdk_get_default_root_window ();
-#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
-
- if (quark_sov_props == 0)
- quark_sov_props = g_quark_from_static_string (quark_sov_props_string);
-
- sov_props = g_object_get_qdata (G_OBJECT (root_window), quark_sov_props);
- if (sov_props != NULL)
- return sov_props;
-
- sov_props = g_malloc (sizeof (__SOVPropArray));
-
-#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
- display = gdk_screen_get_display (screen);
- xdisplay = GDK_DISPLAY_XDISPLAY (display);
- xa_sov = gdk_x11_get_xatom_by_name_for_display (display, "SERVER_OVERLAY_VISUALS");
-#else /* GDKGLEXT_MULTIHEAD_SUPPORT */
- xdisplay = gdk_x11_get_default_xdisplay ();
- xa_sov = gdk_x11_get_xatom_by_name ("SERVER_OVERLAY_VISUALS");
-#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
-
- status = XGetWindowProperty (xdisplay, GDK_WINDOW_XWINDOW (root_window),
- xa_sov, 0L, 1000000L, False, AnyPropertyType,
- &actual_type, &actual_format,
- &nitems, &bytes_after, &prop);
- if (status != Success ||
- actual_type == None ||
- actual_format != 32 ||
- nitems < 4)
- {
- GDK_GL_NOTE (MISC, g_message (" -- SERVER_OVERLAY_VISUALS: not supported"));
-
- if (prop != NULL)
- XFree (prop);
-
- sov_props->prop = NULL;
- sov_props->num = 0;
- }
- else
- {
- GDK_GL_NOTE (MISC, g_message (" -- SERVER_OVERLAY_VISUALS: supported"));
-
- sov_props->prop = (__SOVProp *) prop;
- sov_props->num = nitems / (sizeof (__SOVProp) / 4);
- }
-
- g_object_set_qdata_full (G_OBJECT (root_window), quark_sov_props, sov_props,
- (GDestroyNotify) sov_prop_array_destroy);
-
-#ifdef G_ENABLE_DEBUG
- if (gdk_gl_debug_flags & GDK_GL_DEBUG_MISC)
- {
-#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
- int screen_num = GDK_SCREEN_XNUMBER (screen);
-#else /* GDKGLEXT_MULTIHEAD_SUPPORT */
- int screen_num = gdk_x11_get_default_screen ();
-#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
- int i;
-
- g_message (" -- SERVER_OVERLAY_VISUALS: properties");
- g_print ("screen\tvisual\ttype\tvalue\tlayer\n");
- for (i = 0; i < sov_props->num; i++)
- {
- g_print ("%d\t0x%lx\t%lu\t%lu\t%ld\n",
- screen_num,
- (VisualID) (sov_props->prop[i].overlay_visual),
- (CARD32) (sov_props->prop[i].transparent_type),
- (CARD32) (sov_props->prop[i].value),
- (INT32) (sov_props->prop[i].layer));
- }
- }
-#endif /* G_ENABLE_DEBUG */
-
- return sov_props;
-}
-
-/* private at present... */
-gboolean
-_gdk_x11_gl_overlay_get_info (GdkVisual *visual,
- GdkGLOverlayInfo *overlay_info)
-{
- __SOVPropArray *sov_props;
- VisualID xvisualid;
- int i;
-
- GDK_GL_NOTE_FUNC_PRIVATE ();
-
- g_return_val_if_fail (GDK_IS_VISUAL (visual), FALSE);
- g_return_val_if_fail (overlay_info != NULL, FALSE);
-
- /* Get SOV properties. */
-
-#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
- sov_props = gdk_gl_overlay_get_sov_props (gdk_visual_get_screen (visual));
-#else /* GDKGLEXT_MULTIHEAD_SUPPORT */
- sov_props = gdk_gl_overlay_get_sov_props (NULL);
-#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
-
- /* Look up SOV property for the visual. */
-
- xvisualid = GDK_VISUAL_XVISUAL (visual)->visualid;
-
- for (i = 0; i < sov_props->num; i++)
- {
- if ((VisualID) (sov_props->prop[i].overlay_visual) == xvisualid)
- {
- overlay_info->visual = visual;
- overlay_info->transparent_type = sov_props->prop[i].transparent_type;
- overlay_info->value = sov_props->prop[i].value;
- overlay_info->layer = sov_props->prop[i].layer;
-
- GDK_GL_NOTE (MISC, g_message (" -- overlay visual"));
- GDK_GL_NOTE (MISC, g_print ("transparent_type = %d\n",
- overlay_info->transparent_type));
- GDK_GL_NOTE (MISC, g_print ("value = %u\n",
- overlay_info->value));
- GDK_GL_NOTE (MISC, g_print ("layer = %d\n",
- overlay_info->layer));
-
- return TRUE;
- }
- }
-
- /* meaningless */
- overlay_info->visual = visual;
- overlay_info->transparent_type = GDK_GL_OVERLAY_TRANSPARENT_NONE;
- overlay_info->value = 0;
- overlay_info->layer = 0;
-
- GDK_GL_NOTE (MISC, g_message (" -- not overlay visual"));
-
- return FALSE;
-}