From 6beb2364f38f5e53b0acb744ffc8225c9c13e492 Mon Sep 17 00:00:00 2001 From: Jay Sorg Date: Tue, 28 Jan 2014 10:41:32 -0800 Subject: xorg: work on xorg driver --- xorg/server/module/rdpDraw.c | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) (limited to 'xorg/server/module/rdpDraw.c') diff --git a/xorg/server/module/rdpDraw.c b/xorg/server/module/rdpDraw.c index 5593ad2c..9d834500 100644 --- a/xorg/server/module/rdpDraw.c +++ b/xorg/server/module/rdpDraw.c @@ -289,7 +289,6 @@ rdpCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr pOldRegion) { ScreenPtr pScreen; rdpPtr dev; - rdpClientCon *clientCon; RegionRec reg; RegionRec clip; int dx; @@ -297,7 +296,9 @@ rdpCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr pOldRegion) int num_clip_rects; int num_reg_rects; BoxPtr box; + BoxRec box1; + LLOGLN(10, ("rdpCopyWindow:")); pScreen = pWin->drawable.pScreen; dev = rdpGetDevFromScreen(pScreen); dev->counts.rdpCopyWindowCallCount++; @@ -318,30 +319,25 @@ rdpCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr pOldRegion) if ((num_clip_rects == 0) || (num_reg_rects == 0)) { - rdpRegionUninit(®); - rdpRegionUninit(&clip); - return; } - - if ((num_clip_rects > 16) && (num_reg_rects > 16)) + else { - box = rdpRegionExtents(®); - clientCon = dev->clientConHead; - while (clientCon != NULL) + if ((num_clip_rects > 16) || (num_reg_rects > 16)) { - rdpClientConAddDirtyScreenBox(dev, clientCon, box); - clientCon = clientCon->next; + LLOGLN(10, ("rdpCopyWindow: big list")); + box = rdpRegionExtents(®); + box1 = *box; + box1.x1 += dx; + box1.y1 += dy; + box1.x2 += dx; + box1.y2 += dy; + rdpClientConAddAllBox(dev, &box1, &(pWin->drawable)); } - } - else - { - rdpRegionTranslate(®, dx, dy); - rdpRegionIntersect(®, ®, &clip); - clientCon = dev->clientConHead; - while (clientCon != NULL) + else { - rdpClientConAddDirtyScreenReg(dev, clientCon, ®); - clientCon = clientCon->next; + rdpRegionTranslate(®, dx, dy); + rdpRegionIntersect(®, ®, &clip); + rdpClientConAddAllReg(dev, ®, &(pWin->drawable)); } } rdpRegionUninit(®); -- cgit v1.2.3 From 97070b6fd90bcf48da805c42f8e0103831c5752a Mon Sep 17 00:00:00 2001 From: Jay Sorg Date: Tue, 28 Jan 2014 14:12:20 -0800 Subject: xorg: fixes for building with xserver v1.13+ --- xorg/server/module/rdpDraw.c | 4 ++++ xorg/server/module/rdpDraw.h | 14 ++++++++++++++ xorg/server/module/rdpPixmap.h | 9 ++------- xorg/server/module/rdpRandR.c | 6 ++++++ 4 files changed, 26 insertions(+), 7 deletions(-) (limited to 'xorg/server/module/rdpDraw.c') diff --git a/xorg/server/module/rdpDraw.c b/xorg/server/module/rdpDraw.c index 9d834500..ef1edcf3 100644 --- a/xorg/server/module/rdpDraw.c +++ b/xorg/server/module/rdpDraw.c @@ -354,7 +354,11 @@ rdpCloseScreen(int index, ScreenPtr pScreen) LLOGLN(0, ("rdpCloseScreen:")); dev = rdpGetDevFromScreen(pScreen); dev->pScreen->CloseScreen = dev->CloseScreen; +#if XRDP_CLOSESCR == 1 /* before v1.13 */ rv = dev->pScreen->CloseScreen(index, pScreen); +#else + rv = dev->pScreen->CloseScreen(pScreen); +#endif dev->pScreen->CloseScreen = rdpCloseScreen; return rv; } diff --git a/xorg/server/module/rdpDraw.h b/xorg/server/module/rdpDraw.h index 05fd0849..af65b46c 100644 --- a/xorg/server/module/rdpDraw.h +++ b/xorg/server/module/rdpDraw.h @@ -25,8 +25,17 @@ misc draw calls #define __RDPDRAW_H #include +#include #include +#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 13, 0, 0, 0) +/* 1.1, 1.2, 1.3, 1.4 1.5, 1.6, 1.7, 1.8, 1.9, 1.10, 1.11, 1.12 */ +#define XRDP_CLOSESCR 1 +#else +/* 1.13 */ +#define XRDP_CLOSESCR 2 +#endif + /* true if drawable is window or pixmap is screen */ #define XRDP_DRAWABLE_IS_VISIBLE(_dev, _drw) \ (((_drw)->type == DRAWABLE_WINDOW && ((WindowPtr)(_drw))->viewable) || \ @@ -69,8 +78,13 @@ int rdpDrawItemRemoveAll(rdpPtr dev, rdpPixmapRec *priv); void rdpCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr pOldRegion); +#if XRDP_CLOSESCR == 1 Bool rdpCloseScreen(int index, ScreenPtr pScreen); +#else +Bool +rdpCloseScreen(ScreenPtr pScreen); +#endif WindowPtr rdpGetRootWindowPtr(ScreenPtr pScreen); rdpPtr diff --git a/xorg/server/module/rdpPixmap.h b/xorg/server/module/rdpPixmap.h index 0ab10a3f..7fce3186 100644 --- a/xorg/server/module/rdpPixmap.h +++ b/xorg/server/module/rdpPixmap.h @@ -24,13 +24,8 @@ pixmap calls #ifndef __RDPPIXMAP_H #define __RDPPIXAMP_H -#ifndef XORG_VERSION_NUMERIC -#warning XORG_VERSION_NUMERIC not defined, need #include -#endif - -#ifndef XORG_VERSION_CURRENT -#warning XORG_VERSION_CURRENT not defined -#endif +#include +#include #if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 5, 0, 0, 0) /* 1.1, 1.2, 1.3, 1.4 */ diff --git a/xorg/server/module/rdpRandR.c b/xorg/server/module/rdpRandR.c index c90c0303..37577645 100644 --- a/xorg/server/module/rdpRandR.c +++ b/xorg/server/module/rdpRandR.c @@ -27,6 +27,7 @@ RandR draw calls /* this should be before all X11 .h files */ #include +#include /* all driver need this */ #include @@ -141,8 +142,13 @@ rdpRRScreenSetSize(ScreenPtr pScreen, CARD16 width, CARD16 height, RRGetInfo(pScreen, 1); LLOGLN(0, (" screen resized to %dx%d", pScreen->width, pScreen->height)); RRScreenSizeNotify(pScreen); +#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 13, 0, 0, 0) xf86EnableDisableFBAccess(pScreen->myNum, FALSE); xf86EnableDisableFBAccess(pScreen->myNum, TRUE); +#else + xf86EnableDisableFBAccess(xf86Screens[pScreen->myNum], FALSE); + xf86EnableDisableFBAccess(xf86Screens[pScreen->myNum], TRUE); +#endif return TRUE; } -- cgit v1.2.3 From b4b73056fc8c119beb032d20fc763bc40af3efa9 Mon Sep 17 00:00:00 2001 From: Jay Sorg Date: Tue, 28 Jan 2014 16:07:36 -0800 Subject: xorg: fixes for building with xserver v1.13+ --- xorg/server/module/rdpDraw.c | 21 +++++++++++++++++++-- xorg/server/xrdpdev/xrdpdev.c | 26 +++++++++++++++++++++++++- 2 files changed, 44 insertions(+), 3 deletions(-) (limited to 'xorg/server/module/rdpDraw.c') diff --git a/xorg/server/module/rdpDraw.c b/xorg/server/module/rdpDraw.c index ef1edcf3..b4e689af 100644 --- a/xorg/server/module/rdpDraw.c +++ b/xorg/server/module/rdpDraw.c @@ -344,6 +344,8 @@ rdpCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr pOldRegion) rdpRegionUninit(&clip); } +#if XRDP_CLOSESCR == 1 /* before v1.13 */ + /*****************************************************************************/ Bool rdpCloseScreen(int index, ScreenPtr pScreen) @@ -354,15 +356,30 @@ rdpCloseScreen(int index, ScreenPtr pScreen) LLOGLN(0, ("rdpCloseScreen:")); dev = rdpGetDevFromScreen(pScreen); dev->pScreen->CloseScreen = dev->CloseScreen; -#if XRDP_CLOSESCR == 1 /* before v1.13 */ rv = dev->pScreen->CloseScreen(index, pScreen); + dev->pScreen->CloseScreen = rdpCloseScreen; + return rv; +} + #else + +/*****************************************************************************/ +Bool +rdpCloseScreen(ScreenPtr pScreen) +{ + rdpPtr dev; + Bool rv; + + LLOGLN(0, ("rdpCloseScreen:")); + dev = rdpGetDevFromScreen(pScreen); + dev->pScreen->CloseScreen = dev->CloseScreen; rv = dev->pScreen->CloseScreen(pScreen); -#endif dev->pScreen->CloseScreen = rdpCloseScreen; return rv; } +#endif + /******************************************************************************/ WindowPtr rdpGetRootWindowPtr(ScreenPtr pScreen) diff --git a/xorg/server/xrdpdev/xrdpdev.c b/xorg/server/xrdpdev/xrdpdev.c index 33756389..7e5959ba 100644 --- a/xorg/server/xrdpdev/xrdpdev.c +++ b/xorg/server/xrdpdev/xrdpdev.c @@ -411,7 +411,11 @@ rdpWakeupHandler1(pointer blockData, int result, pointer pReadmask) /*****************************************************************************/ static Bool +#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 13, 0, 0, 0) rdpScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) +#else +rdpScreenInit(ScreenPtr pScreen, int argc, char **argv) +#endif { ScrnInfoPtr pScrn; rdpPtr dev; @@ -419,7 +423,7 @@ rdpScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) Bool vis_found; PictureScreenPtr ps; - pScrn = xf86Screens[scrnIndex]; + pScrn = xf86Screens[pScreen->myNum]; dev = XRDPPTR(pScrn); dev->pScreen = pScreen; @@ -556,7 +560,11 @@ rdpScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) /*****************************************************************************/ static Bool +#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 13, 0, 0, 0) rdpSwitchMode(int a, DisplayModePtr b, int c) +#else +rdpSwitchMode(ScrnInfoPtr a, DisplayModePtr b) +#endif { LLOGLN(0, ("rdpSwitchMode:")); return TRUE; @@ -564,14 +572,22 @@ rdpSwitchMode(int a, DisplayModePtr b, int c) /*****************************************************************************/ static void +#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 13, 0, 0, 0) rdpAdjustFrame(int a, int b, int c, int d) +#else +rdpAdjustFrame(ScrnInfoPtr a, int b, int c) +#endif { LLOGLN(10, ("rdpAdjustFrame:")); } /*****************************************************************************/ static Bool +#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 13, 0, 0, 0) rdpEnterVT(int a, int b) +#else +rdpEnterVT(ScrnInfoPtr a) +#endif { LLOGLN(0, ("rdpEnterVT:")); return TRUE; @@ -579,14 +595,22 @@ rdpEnterVT(int a, int b) /*****************************************************************************/ static void +#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 13, 0, 0, 0) rdpLeaveVT(int a, int b) +#else +rdpLeaveVT(ScrnInfoPtr a) +#endif { LLOGLN(0, ("rdpLeaveVT:")); } /*****************************************************************************/ static ModeStatus +#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 13, 0, 0, 0) rdpValidMode(int a, DisplayModePtr b, Bool c, int d) +#else +rdpValidMode(ScrnInfoPtr a, DisplayModePtr b, Bool c, int d) +#endif { LLOGLN(0, ("rdpValidMode:")); return 0; -- cgit v1.2.3