head 1.2; access; symbols netbsd-7-2-RELEASE:1.1.1.3 netbsd-7-1-2-RELEASE:1.1.1.3 netbsd-7-1-1-RELEASE:1.1.1.3 netbsd-7-1:1.1.1.3.0.14 netbsd-7-1-RELEASE:1.1.1.3 netbsd-7-1-RC2:1.1.1.3 netbsd-7-1-RC1:1.1.1.3 netbsd-7-0-2-RELEASE:1.1.1.3 netbsd-7-0-1-RELEASE:1.1.1.3 netbsd-7-0:1.1.1.3.0.12 netbsd-7-0-RELEASE:1.1.1.3 netbsd-7-0-RC3:1.1.1.3 netbsd-7-0-RC2:1.1.1.3 netbsd-7-0-RC1:1.1.1.3 netbsd-5-2-3-RELEASE:1.1.1.1 netbsd-5-1-5-RELEASE:1.1.1.1 netbsd-6-0-6-RELEASE:1.1.1.3 netbsd-6-1-5-RELEASE:1.1.1.3 netbsd-7:1.1.1.3.0.10 netbsd-7-base:1.1.1.3 netbsd-6-1-4-RELEASE:1.1.1.3 netbsd-6-0-5-RELEASE:1.1.1.3 riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.1.1.3 riastradh-drm2:1.1.1.3.0.8 riastradh-drm2-base:1.1.1.3 netbsd-6-1-3-RELEASE:1.1.1.3 netbsd-6-0-4-RELEASE:1.1.1.3 netbsd-5-2-2-RELEASE:1.1.1.1 netbsd-5-1-4-RELEASE:1.1.1.1 netbsd-6-1-2-RELEASE:1.1.1.3 netbsd-6-0-3-RELEASE:1.1.1.3 netbsd-5-2-1-RELEASE:1.1.1.1 netbsd-5-1-3-RELEASE:1.1.1.1 netbsd-6-1-1-RELEASE:1.1.1.3 xorg-server-1-10-6:1.1.1.3 netbsd-6-1:1.1.1.3.0.6 netbsd-6-0-2-RELEASE:1.1.1.3 netbsd-6-1-RELEASE:1.1.1.3 netbsd-6-1-RC4:1.1.1.3 netbsd-6-1-RC3:1.1.1.3 netbsd-6-1-RC2:1.1.1.3 netbsd-6-1-RC1:1.1.1.3 netbsd-5-2:1.1.1.1.0.8 netbsd-6-0-1-RELEASE:1.1.1.3 netbsd-5-2-RELEASE:1.1.1.1 netbsd-5-2-RC1:1.1.1.1 netbsd-6-0:1.1.1.3.0.4 netbsd-6-0-RELEASE:1.1.1.3 netbsd-6-0-RC2:1.1.1.3 netbsd-6-0-RC1:1.1.1.3 netbsd-6:1.1.1.3.0.2 netbsd-6-base:1.1.1.3 netbsd-5-1-2-RELEASE:1.1.1.1 netbsd-5-1-1-RELEASE:1.1.1.1 xorg-server-1-10-3:1.1.1.3 mrg-xorg-server-1-9-5-pre-1-10-3:1.1.1.2 xorg-server-1-9-5:1.1.1.2 xorg-server-1-9-2:1.1.1.2 netbsd-5-1:1.1.1.1.0.6 netbsd-5-1-RELEASE:1.1.1.1 netbsd-5-1-RC4:1.1.1.1 netbsd-5-1-RC3:1.1.1.1 netbsd-5-1-RC2:1.1.1.1 netbsd-5-1-RC1:1.1.1.1 netbsd-5-0-2-RELEASE:1.1.1.1 xorg-server-1-6-5:1.1.1.1 xorg-server-1-6-3:1.1.1.1 netbsd-5-0-1-RELEASE:1.1.1.1 xorg-server-1-6-2:1.1.1.1 xorg-server-1-6-1-901:1.1.1.1 netbsd-5-0:1.1.1.1.0.4 netbsd-5-0-RELEASE:1.1.1.1 netbsd-5-0-RC4:1.1.1.1 netbsd-5-0-RC3:1.1.1.1 netbsd-5-0-RC2:1.1.1.1 netbsd-5-0-RC1:1.1.1.1 netbsd-5:1.1.1.1.0.2 netbsd-5-base:1.1.1.1 xorg-server-1-4-2:1.1.1.1 xorg:1.1.1; locks; strict; comment @# @; 1.2 date 2016.08.11.00.04.28; author mrg; state dead; branches; next 1.1; commitid FQxwnZNPy5ZgOOhz; 1.1 date 2008.07.31.19.50.30; author mrg; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2008.07.31.19.50.30; author mrg; state Exp; branches; next 1.1.1.2; 1.1.1.2 date 2010.11.23.05.21.16; author mrg; state Exp; branches; next 1.1.1.3; 1.1.1.3 date 2011.08.02.06.56.50; author mrg; state Exp; branches; next ; desc @@ 1.2 log @first merge of netbsd changes. not tested yet. @ text @ File Index
Main Page | Alphabetical List | Data Structures | File List | Data Fields | Globals

dmxextension.c File Reference

#include "dmx.h"
#include "dmxinit.h"
#include "dmxextension.h"
#include "dmxwindow.h"
#include "dmxcb.h"
#include "dmxcursor.h"
#include "dmxpixmap.h"
#include "dmxgc.h"
#include "dmxfont.h"
#include "dmxcmap.h"
#include "dmxpict.h"
#include "dmxinput.h"
#include "dmxsync.h"
#include "dmxscrinit.h"
#include "input/dmxinputinit.h"
#include "windowstr.h"
#include "inputstr.h"
#include "dmxproto.h"
#include "cursorstr.h"

Functions

Bool dmxGetScreenAttributes (int physical, DMXScreenAttributesPtr attr)
Bool dmxGetWindowAttributes (WindowPtr pWindow, DMXWindowAttributesPtr attr)
int dmxGetInputCount (void)
int dmxGetInputAttributes (int deviceId, DMXInputAttributesPtr attr)
int dmxAddInput (DMXInputAttributesPtr attr, int *id)
int dmxRemoveInput (int id)
unsigned long dmxGetNumScreens (void)
void dmxForceWindowCreation (WindowPtr pWindow)
void dmxFlushPendingSyncs (void)
int dmxAttachScreen (int idx, DMXScreenAttributesPtr attr)
int dmxDetachScreen (int idx)

Detailed Description

This file provides the only interface to the X server extension support in programs/Xserver/Xext. Those programs should only include dmxext.h

Function Documentation

int dmxAddInput DMXInputAttributesPtr  attr,
int *  id
 

Add an input with the specified attributes. If the input is added, the physical id is returned in deviceId.

int dmxAttachScreen int  idx,
DMXScreenAttributesPtr  attr
 

Reattach previously detached back-end screen.

int dmxDetachScreen int  idx  ) 
 

Detach back-end screen.

void dmxFlushPendingSyncs void   ) 
 

Flush pending syncs for all screens.

void dmxForceWindowCreation WindowPtr  pWindow  ) 
 

Make sure that dmxCreateAndRealizeWindow has been called for pWindow.

int dmxGetInputAttributes int  deviceId,
DMXInputAttributesPtr  attr
 

Return information about the device with id = deviceId. This information is primarily for the ProcDMXGetInputAttributes() function, which does not have access to the appropriate data structure.

int dmxGetInputCount void   ) 
 

Return the total number of devices, not just dmxNumInputs. The number returned should be the same as that returned by XListInputDevices.

unsigned long dmxGetNumScreens void   ) 
 

Return the value of dmxNumScreens -- the total number of backend screens in use (these are logical screens and may be larger than the number of backend displays).

Bool dmxGetScreenAttributes int  physical,
DMXScreenAttributesPtr  attr
 

This routine provides information to the DMX protocol extension about a particular screen.

Bool dmxGetWindowAttributes WindowPtr  pWindow,
DMXWindowAttributesPtr  attr
 

This routine provides information to the DMX protocol extension about a particular window.

int dmxRemoveInput int  id  ) 
 

Remove the input with physical id id.


Generated June 29, 2004 for Distributed Multihead X by doxygen 1.3.4. @ 1.1 log @Initial revision @ text @@ 1.1.1.1 log @initial import of xorg-server-1.4.2 @ text @@ 1.1.1.2 log @import xorg-server 1.9.2. important changes since 1.6.5 include: - built-in symbol visibility, default not export - fixes for various crashes - many fixes for XI2, EXA, dix, render, glx, xkb, EDID, randr, Xv, resource handling, Xext, vfb, xfree86 / vga and composite support. - fixes several memory leaks - many many documentation updates - record extension enabled - no longer looks for XF86Config files @ text @d9 37 a45 105

dmxextension.c File Reference

#include <stdlib.h>
#include "dmx.h"
#include "dmxinit.h"
#include "dmxextension.h"
#include "dmxwindow.h"
#include "dmxcb.h"
#include "dmxcursor.h"
#include "dmxpixmap.h"
#include "dmxgc.h"
#include "dmxfont.h"
#include "dmxcmap.h"
#include "dmxpict.h"
#include "dmxinput.h"
#include "dmxsync.h"
#include "dmxscrinit.h"
#include "input/dmxinputinit.h"
#include "windowstr.h"
#include "inputstr.h"
#include <X11/extensions/dmxproto.h>
#include "cursorstr.h"

Functions

Bool dmxGetScreenAttributes (int physical, DMXScreenAttributesPtr attr)
Bool dmxGetWindowAttributes (WindowPtr pWindow, DMXWindowAttributesPtr attr)
void dmxGetDesktopAttributes (DMXDesktopAttributesPtr attr)
int dmxGetInputCount (void)
int dmxGetInputAttributes (int deviceId, DMXInputAttributesPtr attr)
static void dmxAdjustCursorBoundaries (void)
int dmxAddInput (DMXInputAttributesPtr attr, int *id)
int dmxRemoveInput (int id)
unsigned long dmxGetNumScreens (void)
void dmxForceWindowCreation (WindowPtr pWindow)
void dmxFlushPendingSyncs (void)
void dmxUpdateScreenResources (ScreenPtr pScreen, int x, int y, int w, int h)
static void dmxBECreateScratchGCs (int scrnNum)
static void dmxBERestorePixmap (PixmapPtr pPixmap)
static void dmxBECreateResources (pointer value, XID id, RESTYPE type, pointer n)
static void dmxBECreateWindowTree (int idx)
static void dmxForceExposures (int idx)
static Bool dmxCompareScreens (DMXScreenInfo *new, DMXScreenInfo *old)
static void dmxBERestoreRenderPict (pointer value, XID id, pointer n)
static void dmxBERestoreRenderGlyph (pointer value, XID id, pointer n)
int dmxAttachScreen (int idx, DMXScreenAttributesPtr attr)
static void dmxBESavePixmap (PixmapPtr pPixmap)
static void dmxBEDestroyResources (pointer value, XID id, RESTYPE type, pointer n)
static void dmxBEDestroyScratchGCs (int scrnNum)
static void dmxBEDestroyWindowTree (int idx)
int dmxDetachScreen (int idx)

Variables

FontPtr defaultFont

Detailed Description

This file provides the only interface to the X server extension support in programs/Xserver/Xext. Those programs should only include dmxext.h


Function Documentation

int dmxAddInput ( DMXInputAttributesPtr  attr,
int *  id 
)

Add an input with the specified attributes. If the input is added, the physical id is returned in deviceId.

d47 1 a47 1

References dmxAdjustCursorBoundaries(), dmxInputAttachBackend(), dmxInputAttachConsole(), dmxSync(), DMXInputAttributesRec::inputType, DMXInputAttributesRec::name, DMXInputAttributesRec::physicalScreen, and DMXInputAttributesRec::sendsCore.

d49 1 a49 1

Referenced by ProcDMXAddInput().

d51 1 a51 18
static void dmxAdjustCursorBoundaries ( void   )  [static]

Create resources on the back-end server. This function is called from dmxAttachScreen() via the dix layer's FindAllResources function. It walks all resources, compares them to the screen number passed in as n and calls the appropriate DMX function to create the associated resource on the back-end server.

References defaultFont, dmxBECreateColormap(), dmxBECreateCursor(), dmxBECreateGC(), dmxBECreatePixmap(), dmxBEFreeGlyphSet(), dmxBELoadFont(), dmxBERestorePixmap(), and dmxChangeGC().

a118 16

Referenced by dmxAttachScreen().

d120 26 a145 21

Create the scratch GCs per depth.

References dmxBECreateGC().

Referenced by dmxAttachScreen().

static void dmxBECreateScratchGCs ( int  scrnNum  )  [static]
a146 6
static void dmxBECreateWindowTree ( int  idx  )  [static]

Create window hierachy on back-end server. The window tree is created in a special order (bottom most subwindow first) so that the dmxCreateNonRootWindow() function does not need to recursively call itself to create each window's parents. This is required so that we have the opportunity to create each window's border and background pixmaps (where appropriate) before the window is created.

References _DMXScreenInfo::beDisplay, _dmxWinPriv::cmap, DMX_GET_WINDOW_PRIV, dmxBECreatePixmap(), dmxBERestorePixmap(), dmxCreateAndRealizeWindow(), dmxCreateRootWindow(), dmxGetDefaultWindowAttributes(), dmxScreens, _dmxWinPriv::mapped, _dmxWinPriv::offscreen, _DMXScreenInfo::rootWin, _dmxWinPriv::visual, and _dmxWinPriv::window.

a147 37

Referenced by dmxAttachScreen().

d149 26 a174 21

Destroy resources on the back-end server. This function is called from dmxDetachScreen() via the dix layer's FindAllResources function. It walks all resources, compares them to the screen number passed in as n and calls the appropriate DMX function to free the associated resource on the back-end server.

References dmxBEFreeColormap(), dmxBEFreeCursor(), dmxBEFreeFont(), dmxBEFreeGC(), dmxBEFreeGlyphSet(), dmxBEFreePicture(), dmxBEFreePixmap(), and dmxBESavePixmap().

Referenced by dmxDetachScreen().

static void dmxBEDestroyResources ( pointer  value,
XID  id,
RESTYPE  type,
pointer  n 
) [static]
a175 6
static void dmxBEDestroyScratchGCs ( int  scrnNum  )  [static]

Destroy the scratch GCs that are created per depth.

References dmxBEFreeGC().

a176 16

Referenced by dmxDetachScreen().

d178 26 a203 21

Destroy window hierachy on back-end server. To ensure that all XDestroyWindow() calls succeed, they must be performed in a bottom up order so that windows are not destroyed before their children. XDestroyWindow(), which is called from dmxBEDestroyWindow(), will destroy a window as well as all of it's children.

References dmxBEDestroyWindow(), dmxBEFreePixmap(), and dmxBESavePixmap().

Referenced by dmxDetachScreen().

static void dmxBEDestroyWindowTree ( int  idx  )  [static]
a204 4
static void dmxBERestorePixmap ( PixmapPtr  pPixmap  )  [static]
d207 19 a225 14
static void dmxBERestoreRenderGlyph ( pointer  value,
XID  id,
pointer  n 
) [static]
d227 4 a230 4 a232 1 a233 5 d235 2 a236 2 d240 2 a241 2 a242 8
static void dmxBERestoreRenderPict ( pointer  value, XID  id,
pointer  n ) [static]

Restore Render's picture

References dmxBECreatePicture(), dmxBECreatePixmap(), and dmxBERestorePixmap().

Referenced by dmxAttachScreen().

a243 14
d245 26 a270 25

Save the pixmap image only when there is not another screen with that pixmap from which the image can be read when the screen is reattached. To do this, we first try to find a pixmap on another screen corresponding to the one we are trying to save. If we find one, then we do not need to save the image data since during reattachment, the image data can be read from that other pixmap. However, if we do not find one, then we need to save the image data. The common case for these are for the default stipple and root tile.

References _DMXScreenInfo::beDisplay, _dmxPixPriv::detachedImage, DMX_GET_PIXMAP_PRIV, dmxLog(), dmxScreens, dmxWarning, and _dmxPixPriv::pixmap.

Referenced by dmxBEDestroyResources(), dmxBEDestroyWindowTree(), and dmxDetachScreen().

static void dmxBESavePixmap ( PixmapPtr  pPixmap  )  [static]
a271 11
static Bool dmxCompareScreens ( DMXScreenInfo new,
DMXScreenInfo old 
) [static]
d274 26 a299 21
int dmxDetachScreen ( int  idx  ) 
a300 8
void dmxFlushPendingSyncs ( void   ) 

Flush pending syncs for all screens.

References dmxSync().

Referenced by ProcDMXForceWindowCreation(), ProcDMXGetWindowAttributes(), and ProcDMXSync().

a301 14
d303 19 a321 11

Referenced by dmxAttachScreen().

static void dmxForceExposures ( int  idx  )  [static]
d323 4 a326 6 a327 15
void dmxForceWindowCreation ( WindowPtr  pWindow  ) 

Make sure that dmxCreateAndRealizeWindow has been called for pWindow.

References DMX_GET_WINDOW_PRIV, dmxCreateAndRealizeWindow(), and _dmxWinPriv::window.

Referenced by ProcDMXForceWindowCreation().

d341 19 a359 14

Return the total number of devices, not just dmxNumInputs. The number returned should be the same as that returned by XListInputDevices.

References dmxInputs, and dmxNumInputs.

Referenced by dmxInputLogDevices(), and ProcDMXGetInputCount().

int dmxGetInputCount ( void   ) 
d361 4 a364 6 a365 15
unsigned long dmxGetNumScreens ( void   ) 

Return the value of dmxNumScreens -- the total number of backend screens in use (these are logical screens and may be larger than the number of backend displays).

References dmxNumScreens.

Referenced by ProcDMXGetScreenAttributes(), and ProcDMXGetScreenCount().

d369 2 a370 2 d374 2 a375 2 a376 4
Bool dmxGetWindowAttributes ( WindowPtr  pWindow,
DMXWindowAttributesPtr  attr )

This routine provides information to the DMX protocol extension about a particular window.

a377 18

References DMX_GET_WINDOW_PRIV, _dmxWinPriv::offscreen, DMXWindowAttributesRec::pos, DMXWindowAttributesRec::screen, DMXWindowAttributesRec::vis, _dmxWinPriv::window, and DMXWindowAttributesRec::window.

Referenced by dmxPopulate().

d379 26 a404 48

Remove the input with physical id id.

References dmxInputDetachId().

Referenced by ProcDMXRemoveInput().

int dmxRemoveInput ( int  id  ) 
a405 8
void dmxUpdateScreenResources ( ScreenPtr  pScreen,
int  x,
int  y,
int  w,
int  h 
)

Update DMX's screen resources to match those of the newly moved and/or resized "root" window.

References _DMXScreenInfo::beXDPI, _DMXScreenInfo::beYDPI, and dmxScreens.

Referenced by dmxCreateWindow().

a406 10

Variable Documentation

d408 14 a421 8 @ 1.1.1.3 log @initial import of xorg-server 1.10.3. highlights include: - fixes xorg bugs 29969, 30367, 30527, 30267, 30260, 29046, 30260, 31548, 28672, 24887, 32115, 21457, 32436, 21827, 28414, 24703, 32803, 16318, 33449, 33324, 33929, 35082, 35209, 36146, 36119 - many additional NULL checks - adjustments related to input ABI 12 - *lots* of dead code removal - vga arbitrator fixes - GL fixes - EDID fixes - conversion to using asprintf() in many places - many fixes from valgrind, compiler warnings see these for more details: http://lists.freedesktop.org/archives/xorg-announce/2011-February/001612.html http://lists.freedesktop.org/archives/xorg-announce/2011-April/001646.html http://lists.freedesktop.org/archives/xorg-announce/2011-May/001675.html http://lists.freedesktop.org/archives/xorg-announce/2011-July/001710.html @ text @d9 3 a11 2
FontPtr defaultFont
d56 26 a81 26 d84 1 a84 1 d86 3 a88 3

Detailed Description

This file provides the only interface to the X server extension support in programs/Xserver/Xext. Those programs should only include dmxext.h


Function Documentation

d96 2 a97 2 d102 2 a103 2 d108 1 a108 1 d128 3 a130 2 d151 2 a152 2 d157 2 a158 2 d163 1 a163 1 d183 2 a184 2 d189 2 a190 2 d195 2 a196 2 d201 2 a202 2 d207 1 a207 1 d227 3 a229 2 d250 3 a252 2 d273 2 a274 2 d279 2 a280 2 d285 2 a286 2 d291 2 a292 2 d297 1 a297 1 d317 3 a319 2 d340 3 a342 2 d363 3 a365 2 d386 2 a387 2 d392 2 a393 2 d398 2 a399 2 d404 1 a404 1 d424 2 a425 2 d430 2 a431 2 d436 2 a437 2 d442 1 a442 1 d462 3 a464 2 d485 2 a486 2 d491 2 a492 2 d497 1 a497 1 d517 3 a519 2 d540 3 a542 2 d563 3 a565 2 d583 3 a585 2 d606 3 a608 2 d628 2 a629 2 d634 2 a635 2 d640 1 a640 1 d660 3 a662 2 d683 3 a685 2 d706 2 a707 2 d712 2 a713 2 d718 1 a718 1 d738 2 a739 2 d744 2 a745 2 d750 1 a750 1 d770 3 a772 2 d793 2 a794 2 d799 2 a800 2 d805 2 a806 2 d811 2 a812 2 d817 2 a818 2 d823 1 a823 1 a852 4
Bool dmxGetScreenAttributes (int physical, DMXScreenAttributesPtr attr)
Bool dmxGetWindowAttributes (WindowPtr pWindow, DMXWindowAttributesPtr attr)
void dmxGetDesktopAttributes (DMXDesktopAttributesPtr attr)
int dmxGetInputCount (void)
int dmxGetInputAttributes (int deviceId, DMXInputAttributesPtr attr)
static void dmxAdjustCursorBoundaries (void)
int dmxAddInput (DMXInputAttributesPtr attr, int *id)
int dmxRemoveInput (int id)
unsigned long dmxGetNumScreens (void)
void dmxForceWindowCreation (WindowPtr pWindow)
void dmxFlushPendingSyncs (void)
void dmxUpdateScreenResources (ScreenPtr pScreen, int x, int y, int w, int h)
static void dmxBECreateScratchGCs (int scrnNum)
static void dmxBERestorePixmap (PixmapPtr pPixmap)
static void dmxBECreateResources (pointer value, XID id, RESTYPE type, pointer n)
static void dmxBECreateWindowTree (int idx)
static void dmxForceExposures (int idx)
static Bool dmxCompareScreens (DMXScreenInfo *new, DMXScreenInfo *old)
static void dmxBERestoreRenderPict (pointer value, XID id, pointer n)
static void dmxBERestoreRenderGlyph (pointer value, XID id, pointer n)
int dmxAttachScreen (int idx, DMXScreenAttributesPtr attr)
static void dmxBESavePixmap (PixmapPtr pPixmap)
static void dmxBEDestroyResources (pointer value, XID id, RESTYPE type, pointer n)
static void dmxBEDestroyScratchGCs (int scrnNum)
static void dmxBEDestroyWindowTree (int idx)
int dmxDetachScreen (int idx)
FontPtr defaultFont
DMXInputAttributesPtr  attr, int *  id void  )int  idx, DMXScreenAttributesPtr  attr pointer  value, XID  id, RESTYPE  type, pointer  n  [static]int  scrnNum)int  idx)pointer  value, XID  id, RESTYPE  type, pointer  n  [static]int  scrnNum)int  idx)PixmapPtr  pPixmap)pointer  value, XID  id, pointer  n  [static]pointer  value, XID  id, pointer  n  [static]PixmapPtr  pPixmap)DMXScreenInfo new, DMXScreenInfo old  [static]int  idx)void  )int  idx)WindowPtr  pWindow)DMXDesktopAttributesPtr  attr)int  deviceId, DMXInputAttributesPtr  attr void  )void  )int  physical, DMXScreenAttributesPtr  attr WindowPtr  pWindow, DMXWindowAttributesPtr  attr int  id)ScreenPtr  pScreen, int  x, int  y, int  w, int  h