Remove inclusion of Xlib headers in Cogl headers

Xlib headers define many trivially named objects which can later cause
name collision problems when only cogl.h header is included in a program
or library. Xlib headers are now only included through including the
standalone header cogl-xlib.h.

https://bugzilla.gnome.org/show_bug.cgi?id=661174

Reviewed-by: Robert Bragg <robert@linux.intel.com>
This commit is contained in:
Zan Dobersek 2011-10-17 18:55:35 +02:00 committed by Robert Bragg
parent 5f7cdfed69
commit d8c47e25f2
16 changed files with 65 additions and 29 deletions

View File

@ -330,6 +330,7 @@ cogl_sources_c = \
if SUPPORT_XLIB
cogl_public_h += \
$(srcdir)/cogl-clutter-xlib.h \
$(srcdir)/cogl-xlib-renderer.h
cogl_experimental_h += \

41
cogl/cogl-clutter-xlib.h Normal file
View File

@ -0,0 +1,41 @@
/*
* Cogl
*
* An object oriented GL/GLES Abstraction/Utility Layer
*
* Copyright (C) 2011 Intel Corporation.
*
* 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 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.
*/
#if !defined(__COGL_XLIB_H_INSIDE__) && !defined(CLUTTER_COMPILATION)
#error "Only <cogl/cogl-xlib.h> can be included directly."
#endif
#ifndef __COGL_CLUTTER_XLIB_H__
#define __COGL_CLUTTER_XLIB_H__
#include <X11/Xutil.h>
G_BEGIN_DECLS
#define cogl_clutter_winsys_xlib_get_visual_info cogl_clutter_winsys_xlib_get_visual_info_CLUTTER
XVisualInfo *
cogl_clutter_winsys_xlib_get_visual_info (void);
G_END_DECLS
#endif /* __COGL_CLUTTER_XLIB_H__ */

View File

@ -39,6 +39,9 @@
#include "cogl-winsys-stub-private.h"
#include "cogl-framebuffer-private.h"
#include "cogl-onscreen-private.h"
#ifdef COGL_HAS_XLIB_SUPPORT
#include "cogl-clutter-xlib.h"
#endif
gboolean
cogl_clutter_check_extension (const char *name, const char *ext)

View File

@ -28,10 +28,6 @@
#ifndef __COGL_CLUTTER_H__
#define __COGL_CLUTTER_H__
#ifdef COGL_HAS_XLIB
#include <X11/Xutil.h>
#endif
G_BEGIN_DECLS
#define cogl_clutter_check_extension cogl_clutter_check_extension_CLUTTER
@ -46,12 +42,6 @@ cogl_clutter_winsys_has_feature (CoglWinsysFeature feature);
void
cogl_onscreen_clutter_backend_set_size (int width, int height);
#ifdef COGL_HAS_XLIB
#define cogl_clutter_winsys_xlib_get_visual_info cogl_clutter_winsys_xlib_get_visual_info_CLUTTER
XVisualInfo *
cogl_clutter_winsys_xlib_get_visual_info (void);
#endif
G_END_DECLS
#endif /* __COGL_CLUTTER_H__ */

View File

@ -45,6 +45,7 @@
#include "cogl-winsys-stub-private.h"
#include "cogl-winsys-egl-private.h"
#include "cogl-config-private.h"
#include "cogl-xlib-renderer.h"
#ifdef COGL_HAS_GLX_SUPPORT
extern const CoglWinsysVtable *_cogl_winsys_glx_get_vtable (void);

View File

@ -31,9 +31,6 @@
#include <glib-object.h>
#include <cogl/cogl-defines.h>
#ifdef COGL_HAS_XLIB
#include <X11/Xlib.h>
#endif
G_BEGIN_DECLS

View File

@ -28,7 +28,7 @@
#include "config.h"
#endif
#include "cogl.h"
#include "cogl-xlib-renderer.h"
#include "cogl-util.h"
#include "cogl-internal.h"
#include "cogl-object.h"

View File

@ -21,15 +21,14 @@
* Boston, MA 02111-1307, USA.
*/
#if !defined(__COGL_H_INSIDE__) && !defined(CLUTTER_COMPILATION)
#error "Only <cogl/cogl.h> can be included directly."
#if !defined(__COGL_XLIB_H_INSIDE__) && !defined(CLUTTER_COMPILATION)
#error "Only <cogl/cogl-xlib.h> can be included directly."
#endif
#ifndef __COGL_XLIB_RENDERER_H__
#define __COGL_XLIB_RENDERER_H__
#include <cogl/cogl-types.h>
#include <cogl/cogl-renderer.h>
#include <cogl/cogl.h>
#include <X11/Xlib.h>

View File

@ -29,7 +29,8 @@
#include "config.h"
#endif
#include <cogl.h>
#include <cogl-xlib.h>
#include <cogl-internal.h>
#include <cogl-handle.h>
#include <cogl-context-private.h>

View File

@ -21,17 +21,17 @@
* Boston, MA 02111-1307, USA.
*/
#if !defined(__COGL_H_INSIDE__) && !defined(CLUTTER_COMPILATION)
#error "Only <cogl/cogl.h> can be included directly."
#endif
#ifndef __COGL_XLIB_H__
#define __COGL_XLIB_H__
#include <cogl/cogl-types.h>
#include <X11/Xlib.h>
#define __COGL_XLIB_H_INSIDE__
#include <cogl/cogl.h>
#include <cogl/cogl-clutter-xlib.h>
#include <cogl/cogl-xlib-renderer.h>
G_BEGIN_DECLS
/*
@ -81,4 +81,6 @@ cogl_xlib_set_display (Display *display);
CoglFilterReturn
cogl_xlib_handle_event (XEvent *xevent);
#undef __COGL_XLIB_H_INSIDE__
#endif /* __COGL_XLIB_H__ */

View File

@ -96,10 +96,6 @@ typedef struct _CoglFramebuffer CoglFramebuffer;
#include <cogl/cogl-pipeline-layer-state.h>
#include <cogl/cogl-framebuffer.h>
#include <cogl/cogl-onscreen.h>
#ifdef COGL_HAS_XLIB
#include <cogl/cogl-xlib.h>
#include <cogl/cogl-xlib-renderer.h>
#endif
#if defined (COGL_HAS_EGL_PLATFORM_WAYLAND_SUPPORT)
#include <cogl/cogl-wayland-renderer.h>
#endif

View File

@ -47,6 +47,7 @@
#include "cogl-handle.h"
#include "cogl-winsys-private.h"
#include "cogl-pipeline-opengl-private.h"
#include "cogl-xlib.h"
#include <X11/Xlib.h>
#include <X11/Xutil.h>

View File

@ -43,6 +43,7 @@
#ifdef COGL_HAS_EGL_PLATFORM_POWERVR_X11_SUPPORT
#include "cogl-xlib-renderer-private.h"
#include "cogl-xlib-display-private.h"
#include "cogl-xlib-renderer.h"
#endif
#ifdef COGL_HAS_XLIB_SUPPORT

View File

@ -48,6 +48,7 @@
#include "cogl-framebuffer-private.h"
#include "cogl-onscreen-private.h"
#include "cogl-swap-chain-private.h"
#include "cogl-xlib-renderer.h"
#include <stdlib.h>
#include <sys/types.h>

View File

@ -1,4 +1,5 @@
#include <cogl/cogl.h>
#include <cogl/cogl-xlib.h>
#include <glib.h>
#include <stdio.h>

View File

@ -1,4 +1,5 @@
#include <cogl/cogl.h>
#include <cogl/cogl-xlib.h>
#include <cogl/winsys/cogl-texture-pixmap-x11.h>
#include <glib.h>
#include <stdio.h>