Distributed Multihead X
1.16.4
|
#include "dmx.h"
#include "dmxinit.h"
#include "dmxsync.h"
#include "dmxlog.h"
#include "dmxinput.h"
#include "dmxscrinit.h"
#include "dmxcursor.h"
#include "dmxfont.h"
#include "config/dmxconfig.h"
#include "dmxcb.h"
#include "dmxprop.h"
#include "dmxstat.h"
#include "dmxpict.h"
#include <X11/Xos.h>
#include <X11/Xmu/SysUtil.h>
#include "dixstruct.h"
#include <signal.h>
#include <X11/extensions/dmxproto.h>
Macros | |
#define | DMX_ERROR_BUF_SIZE 256 |
Functions | |
static int | dmxErrorHandler (Display *dpy, XErrorEvent *ev) |
Bool | dmxOpenDisplay (DMXScreenInfo *dmxScreen) |
void | dmxSetErrorHandler (DMXScreenInfo *dmxScreen) |
static void | dmxPrintScreenInfo (DMXScreenInfo *dmxScreen) |
void | dmxGetScreenAttribs (DMXScreenInfo *dmxScreen) |
Bool | dmxGetVisualInfo (DMXScreenInfo *dmxScreen) |
void | dmxGetColormaps (DMXScreenInfo *dmxScreen) |
void | dmxGetPixmapFormats (DMXScreenInfo *dmxScreen) |
static Bool | dmxSetPixmapFormats (ScreenInfo *pScreenInfo, DMXScreenInfo *dmxScreen) |
void | dmxCheckForWM (DMXScreenInfo *dmxScreen) |
static void | dmxDisplayInit (DMXScreenInfo *dmxScreen) |
static const char * | dmxExecOS (void) |
static const char * | dmxBuildCompiler (void) |
static const char * | dmxExecHost (void) |
static void | dmxAddExtensions (Bool glxSupported) |
void | InitOutput (ScreenInfo *pScreenInfo, int argc, char *argv[]) |
static void | dmxSetDefaultFontPath (const char *fp) |
void | AbortDDX (enum ExitCode error) |
void | ddxGiveUp (enum ExitCode error) |
void | OsVendorInit (void) |
void | OsVendorFatalError (const char *f, va_list args) |
int | ddxProcessArgument (int argc, char *argv[], int i) |
void | ddxUseMsg (void) |
Variables | |
int | dmxNumScreens |
DMXScreenInfo * | dmxScreens |
int | dmxNumInputs |
DMXInputInfo * | dmxInputs |
XErrorEvent | dmxLastErrorEvent |
Bool | dmxErrorOccurred = FALSE |
char * | dmxFontPath = NULL |
Bool | dmxOffScreenOpt = TRUE |
Bool | dmxSubdividePrimitives = TRUE |
Bool | dmxLazyWindowCreation = TRUE |
Bool | dmxUseXKB = TRUE |
int | dmxDepth = 0 |
static Bool | dmxGLXProxy = FALSE |
RESTYPE | RRProviderType = 0 |
Bool | dmxIgnoreBadFontPaths = FALSE |
Bool | dmxAddRemoveScreens = FALSE |
Provide expected functions for initialization from the ddx layer and global variables for the DMX server.
#define DMX_ERROR_BUF_SIZE 256 |
Referenced by dmxErrorHandler().
void AbortDDX | ( | enum ExitCode | error | ) |
This function is called in Xserver/os/utils.c from AbortServer(). We must ensure that backend and console state is restored in the event the server shutdown wasn't clean.
References _DMXScreenInfo::beDisplay, and dmxNumScreens.
Referenced by ddxGiveUp().
void ddxGiveUp | ( | enum ExitCode | error | ) |
This function is called in Xserver/dix/main.c from main() when dispatchException & DE_TERMINATE (which is the only way to exit the main loop without an interruption.
References AbortDDX().
int ddxProcessArgument | ( | int | argc, |
char * | argv[], | ||
int | i | ||
) |
Process our command line arguments.
References dmxAddRemoveScreens, dmxConfigSetMaxScreens(), dmxConfigSetXkbLayout(), dmxConfigSetXkbModel(), dmxConfigSetXkbOptions(), dmxConfigSetXkbRules(), dmxConfigSetXkbVariant(), dmxConfigStoreConfig(), dmxConfigStoreDisplay(), dmxConfigStoreFile(), dmxConfigStoreInput(), dmxConfigStoreXInput(), dmxCursorNoMulti(), dmxDepth, dmxGLXProxy, dmxIgnoreBadFontPaths, dmxLazyWindowCreation, dmxLog(), dmxOffScreenOpt, dmxSetDefaultFontPath(), dmxStatActivate(), dmxSubdividePrimitives, dmxSyncActivate(), dmxUseXKB, and dmxWarning.
void ddxUseMsg | ( | void | ) |
Provide succinct usage information for the DMX server.
|
static |
References DMXExtensionInit().
Referenced by InitOutput().
|
static |
Referenced by InitOutput().
void dmxCheckForWM | ( | DMXScreenInfo * | dmxScreen | ) |
References _DMXScreenInfo::beDisplay, and _DMXScreenInfo::WMRunningOnBE.
Referenced by dmxAttachScreen(), and dmxDisplayInit().
|
static |
Initialize the display and collect relevant information about the display properties
References dmxCheckForWM(), dmxFatal, dmxGetColormaps(), dmxGetPixmapFormats(), dmxGetScreenAttribs(), dmxGetVisualInfo(), dmxLog(), dmxOpenDisplay(), dmxSetErrorHandler(), and _DMXScreenInfo::name.
Referenced by InitOutput().
|
static |
References DMX_ERROR_BUF_SIZE, dmxErrorOccurred, dmxLastErrorEvent, dmxLog(), and dmxWarning.
Referenced by dmxSetErrorHandler().
|
static |
Referenced by InitOutput().
|
static |
Referenced by InitOutput().
void dmxGetColormaps | ( | DMXScreenInfo * | dmxScreen | ) |
void dmxGetPixmapFormats | ( | DMXScreenInfo * | dmxScreen | ) |
References _DMXScreenInfo::beDepths, _DMXScreenInfo::beDisplay, _DMXScreenInfo::beNumDepths, _DMXScreenInfo::beNumPixmapFormats, and _DMXScreenInfo::bePixmapFormats.
Referenced by dmxAttachScreen(), and dmxDisplayInit().
void dmxGetScreenAttribs | ( | DMXScreenInfo * | dmxScreen | ) |
References _DMXScreenInfo::beBPP, _DMXScreenInfo::beDepth, _DMXScreenInfo::beDisplay, _DMXScreenInfo::beHeight, _DMXScreenInfo::beWidth, _DMXScreenInfo::beXDPI, _DMXScreenInfo::beYDPI, dmxLogOutput(), dmxLogOutputWarning(), dmxPrintScreenInfo(), _DMXScreenInfo::rootHeight, _DMXScreenInfo::rootWidth, _DMXScreenInfo::rootX, _DMXScreenInfo::rootY, _DMXScreenInfo::scrnHeight, _DMXScreenInfo::scrnWidth, _DMXScreenInfo::scrnX, _DMXScreenInfo::scrnXSign, _DMXScreenInfo::scrnY, and _DMXScreenInfo::scrnYSign.
Referenced by dmxAttachScreen(), and dmxDisplayInit().
Bool dmxGetVisualInfo | ( | DMXScreenInfo * | dmxScreen | ) |
References _DMXScreenInfo::beDefVisualIndex, _DMXScreenInfo::beDisplay, _DMXScreenInfo::beNumVisuals, _DMXScreenInfo::beVisuals, dmxDepth, and dmxLogVisual().
Referenced by dmxAttachScreen(), and dmxDisplayInit().
Bool dmxOpenDisplay | ( | DMXScreenInfo * | dmxScreen | ) |
References _DMXScreenInfo::beDisplay, dmxPropertyDisplay(), and _DMXScreenInfo::name.
Referenced by dmxAttachScreen(), and dmxDisplayInit().
|
static |
References _DMXScreenInfo::beDisplay, dmxLogOutput(), dmxLogOutputCont(), dmxLogOutputWarning(), and _DMXScreenInfo::WMRunningOnBE.
Referenced by dmxGetScreenAttribs().
|
static |
References dmxFontPath.
Referenced by ddxProcessArgument().
void dmxSetErrorHandler | ( | DMXScreenInfo * | dmxScreen | ) |
References dmxErrorHandler().
Referenced by dmxAttachScreen(), and dmxDisplayInit().
|
static |
References _DMXScreenInfo::beDepths, _DMXScreenInfo::beDisplay, _DMXScreenInfo::beNumDepths, _DMXScreenInfo::beNumPixmapFormats, and _DMXScreenInfo::bePixmapFormats.
Referenced by InitOutput().
void InitOutput | ( | ScreenInfo * | pScreenInfo, |
int | argc, | ||
char * | argv[] | ||
) |
This routine is called in Xserver/dix/main.c from main().
References _DMXScreenInfo::beDisplay, _DMXScreenInfo::beNumVisuals, _DMXScreenInfo::beVisuals, DMX_NO_RECOMPUTE_BOUNDING_BOX, dmxAddExtensions(), dmxAddRemoveScreens, dmxBuildCompiler(), dmxComputeWidthHeight(), dmxConfigConfigure(), dmxConnectionBlockCallback(), dmxDisplayInit(), dmxExecHost(), dmxExecOS(), dmxFatal, dmxGeneration, dmxGLXProxy, dmxInfo, dmxInitFonts(), dmxInitOrigins(), dmxInitOverlap(), dmxInitRender(), dmxInputFree(), dmxLazyWindowCreation, dmxLog(), dmxNumInputs, dmxNumScreens, dmxOffScreenOpt, dmxScreenInit(), dmxSetPixmapFormats(), dmxStatFree(), dmxStatInit(), dmxSyncInit(), dmxWarning, GetGLXFBConfigs(), GetGLXVisualConfigs(), GetGLXVisualConfigsFromFBConfigs(), _DMXScreenInfo::stat, VENDOR_RELEASE, VENDOR_STRING, dmxGlxVisualPrivate::x_visual_class, and dmxGlxVisualPrivate::x_visual_depth.
void OsVendorFatalError | ( | const char * | f, |
va_list | args | ||
) |
This function is called in Xserver/os/utils.c from FatalError() and VFatalError(). (Note that setting the function pointer OsVendorVErrorFProc will cause VErrorF() (which is called by the two routines mentioned here, as well as by others) to use the referenced routine instead of vfprintf().)
void OsVendorInit | ( | void | ) |
This function is called in Xserver/os/osinit.c from OsInit().
Bool dmxAddRemoveScreens = FALSE |
True if add and
remove screens support is enabled
Referenced by ddxProcessArgument(), dmxAttachScreen(), dmxDetachScreen(), and InitOutput().
int dmxDepth = 0 |
Bool dmxErrorOccurred = FALSE |
char* dmxFontPath = NULL |
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
Referenced by dmxBELoadFont(), and dmxSetDefaultFontPath().
|
static |
Referenced by ddxProcessArgument(), and InitOutput().
Bool dmxIgnoreBadFontPaths = FALSE |
True if bad font
paths should be ignored during server init
Referenced by ddxProcessArgument(), and dmxBELoadFont().
DMXInputInfo* dmxInputs |
List of inputs
Referenced by dmxAddDevice(), dmxAdjustCursorBoundaries(), dmxBackendInitPrivate(), dmxBlockHandler(), dmxChangePointerControl(), dmxCheckFunctionKeys(), dmxCommonCopyPrivate(), dmxConfigAddInput(), dmxConsoleInit(), dmxCoreMotion(), dmxDump(), dmxGetInputAttributes(), dmxGetInputCount(), dmxInputAttachBackend(), dmxInputAttachConsole(), dmxInputDetach(), dmxInputDetachAll(), dmxInputLocateId(), dmxInputLogDevices(), dmxKeyboardBellProc(), dmxKeyboardKbdCtrlProc(), dmxSigioDisableInput(), dmxSigioEnableInput(), dmxSigioHandler(), dmxTranslateAndEnqueueExtEvent(), dmxUpdateWindowInfo(), dmxWakeupHandler(), InitInput(), and ProcessInputEvents().
XErrorEvent dmxLastErrorEvent |
Bool dmxLazyWindowCreation = TRUE |
True if using the
lazy window creation optimization
Referenced by ddxProcessArgument(), dmxCreateWindow(), and InitOutput().
int dmxNumInputs |
Number of dmxInputs
Referenced by dmxAdjustCursorBoundaries(), dmxChangePointerControl(), dmxConfigAddInput(), dmxConfigConfigInputs(), dmxCoreMotion(), dmxDump(), dmxGetInputAttributes(), dmxGetInputCount(), dmxInputAttachBackend(), dmxInputAttachConsole(), dmxInputDetach(), dmxInputDetachAll(), dmxInputLocateId(), dmxInputLogDevices(), dmxKeyboardBellProc(), dmxKeyboardKbdCtrlProc(), dmxSigioDisableInput(), dmxSigioEnableInput(), dmxSigioHandler(), dmxUpdateWindowInfo(), InitInput(), InitOutput(), and ProcessInputEvents().
int dmxNumScreens |
Number of dmxScreens
Referenced by AbortDDX(), dmxBackendInitPrivate(), dmxBackendSameDisplay(), dmxCheckCursor(), dmxComputeScreenOrigins(), dmxComputeWidthHeight(), dmxConfigAddDisplay(), dmxConfigConfigInputs(), dmxConfigCopyFromWall(), dmxConfigFromCommandLine(), dmxConfigSetMaxScreens(), dmxConsoleComputeWidthHeight(), dmxConsoleDraw(), dmxConsoleDrawWindows(), dmxCursorOffScreen(), dmxFindFirstScreen(), dmxFindPointerScreen(), dmxGetNumScreens(), dmxGetScreenAttributes(), dmxInitOrigins(), dmxInitOverlap(), dmxInputAttachBackend(), dmxInputInit(), dmxProcRenderAddGlyphs(), dmxProcRenderCreateGlyphSet(), dmxProcRenderFreeGlyphs(), dmxProcRenderFreeGlyphSet(), dmxProcSetFontPath(), dmxPropertyCheckOtherWindows(), dmxReInitOrigins(), dmxSLCreate(), dmxSLFindNext(), dmxStatCallback(), dmxSyncCallback(), dmxTryComputeScreenOrigins(), and InitOutput().
Bool dmxOffScreenOpt = TRUE |
DMXScreenInfo* dmxScreens |
List of outputs
Referenced by _dmxMoveCursor(), _dmxRealizeCursor(), _dmxSetCursor(), _dmxUnrealizeCursor(), dmxAttachScreen(), dmxBackendFindOverlapping(), dmxBackendInitPrivate(), dmxBackendOffscreen(), dmxBackendProcessInput(), dmxBackendUpdatePosition(), dmxBECloseScreen(), dmxBECreateColormap(), dmxBECreateCursor(), dmxBECreateGC(), dmxBECreateGlyphSet(), dmxBECreatePixmap(), dmxBECreateWindowTree(), dmxBEDestroyWindow(), dmxBEFreeColormap(), dmxBEFreeCursor(), dmxBEFreeFont(), dmxBEFreeGC(), dmxBEFreeGlyphSet(), dmxBEFreePicture(), dmxBEFreePixmap(), dmxBELoadFont(), dmxBERestorePixmap(), dmxBERestoreRenderGlyph(), dmxBESavePixmap(), dmxBEScreenInit(), dmxBitmapToRegion(), dmxChangeBorderWidth(), dmxChangeClip(), dmxChangeGC(), dmxChangePicture(), dmxChangePictureClip(), dmxChangeWindowAttributes(), dmxCheckCursor(), dmxCloseScreen(), dmxColormapFromDefaultVisual(), dmxCommonSaveState(), dmxComposite(), dmxCompositeRects(), dmxComputeScreenOrigins(), dmxComputeWidthHeight(), dmxConfigAddDisplay(), dmxConfigConfigInputs(), dmxConfigCopyFromWall(), dmxConfigFromCommandLine(), dmxConnectionBlockCallback(), dmxConsoleDraw(), dmxCopyArea(), dmxCopyGC(), dmxCopyPlane(), dmxCopyWindow(), dmxCoreMotion(), dmxCreateAndRealizeWindow(), dmxCreateColormap(), dmxCreateGC(), dmxCreateNonRootWindow(), dmxCreatePicture(), dmxCreatePixmap(), dmxCreateRootWindow(), dmxCreateWindow(), dmxCursorOffScreen(), dmxDestroyClip(), dmxDestroyColormap(), dmxDestroyGC(), dmxDestroyPicture(), dmxDestroyPictureClip(), dmxDestroyPixmap(), dmxDestroyWindow(), dmxDetachScreen(), dmxDoCreatePicture(), dmxDoRestackWindow(), dmxDoSetShape(), dmxFillPolygon(), dmxFindAlternatePixmap(), dmxFindFirstScreen(), dmxGetImage(), dmxGetScreenAttributes(), dmxImageText16(), dmxImageText8(), dmxInitOrigins(), dmxInitOverlap(), dmxInputAttachBackend(), dmxInputInit(), dmxInstallColormap(), dmxLookupVisual(), dmxLookupVisualFromID(), dmxMoveCursor(), dmxPictureInit(), dmxPolyArc(), dmxPolyFillArc(), dmxPolyFillRect(), dmxPolylines(), dmxPolyPoint(), dmxPolyRectangle(), dmxPolySegment(), dmxPolyText16(), dmxPolyText8(), dmxPositionWindow(), dmxProcRenderAddGlyphs(), dmxProcRenderCompositeGlyphs(), dmxProcRenderCreateGlyphSet(), dmxProcRenderFreeGlyphs(), dmxProcRenderFreeGlyphSet(), dmxProcRenderSetPictureFilter(), dmxProcRenderSetPictureTransform(), dmxProcSetFontPath(), dmxPropertyCheckOtherWindows(), dmxPutImage(), dmxRealizeCursor(), dmxRealizeFont(), dmxRealizeWindow(), dmxReInitOrigins(), dmxReparentWindow(), dmxResizeRootWindow(), dmxResizeScreenWindow(), dmxResizeWindow(), dmxRestackWindow(), dmxSaveScreen(), dmxScreenInit(), dmxSetCursor(), dmxSetShape(), dmxStatCallback(), dmxStoreColors(), dmxSyncCallback(), dmxTrapezoids(), dmxTriangles(), dmxTryComputeScreenOrigins(), dmxUnrealizeCursor(), dmxUnrealizeFont(), dmxUnrealizeWindow(), dmxUpdateScreenResources(), dmxValidatePicture(), and dmxWindowExposures().
Bool dmxSubdividePrimitives = TRUE |
True if using the
primitive subdivision optimization
Referenced by ddxProcessArgument(), and dmxPutImage().
Bool dmxUseXKB = TRUE |
True if the XKB
extension should be used with the backend servers
Referenced by ddxProcessArgument(), and dmxCommonSaveState().
RESTYPE RRProviderType = 0 |