configure.ac | 2 - src/Makefile.am | 2 + src/compat-api.h | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/dummy.h | 10 ++++- src/dummy_cursor.c | 4 +- src/dummy_dga.c | 10 ++--- src/dummy_driver.c | 61 ++++++++++++++++---------------- 7 files changed, 150 insertions(+), 40 deletions(-)
New commits: commit fee6b520a620eed80e22840b8149abc50815f771 Author: Dave Airlie <[email protected]> Date: Wed Jul 18 19:39:32 2012 +1000 dummy: bump to 0.3.6 for release Signed-off-by: Dave Airlie <[email protected]> diff --git a/configure.ac b/configure.ac index 6861485..c74f3a0 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-video-dummy], - [0.3.5], + [0.3.6], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-video-dummy]) AC_CONFIG_SRCDIR([Makefile.am]) commit 1491470ee0745bf8303fa085bd30f7464098f1f2 Author: Dave Airlie <[email protected]> Date: Tue Jun 5 11:14:37 2012 +0100 dummy: convert to the new server APIs. Signed-off-by: Dave Airlie <[email protected]> diff --git a/src/compat-api.h b/src/compat-api.h index 1bb7724..b74a582 100644 --- a/src/compat-api.h +++ b/src/compat-api.h @@ -38,4 +38,64 @@ #define xf86ScrnToScreen(s) screenInfo.screens[(s)->scrnIndex] #endif +#ifndef XF86_SCRN_INTERFACE + +#define SCRN_ARG_TYPE int +#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = xf86Screens[(arg1)] + +#define SCREEN_ARG_TYPE int +#define SCREEN_PTR(arg1) ScreenPtr pScreen = screenInfo.screens[(arg1)] + +#define SCREEN_INIT_ARGS_DECL int i, ScreenPtr pScreen, int argc, char **argv + +#define BLOCKHANDLER_ARGS_DECL int arg, pointer blockData, pointer pTimeout, pointer pReadmask +#define BLOCKHANDLER_ARGS arg, blockData, pTimeout, pReadmask + +#define CLOSE_SCREEN_ARGS_DECL int scrnIndex, ScreenPtr pScreen +#define CLOSE_SCREEN_ARGS scrnIndex, pScreen + +#define ADJUST_FRAME_ARGS_DECL int arg, int x, int y, int flags +#define ADJUST_FRAME_ARGS(arg, x, y) (arg)->scrnIndex, x, y, 0 + +#define SWITCH_MODE_ARGS_DECL int arg, DisplayModePtr mode, int flags +#define SWITCH_MODE_ARGS(arg, m) (arg)->scrnIndex, m, 0 + +#define FREE_SCREEN_ARGS_DECL int arg, int flags +#define FREE_SCREEN_ARGS(x) (x)->scrnIndex, 0 + +#define VT_FUNC_ARGS_DECL int arg, int flags +#define VT_FUNC_ARGS(flags) pScrn->scrnIndex, (flags) + +#define XF86_ENABLEDISABLEFB_ARG(x) ((x)->scrnIndex) +#else +#define SCRN_ARG_TYPE ScrnInfoPtr +#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = (arg1) + +#define SCREEN_ARG_TYPE ScreenPtr +#define SCREEN_PTR(arg1) ScreenPtr pScreen = (arg1) + +#define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv + +#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask +#define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask + +#define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen +#define CLOSE_SCREEN_ARGS pScreen + +#define ADJUST_FRAME_ARGS_DECL ScrnInfoPtr arg, int x, int y +#define ADJUST_FRAME_ARGS(arg, x, y) arg, x, y + +#define SWITCH_MODE_ARGS_DECL ScrnInfoPtr arg, DisplayModePtr mode +#define SWITCH_MODE_ARGS(arg, m) arg, m + +#define FREE_SCREEN_ARGS_DECL ScrnInfoPtr arg +#define FREE_SCREEN_ARGS(x) (x) + +#define VT_FUNC_ARGS_DECL ScrnInfoPtr arg +#define VT_FUNC_ARGS(flags) pScrn + +#define XF86_ENABLEDISABLEFB_ARG(x) (x) + +#endif + #endif diff --git a/src/dummy.h b/src/dummy.h index 24279a2..c3fdd6e 100644 --- a/src/dummy.h +++ b/src/dummy.h @@ -20,8 +20,8 @@ typedef enum { /* function prototypes */ -extern Bool DUMMYSwitchMode(int scrnIndex, DisplayModePtr mode, int flags); -extern void DUMMYAdjustFrame(int scrnIndex, int x, int y, int flags); +extern Bool DUMMYSwitchMode(SWITCH_MODE_ARGS_DECL); +extern void DUMMYAdjustFrame(ADJUST_FRAME_ARGS_DECL); /* in dummy_cursor.c */ extern Bool DUMMYCursorInit(ScreenPtr pScrn); diff --git a/src/dummy_dga.c b/src/dummy_dga.c index a35f3c9..d16d09f 100644 --- a/src/dummy_dga.c +++ b/src/dummy_dga.c @@ -116,8 +116,8 @@ DUMMY_SetMode( if(!pMode) { /* restore the original mode */ if(pDUMMY->DGAactive) { pScrn->currentMode = DUMMYSavedDGAModes[index]; - DUMMYSwitchMode(index, pScrn->currentMode, 0); - DUMMYAdjustFrame(index, 0, 0, 0); + DUMMYSwitchMode(SWITCH_MODE_ARGS(pScrn, pScrn->currentMode)); + DUMMYAdjustFrame(ADJUST_FRAME_ARGS(pScrn, 0, 0)); pDUMMY->DGAactive = FALSE; } } else { @@ -126,7 +126,7 @@ DUMMY_SetMode( pDUMMY->DGAactive = TRUE; } - DUMMYSwitchMode(index, pMode->mode, 0); + DUMMYSwitchMode(SWITCH_MODE_ARGS(pScrn, pMode->mode)); } return TRUE; @@ -149,7 +149,7 @@ DUMMY_SetViewport( ){ DUMMYPtr pDUMMY = DUMMYPTR(pScrn); - DUMMYAdjustFrame(pScrn->pScreen->myNum, x, y, flags); + DUMMYAdjustFrame(ADJUST_FRAME_ARGS(pScrn, x, y)); pDUMMY->DGAViewportStatus = 0; } diff --git a/src/dummy_driver.c b/src/dummy_driver.c index f5d1f4c..62066d6 100644 --- a/src/dummy_driver.c +++ b/src/dummy_driver.c @@ -57,14 +57,13 @@ static const OptionInfoRec * DUMMYAvailableOptions(int chipid, int busid); static void DUMMYIdentify(int flags); static Bool DUMMYProbe(DriverPtr drv, int flags); static Bool DUMMYPreInit(ScrnInfoPtr pScrn, int flags); -static Bool DUMMYScreenInit(int Index, ScreenPtr pScreen, int argc, - char **argv); -static Bool DUMMYEnterVT(int scrnIndex, int flags); -static void DUMMYLeaveVT(int scrnIndex, int flags); -static Bool DUMMYCloseScreen(int scrnIndex, ScreenPtr pScreen); +static Bool DUMMYScreenInit(SCREEN_INIT_ARGS_DECL); +static Bool DUMMYEnterVT(VT_FUNC_ARGS_DECL); +static void DUMMYLeaveVT(VT_FUNC_ARGS_DECL); +static Bool DUMMYCloseScreen(CLOSE_SCREEN_ARGS_DECL); static Bool DUMMYCreateWindow(WindowPtr pWin); -static void DUMMYFreeScreen(int scrnIndex, int flags); -static ModeStatus DUMMYValidMode(int scrnIndex, DisplayModePtr mode, +static void DUMMYFreeScreen(FREE_SCREEN_ARGS_DECL); +static ModeStatus DUMMYValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode, Bool verbose, int flags); static Bool DUMMYSaveScreen(ScreenPtr pScreen, int mode); @@ -463,24 +462,24 @@ DUMMYPreInit(ScrnInfoPtr pScrn, int flags) /* Mandatory */ static Bool -DUMMYEnterVT(int scrnIndex, int flags) +DUMMYEnterVT(VT_FUNC_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); /* Should we re-save the text mode on each VT enter? */ if(!dummyModeInit(pScrn, pScrn->currentMode)) return FALSE; - DUMMYAdjustFrame(pScrn->scrnIndex, pScrn->frameX0, pScrn->frameY0, 0); + DUMMYAdjustFrame(ADJUST_FRAME_ARGS(pScrn, pScrn->frameX0, pScrn->frameY0)); return TRUE; } /* Mandatory */ static void -DUMMYLeaveVT(int scrnIndex, int flags) +DUMMYLeaveVT(VT_FUNC_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); dummyRestore(pScrn, TRUE); } @@ -521,7 +520,7 @@ static ScrnInfoPtr DUMMYScrn; /* static-globalize it */ /* Mandatory */ static Bool -DUMMYScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) +DUMMYScreenInit(SCREEN_INIT_ARGS_DECL) { ScrnInfoPtr pScrn; DUMMYPtr dPtr; @@ -547,7 +546,7 @@ DUMMYScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) if (!dummyModeInit(pScrn,pScrn->currentMode)) return FALSE; - DUMMYAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0); + DUMMYAdjustFrame(ADJUST_FRAME_ARGS(pScrn, pScrn->frameX0, pScrn->frameY0)); /* * Reset visual list. @@ -599,7 +598,7 @@ DUMMYScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) #endif if (dPtr->swCursor) - xf86DrvMsg(scrnIndex, X_CONFIG, "Using Software Cursor.\n"); + xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Using Software Cursor.\n"); { @@ -629,7 +628,7 @@ DUMMYScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) if (!dPtr->swCursor) { /* HW cursor functions */ if (!DUMMYCursorInit(pScreen)) { - xf86DrvMsg(scrnIndex, X_ERROR, + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Hardware cursor initialization failed\n"); return FALSE; } @@ -668,20 +667,19 @@ DUMMYScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) /* Mandatory */ Bool -DUMMYSwitchMode(int scrnIndex, DisplayModePtr mode, int flags) +DUMMYSwitchMode(SWITCH_MODE_ARGS_DECL) { - return dummyModeInit(xf86Screens[scrnIndex], mode); + SCRN_INFO_PTR(arg); + return dummyModeInit(pScrn, mode); } /* Mandatory */ void -DUMMYAdjustFrame(int scrnIndex, int x, int y, int flags) +DUMMYAdjustFrame(ADJUST_FRAME_ARGS_DECL) { - ScrnInfoPtr pScrn; + SCRN_INFO_PTR(arg); int Base; - pScrn = xf86Screens[scrnIndex]; - Base = (y * pScrn->displayWidth + x) >> 2; /* Scale Base by the number of bytes per pixel. */ @@ -702,9 +700,9 @@ DUMMYAdjustFrame(int scrnIndex, int x, int y, int flags) /* Mandatory */ static Bool -DUMMYCloseScreen(int scrnIndex, ScreenPtr pScreen) +DUMMYCloseScreen(CLOSE_SCREEN_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); DUMMYPtr dPtr = DUMMYPTR(pScrn); if(pScrn->vtSema){ @@ -717,14 +715,15 @@ DUMMYCloseScreen(int scrnIndex, ScreenPtr pScreen) pScrn->vtSema = FALSE; pScreen->CloseScreen = dPtr->CloseScreen; - return (*pScreen->CloseScreen)(scrnIndex, pScreen); + return (*pScreen->CloseScreen)(CLOSE_SCREEN_ARGS); } /* Optional */ static void -DUMMYFreeScreen(int scrnIndex, int flags) +DUMMYFreeScreen(FREE_SCREEN_ARGS_DECL) { - DUMMYFreeRec(xf86Screens[scrnIndex]); + SCRN_INFO_PTR(arg); + DUMMYFreeRec(pScrn); } static Bool @@ -744,7 +743,7 @@ DUMMYSaveScreen(ScreenPtr pScreen, int mode) /* Optional */ static ModeStatus -DUMMYValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags) +DUMMYValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode, Bool verbose, int flags) { return(MODE_OK); } commit 6ff612955a1a8591bf21f6aa56e7b6ebd8e2db48 Author: Dave Airlie <[email protected]> Date: Wed May 23 11:37:01 2012 +0100 dummy: convert to new scrn conversion APIs. Generated from util/modular/x-driver-screen-scrn-conv.sh Signed-off-by: Dave Airlie <[email protected]> diff --git a/src/dummy_cursor.c b/src/dummy_cursor.c index aa6021f..07a89bf 100644 --- a/src/dummy_cursor.c +++ b/src/dummy_cursor.c @@ -62,7 +62,7 @@ dummyLoadCursorImage(ScrnInfoPtr pScrn, unsigned char *src) static Bool dummyUseHWCursor(ScreenPtr pScr, CursorPtr pCurs) { - DUMMYPtr dPtr = DUMMYPTR(xf86Screens[pScr->myNum]); + DUMMYPtr dPtr = DUMMYPTR(xf86ScreenToScrn(pScr)); return(!dPtr->swCursor); } @@ -77,7 +77,7 @@ dummyRealizeCursor(xf86CursorInfoPtr infoPtr, CursorPtr pCurs) Bool DUMMYCursorInit(ScreenPtr pScreen) { - DUMMYPtr dPtr = DUMMYPTR(xf86Screens[pScreen->myNum]); + DUMMYPtr dPtr = DUMMYPTR(xf86ScreenToScrn(pScreen)); xf86CursorInfoPtr infoPtr; infoPtr = xf86CreateCursorInfoRec(); diff --git a/src/dummy_dga.c b/src/dummy_dga.c index 9710aef..a35f3c9 100644 --- a/src/dummy_dga.c +++ b/src/dummy_dga.c @@ -33,7 +33,7 @@ DGAFunctionRec DUMMYDGAFuncs = { Bool DUMMYDGAInit(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); DUMMYPtr pDUMMY = DUMMYPTR(pScrn); DGAModePtr modes = NULL, newmodes = NULL, currentMode; DisplayModePtr pMode, firstMode; diff --git a/src/dummy_driver.c b/src/dummy_driver.c index 791855f..f5d1f4c 100644 --- a/src/dummy_driver.c +++ b/src/dummy_driver.c @@ -532,7 +532,7 @@ DUMMYScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) * we need to get the ScrnInfoRec for this screen, so let's allocate * one first thing */ - pScrn = xf86Screens[pScreen->myNum]; + pScrn = xf86ScreenToScrn(pScreen); dPtr = DUMMYPTR(pScrn); DUMMYScrn = pScrn; @@ -734,7 +734,7 @@ DUMMYSaveScreen(ScreenPtr pScreen, int mode) DUMMYPtr dPtr; if (pScreen != NULL) { - pScrn = xf86Screens[pScreen->myNum]; + pScrn = xf86ScreenToScrn(pScreen); dPtr = DUMMYPTR(pScrn); dPtr->screenSaver = xf86IsUnblank(mode); commit 20fcd59d3f8d7393586d8b64bfac18adede726ca Author: Dave Airlie <[email protected]> Date: Wed May 23 11:36:22 2012 +0100 dummy: add scrn conversion api compat header. Signed-off-by: Dave Airlie <[email protected]> diff --git a/src/Makefile.am b/src/Makefile.am index 4bc9242..da1dd9a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -33,6 +33,7 @@ dummy_drv_la_LIBADD = $(XORG_LIBS) dummy_drv_ladir = @moduledir@/drivers dummy_drv_la_SOURCES = \ + compat-api.h \ dummy_cursor.c \ dummy_driver.c \ dummy.h diff --git a/src/compat-api.h b/src/compat-api.h new file mode 100644 index 0000000..1bb7724 --- /dev/null +++ b/src/compat-api.h @@ -0,0 +1,41 @@ +/* + * Copyright 2012 Red Hat, Inc. + * + * 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 + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, 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 NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS 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. + * + * Author: Dave Airlie <[email protected]> + */ + +/* this file provides API compat between server post 1.13 and pre it, + it should be reused inside as many drivers as possible */ +#ifndef COMPAT_API_H +#define COMPAT_API_H + +#ifndef GLYPH_HAS_GLYPH_PICTURE_ACCESSOR +#define GetGlyphPicture(g, s) GlyphPicture((g))[(s)->myNum] +#define SetGlyphPicture(g, s, p) GlyphPicture((g))[(s)->myNum] = p +#endif + +#ifndef XF86_HAS_SCRN_CONV +#define xf86ScreenToScrn(s) xf86Screens[(s)->myNum] +#define xf86ScrnToScreen(s) screenInfo.screens[(s)->scrnIndex] +#endif + +#endif diff --git a/src/dummy.h b/src/dummy.h index 966ab02..24279a2 100644 --- a/src/dummy.h +++ b/src/dummy.h @@ -11,6 +11,8 @@ #endif #include <string.h> +#include "compat-api.h" + /* Supported chipsets */ typedef enum { DUMMY_CHIP commit a78d524cfb332909dba89df5d709081515f0ed36 Author: Yaakov Selkowitz <[email protected]> Date: Wed Mar 28 00:07:28 2012 -0500 Add XORG_LIBS to LIBADD This affects only Cygwin, where drivers must be linked against the Xorg implib. On other systems, XORG_LIBS will be empty. Signed-off-by: Yaakov Selkowitz <[email protected]> Reviewed-by: Alan Coopersmith <[email protected]> Reviewed-by: Jeremy Huddleston <[email protected]> diff --git a/src/Makefile.am b/src/Makefile.am index 52b9921..4bc9242 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -29,6 +29,7 @@ AM_CFLAGS = $(XORG_CFLAGS) $(PCIACCESS_CFLAGS) dummy_drv_la_LTLIBRARIES = dummy_drv.la dummy_drv_la_LDFLAGS = -module -avoid-version +dummy_drv_la_LIBADD = $(XORG_LIBS) dummy_drv_ladir = @moduledir@/drivers dummy_drv_la_SOURCES = \ commit 668223a665af38600b8b20152c7e53e731c76234 Author: Yaakov Selkowitz <[email protected]> Date: Wed Mar 28 00:06:32 2012 -0500 Only include Xv headers if server supports it Signed-off-by: Yaakov Selkowitz <[email protected]> Reviewed-by: Jeremy Huddleston <[email protected]> diff --git a/src/dummy.h b/src/dummy.h index 3442f63..966ab02 100644 --- a/src/dummy.h +++ b/src/dummy.h @@ -5,8 +5,10 @@ #include "xf86Cursor.h" +#ifdef XvExtension #include "xf86xv.h" #include <X11/extensions/Xv.h> +#endif #include <string.h> /* Supported chipsets */ @@ -57,7 +59,9 @@ typedef struct dummyRec Bool screenSaver; Bool video; +#ifdef XvExtension XF86VideoAdaptorPtr overlayAdaptor; +#endif int overlay; int overlay_offset; int videoKey; diff --git a/src/dummy_driver.c b/src/dummy_driver.c index 6533b27..791855f 100644 --- a/src/dummy_driver.c +++ b/src/dummy_driver.c @@ -32,8 +32,10 @@ #include "picturestr.h" +#ifdef XvExtension #include "xf86xv.h" #include <X11/extensions/Xv.h> +#endif /* * Driver data structures. -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

