Cygwin/X: Enable building of nativegdi and primaryfb engines to avoid further rusting

Some trivial build fixes required

Also fill out all function pointers for primaryfb engine

Also tidy up the man page section describing drawing engines.

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
Tested-by: Colin Harrison <colin.harrison@virgin.net>
This commit is contained in:
Jon TURNEY 2009-10-13 14:48:17 +01:00
parent c6aa4755ec
commit 708d0b9781
6 changed files with 45 additions and 9 deletions

View File

@ -1903,8 +1903,8 @@ AM_CONDITIONAL(XWIN_MULTIWINDOW, [test "x$XWIN" = xyes])
AM_CONDITIONAL(XWIN_MULTIWINDOWEXTWM, [test "x$XWIN" = xyes && test "x$WINDOWSWM" = xyes]) AM_CONDITIONAL(XWIN_MULTIWINDOWEXTWM, [test "x$XWIN" = xyes && test "x$WINDOWSWM" = xyes])
AM_CONDITIONAL(XWIN_CLIPBOARD, [test "x$XWIN" = xyes]) AM_CONDITIONAL(XWIN_CLIPBOARD, [test "x$XWIN" = xyes])
AM_CONDITIONAL(XWIN_GLX_WINDOWS, [test "x$XWIN" = xyes && false]) AM_CONDITIONAL(XWIN_GLX_WINDOWS, [test "x$XWIN" = xyes && false])
AM_CONDITIONAL(XWIN_NATIVEGDI, [test "x$XWIN" = xyes && false]) AM_CONDITIONAL(XWIN_NATIVEGDI, [test "x$XWIN" = xyes])
AM_CONDITIONAL(XWIN_PRIMARYFB, [test "x$XWIN" = xyes && false]) AM_CONDITIONAL(XWIN_PRIMARYFB, [test "x$XWIN" = xyes])
AM_CONDITIONAL(XWIN_RANDR, [test "x$XWIN" = xyes]) AM_CONDITIONAL(XWIN_RANDR, [test "x$XWIN" = xyes])
AM_CONDITIONAL(XWIN_XV, [test "x$XWIN" = xyes && test "x$XV" = xyes]) AM_CONDITIONAL(XWIN_XV, [test "x$XWIN" = xyes && test "x$XV" = xyes])

View File

@ -755,6 +755,9 @@ winUseMsg (void)
"\t\t1 - Shadow GDI\n" "\t\t1 - Shadow GDI\n"
"\t\t2 - Shadow DirectDraw\n" "\t\t2 - Shadow DirectDraw\n"
"\t\t4 - Shadow DirectDraw4 Non-Locking\n" "\t\t4 - Shadow DirectDraw4 Non-Locking\n"
#ifdef XWIN_PRIMARYFB
"\t\t8 - Primary DirectDraw - obsolete\n"
#endif
#ifdef XWIN_NATIVEGDI #ifdef XWIN_NATIVEGDI
"\t\t16 - Native GDI - experimental\n" "\t\t16 - Native GDI - experimental\n"
#endif #endif

View File

@ -190,15 +190,27 @@ respectively).
.TP 8 .TP 8
.B "\-engine \fIengine_type_id\fP" .B "\-engine \fIengine_type_id\fP"
This option, which is intended for Cygwin/X developers, This option, which is intended for Cygwin/X developers,
overrides the server's automatically selected engine type. This overrides the server's automatically selected drawing engine type. This
parameter will be ignored if the specified engine type is not parameter will be ignored if the specified drawing engine type is not
supported on the current system. The supported engine type ids are 1 supported on the current system.
- Shadow GDI, 2 - Shadow DirectDraw, and 4 - Shadow DirectDraw Non-Locking.
Additionally, there are engines with type ids Default behavior is to select the drawing engine with optimum performance that
8 - Primary DirectDraw (obsolete) and 16 - Native GDI (experimental and barely functional).
Default behavior is to determine the engine with optimum performance that
supports the specified depth and window configuration. supports the specified depth and window configuration.
The engine type ids are:
.RS
.IP 1 4
Shadow GDI
.IP 2 4
Shadow DirectDraw
.IP 4 4
Shadow DirectDraw Non-Locking
.IP 8 4
Primary DirectDraw (unsupported, obsolete)
.IP 16 4
Native GDI (unsupported, experimental and barely functional)
.RE
.SH FULLSCREEN OPTIONS .SH FULLSCREEN OPTIONS
.TP 8 .TP 8
.B "\-depth \fIdepth\fP" .B "\-depth \fIdepth\fP"

View File

@ -315,6 +315,12 @@ typedef Bool (*winFinishCreateWindowsWindowProcPtr)(WindowPtr pWin);
typedef Bool (*winCreateScreenResourcesProc)(ScreenPtr); typedef Bool (*winCreateScreenResourcesProc)(ScreenPtr);
#ifdef XWIN_NATIVEGDI
/* Typedefs for native GDI wrappers */
typedef Bool (*RealizeFontPtr) (ScreenPtr pScreen, FontPtr pFont);
typedef Bool (*UnrealizeFontPtr)(ScreenPtr pScreen, FontPtr pFont);
#endif
/* /*
* GC (graphics context) privates * GC (graphics context) privates
@ -588,6 +594,12 @@ typedef struct _winPrivScreenRec
SetShapeProcPtr SetShape; SetShapeProcPtr SetShape;
winCursorRec cursor; winCursorRec cursor;
#ifdef XWIN_NATIVEGDI
RealizeFontPtr RealizeFont;
UnrealizeFontPtr UnrealizeFont;
#endif
} winPrivScreenRec; } winPrivScreenRec;

View File

@ -666,7 +666,15 @@ winSetEngineFunctionsPrimaryDD (ScreenPtr pScreen)
pScreenPriv->pwinBltExposedRegions pScreenPriv->pwinBltExposedRegions
= (winBltExposedRegionsProcPtr) (void (*)(void))NoopDDA; = (winBltExposedRegionsProcPtr) (void (*)(void))NoopDDA;
pScreenPriv->pwinActivateApp = winActivateAppPrimaryDD; pScreenPriv->pwinActivateApp = winActivateAppPrimaryDD;
pScreenPriv->pwinRedrawScreen = NULL;
pScreenPriv->pwinRealizeInstalledPalette = NULL;
pScreenPriv->pwinInstallColormap = NULL;
pScreenPriv->pwinStoreColors = NULL;
pScreenPriv->pwinCreateColormap = NULL;
pScreenPriv->pwinDestroyColormap = NULL;
pScreenPriv->pwinHotKeyAltTab = winHotKeyAltTabPrimaryDD; pScreenPriv->pwinHotKeyAltTab = winHotKeyAltTabPrimaryDD;
pScreenPriv->pwinCreatePrimarySurface = (winCreatePrimarySurfaceProcPtr) (void (*)(void))NoopDDA;
pScreenPriv->pwinReleasePrimarySurface = (winReleasePrimarySurfaceProcPtr) (void (*)(void))NoopDDA;
#ifdef XWIN_MULTIWINDOW #ifdef XWIN_MULTIWINDOW
pScreenPriv->pwinFinishCreateWindowsWindow = pScreenPriv->pwinFinishCreateWindowsWindow =
(winFinishCreateWindowsWindowProcPtr) (void (*)(void))NoopDDA; (winFinishCreateWindowsWindowProcPtr) (void (*)(void))NoopDDA;

View File

@ -58,6 +58,7 @@ winReshapeRootless (WindowPtr pWin);
Bool Bool
winCreateWindowNativeGDI (WindowPtr pWin) winCreateWindowNativeGDI (WindowPtr pWin)
{ {
Bool fResult = TRUE;
ScreenPtr pScreen = pWin->drawable.pScreen; ScreenPtr pScreen = pWin->drawable.pScreen;
winWindowPriv(pWin); winWindowPriv(pWin);
winScreenPriv(pScreen); winScreenPriv(pScreen);