/*
* Copyright 2001-2003 Red Hat Inc., Durham, North Carolina.
*
* All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation on the rights to use, copy, modify, merge,
* and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice (including the
* next paragraph) shall be included in all copies or substantial
* portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
/*
* Authors:
* Kevin E. Martin <kem@redhat.com>
* David H. Dawes <dawes@xfree86.org>
* Rickard E. (Rik) Faith <faith@redhat.com>
*
*/
/** \file
* Main header file included by all other DMX-related files.
*/
/** \mainpage
* - <a href="http://dmx.sourceforge.net">DMX Home Page</a>
* - <a href="http://sourceforge.net/projects/dmx">DMX Project Page (on
* Source Forge)</a>
* - <a href="http://dmx.sourceforge.net/dmx.html">Distributed Multihead
* X design</a>, the design document for DMX
* - <a href="http://dmx.sourceforge.net/DMXSpec.txt">Client-to-Server
* DMX Extension to the X Protocol</a>
*/
#ifndef DMX_H
#define DMX_H
#include <dmx-config.h>
#endif
#include "gcstruct.h"
/* Handle client-side include files in one place. */
#include "dmxclient.h"
#include "globals.h"
#include "scrnintstr.h"
#include "picturestr.h"
#ifdef GLXEXT
#endif
typedef enum {
PosAbsolute = 0,
} PositionType;
/** Provide the typedef globally, but keep the contents opaque outside
* of the input routines. \see dmxinput.h */
/** Provide the typedef globally, but keep the contents opaque outside
* of the XSync statistic routines. \see dmxstat.c */
/** Global structure containing information about each backend screen. */
typedef struct _DMXScreenInfo {
/*---------- Back-end X server information ----------*/
/*---------- Screen window information ----------*/
/** Default drawables for "screen" */
/*---------- Root window information ----------*/
/*---------- Shadow framebuffer information ----------*/
/*---------- Other related information ----------*/
/* Support for cursors on overlapped
* backend displays. */
int cursorVisible;
#ifdef GLXEXT
/** Visual information for glxProxy */
int numGlxVisuals;
int glxMajorOpcode;
int glxErrorBase;
/** FB config information for glxProxy */
int numFBConfigs;
#endif
/** Function pointers to wrapped screen
* functions */
extern int dmxNumScreens; /**< Number of dmxScreens */
extern int dmxShadowFB; /**< Non-zero if using
* shadow frame-buffer
* (deprecated) */
* occurred */
* occurred */
* screen
* optimizations */
* primitive subdivision
* optimization */
* lazy window creation
* optimization */
* extension should be
* used with the backend
* servers */
extern int dmxDepth; /**< Requested depth if
* non-zero */
#ifdef GLXEXT
* support is enabled */
* support for swap
* groups and barriers
* is enabled */
* should force an XSync
* request after each
* swap buffers call */
* should force a
* glFinish request
* after each swap
* buffers call */
#endif
extern char *dmxFontPath; /**< NULL if no font
* path is set on the
* command line;
* otherwise, a string
* of comma separated
* paths built from the
* command line
* specified font
* paths */
* paths should be
* ignored during server
* init */
* remove screens support
* is enabled */
/** Wrap screen or GC function pointer */
do { \
} while (0)
/** Unwrap screen or GC function pointer */
do { \
} while (0)
/* Define the MAXSCREENSALLOC/FREE macros, when MAXSCREENS patch has not
* been applied to sources. */
#ifdef MAXSCREENS
#define MAXSCREEN_MAKECONSTSTR1(x) #x
do { \
if (!o) { \
} \
} while (0)
do { \
if (!o) { \
if (!o) return retval; \
} \
} while (0)
#define MAXSCREENSFREE(o) \
do { \
free(o); \
o = NULL; \
} while (0)
#endif
extern DevPrivateKeyRec dmxGCPrivateKeyRec;
extern DevPrivateKeyRec dmxWinPrivateKeyRec;
extern DevPrivateKeyRec dmxPixPrivateKeyRec;
extern int dmxFontPrivateIndex; /**< Private index for Fonts */
extern DevPrivateKeyRec dmxPictPrivateKeyRec;
#endif /* DMX_H */