dmx.h
Go to the documentation of this file.00001 /* $XFree86$ */ 00002 /* 00003 * Copyright 2001-2003 Red Hat Inc., Durham, North Carolina. 00004 * 00005 * All Rights Reserved. 00006 * 00007 * Permission is hereby granted, free of charge, to any person obtaining 00008 * a copy of this software and associated documentation files (the 00009 * "Software"), to deal in the Software without restriction, including 00010 * without limitation on the rights to use, copy, modify, merge, 00011 * publish, distribute, sublicense, and/or sell copies of the Software, 00012 * and to permit persons to whom the Software is furnished to do so, 00013 * subject to the following conditions: 00014 * 00015 * The above copyright notice and this permission notice (including the 00016 * next paragraph) shall be included in all copies or substantial 00017 * portions of the Software. 00018 * 00019 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 00020 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 00021 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 00022 * NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS 00023 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 00024 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 00025 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 00026 * SOFTWARE. 00027 */ 00028 00029 /* 00030 * Authors: 00031 * Kevin E. Martin <kem@redhat.com> 00032 * David H. Dawes <dawes@xfree86.org> 00033 * Rickard E. (Rik) Faith <faith@redhat.com> 00034 * 00035 */ 00036 00051 #ifndef DMX_H 00052 #define DMX_H 00053 00054 #include "gcstruct.h" 00055 00056 /* Handle client-side include files in one place. */ 00057 #include "dmxclient.h" 00058 00059 #include "globals.h" 00060 #include "scrnintstr.h" 00061 00062 #ifdef RENDER 00063 #include "picturestr.h" 00064 #endif 00065 00066 #ifdef GLXEXT 00067 #include <GL/glx.h> 00068 #include <GL/glxint.h> 00069 #endif 00070 00071 typedef enum { 00072 PosNone = -1, 00073 PosAbsolute = 0, 00074 PosRightOf, 00075 PosLeftOf, 00076 PosAbove, 00077 PosBelow, 00078 PosRelative 00079 } PositionType; 00080 00083 typedef struct _DMXInputInfo DMXInputInfo; 00084 00087 typedef struct _DMXStatInfo DMXStatInfo; 00088 00090 typedef struct _DMXScreenInfo { 00091 const char *name; 00092 int index; 00094 /*---------- Back-end X server information ----------*/ 00095 00096 Display *beDisplay; 00097 int beWidth; 00098 int beHeight; 00099 int beDepth; 00100 int beBPP; 00101 int beXDPI; 00102 int beYDPI; 00104 int beNumDepths; 00105 int *beDepths; 00107 int beNumPixmapFormats; 00108 XPixmapFormatValues *bePixmapFormats; 00110 int beNumVisuals; 00111 XVisualInfo *beVisuals; 00112 int beDefVisualIndex; 00114 int beNumDefColormaps; 00115 Colormap *beDefColormaps; 00117 Pixel beBlackPixel; 00118 Pixel beWhitePixel; 00120 /*---------- Screen window information ----------*/ 00121 00122 Window scrnWin; 00123 int scrnX; 00124 int scrnY; 00125 int scrnWidth; 00126 int scrnHeight; 00127 int scrnXSign; 00128 int scrnYSign; 00131 Drawable scrnDefDrawables[MAXFORMATS]; 00132 00133 struct _DMXScreenInfo *next; 00134 struct _DMXScreenInfo *over; 00136 /*---------- Root window information ----------*/ 00137 00138 Window rootWin; 00139 int rootX; 00140 int rootY; 00141 int rootWidth; 00142 int rootHeight; 00144 int rootXOrigin; 00145 int rootYOrigin; 00147 /*---------- Shadow framebuffer information ----------*/ 00148 00149 void *shadow; 00150 XlibGC shadowGC; 00151 XImage *shadowFBImage; 00153 /*---------- Other related information ----------*/ 00154 00155 int shared; 00157 Bool WMRunningOnBE; 00158 00159 Cursor noCursor; 00160 Cursor curCursor; 00161 /* Support for cursors on overlapped 00162 * backend displays. */ 00163 CursorPtr cursor; 00164 int cursorVisible; 00165 int cursorNotShared; /* for overlapping screens on a backend */ 00166 00167 PositionType where; 00168 int whereX; 00169 int whereY; 00170 int whereRefScreen; 00172 int savedTimeout; 00173 int dpmsCapable; 00174 int dpmsEnabled; 00175 int dpmsStandby; 00176 int dpmsSuspend; 00177 int dpmsOff; 00179 DMXStatInfo *stat; 00180 Bool needsSync; 00182 #ifdef GLXEXT 00183 00184 int numGlxVisuals; 00185 __GLXvisualConfig *glxVisuals; 00186 int glxMajorOpcode; 00187 int glxErrorBase; 00188 00190 __GLXFBConfig *fbconfigs; 00191 int numFBConfigs; 00192 #endif 00193 00196 CloseScreenProcPtr CloseScreen; 00197 SaveScreenProcPtr SaveScreen; 00198 00199 CreateGCProcPtr CreateGC; 00200 00201 CreateWindowProcPtr CreateWindow; 00202 DestroyWindowProcPtr DestroyWindow; 00203 PositionWindowProcPtr PositionWindow; 00204 ChangeWindowAttributesProcPtr ChangeWindowAttributes; 00205 RealizeWindowProcPtr RealizeWindow; 00206 UnrealizeWindowProcPtr UnrealizeWindow; 00207 RestackWindowProcPtr RestackWindow; 00208 WindowExposuresProcPtr WindowExposures; 00209 PaintWindowBackgroundProcPtr PaintWindowBackground; 00210 PaintWindowBorderProcPtr PaintWindowBorder; 00211 CopyWindowProcPtr CopyWindow; 00212 00213 ResizeWindowProcPtr ResizeWindow; 00214 ReparentWindowProcPtr ReparentWindow; 00215 00216 ChangeBorderWidthProcPtr ChangeBorderWidth; 00217 00218 GetImageProcPtr GetImage; 00219 GetSpansProcPtr GetSpans; 00220 00221 CreatePixmapProcPtr CreatePixmap; 00222 DestroyPixmapProcPtr DestroyPixmap; 00223 BitmapToRegionProcPtr BitmapToRegion; 00224 00225 RealizeFontProcPtr RealizeFont; 00226 UnrealizeFontProcPtr UnrealizeFont; 00227 00228 CreateColormapProcPtr CreateColormap; 00229 DestroyColormapProcPtr DestroyColormap; 00230 InstallColormapProcPtr InstallColormap; 00231 StoreColorsProcPtr StoreColors; 00232 00233 #ifdef SHAPE 00234 SetShapeProcPtr SetShape; 00235 #endif 00236 00237 #ifdef RENDER 00238 CreatePictureProcPtr CreatePicture; 00239 DestroyPictureProcPtr DestroyPicture; 00240 ChangePictureClipProcPtr ChangePictureClip; 00241 DestroyPictureClipProcPtr DestroyPictureClip; 00242 00243 ChangePictureProcPtr ChangePicture; 00244 ValidatePictureProcPtr ValidatePicture; 00245 00246 CompositeProcPtr Composite; 00247 GlyphsProcPtr Glyphs; 00248 CompositeRectsProcPtr CompositeRects; 00249 00250 InitIndexedProcPtr InitIndexed; 00251 CloseIndexedProcPtr CloseIndexed; 00252 UpdateIndexedProcPtr UpdateIndexed; 00253 00254 TrapezoidsProcPtr Trapezoids; 00255 TrianglesProcPtr Triangles; 00256 TriStripProcPtr TriStrip; 00257 TriFanProcPtr TriFan; 00258 #endif 00259 } DMXScreenInfo; 00260 00261 /* Global variables available to all Xserver/hw/dmx routines. */ 00262 extern int dmxNumScreens; 00263 extern DMXScreenInfo *dmxScreens; 00264 extern int dmxShadowFB; 00267 extern XErrorEvent dmxLastErrorEvent; 00269 extern Bool dmxErrorOccurred; 00271 extern Bool dmxOffScreenOpt; 00274 extern Bool dmxSubdividePrimitives; 00277 extern Bool dmxLazyWindowCreation; 00280 extern Bool dmxUseXKB; 00284 extern int dmxDepth; 00286 extern Bool dmxNoRender; 00289 #ifdef GLXEXT 00290 extern Bool dmxGLXProxy; 00292 extern Bool dmxGLXSwapGroupSupport; 00296 extern Bool dmxGLXSyncSwap; 00300 extern Bool dmxGLXFinishSwap; 00305 #endif 00306 extern char *dmxFontPath; 00315 extern Bool dmxIgnoreBadFontPaths; 00319 extern Bool dmxAddRemoveScreens; 00324 #define DMX_WRAP(_entry, _newfunc, _saved, _actual) \ 00325 do { \ 00326 (_saved)->_entry = (_actual)->_entry; \ 00327 (_actual)->_entry = (_newfunc); \ 00328 } while (0) 00329 00331 #define DMX_UNWRAP(_entry, _saved, _actual) \ 00332 do { \ 00333 (_actual)->_entry = (_saved)->_entry; \ 00334 } while (0) 00335 00336 #endif /* DMX_H */
Generated June 29, 2004 for Distributed Multihead X by doxygen 1.3.4.