summaryrefslogtreecommitdiffstats
path: root/xorg/server/module/rdpDraw.c
diff options
context:
space:
mode:
Diffstat (limited to 'xorg/server/module/rdpDraw.c')
-rw-r--r--xorg/server/module/rdpDraw.c88
1 files changed, 22 insertions, 66 deletions
diff --git a/xorg/server/module/rdpDraw.c b/xorg/server/module/rdpDraw.c
index 7abcb406..08fe4b85 100644
--- a/xorg/server/module/rdpDraw.c
+++ b/xorg/server/module/rdpDraw.c
@@ -38,82 +38,21 @@ misc draw calls
#include <mi.h>
#include "rdp.h"
+#include "rdpDraw.h"
-/******************************************************************************/
#define LOG_LEVEL 1
#define LLOGLN(_level, _args) \
do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
/*****************************************************************************/
-PixmapPtr
-rdpCreatePixmap(ScreenPtr pScreen, int width, int height, int depth,
- unsigned usage_hint)
-{
- ScrnInfoPtr pScrn;
- rdpPtr dev;
- PixmapPtr rv;
-
- LLOGLN(10, ("rdpCreatePixmap: width %d height %d depth %d",
- width, height, depth));
- pScrn = xf86Screens[pScreen->myNum];
- dev = XRDPPTR(pScrn);
- pScreen->CreatePixmap = dev->CreatePixmap;
- rv = pScreen->CreatePixmap(pScreen, width, height, depth, usage_hint);
- pScreen->CreatePixmap = rdpCreatePixmap;
- return rv;
-}
-
-/******************************************************************************/
-Bool
-rdpDestroyPixmap(PixmapPtr pPixmap)
-{
- Bool rv;
- ScreenPtr pScreen;
- rdpPtr dev;
- ScrnInfoPtr pScrn;
-
- LLOGLN(10, ("rdpDestroyPixmap: refcnt %d", pPixmap->refcnt));
- pScreen = pPixmap->drawable.pScreen;
- pScrn = xf86Screens[pScreen->myNum];
- dev = XRDPPTR(pScrn);
- pScreen->DestroyPixmap = dev->DestroyPixmap;
- rv = pScreen->DestroyPixmap(pPixmap);
- pScreen->DestroyPixmap = rdpDestroyPixmap;
- return rv;
-}
-
-/******************************************************************************/
-Bool
-rdpModifyPixmapHeader(PixmapPtr pPixmap, int width, int height, int depth,
- int bitsPerPixel, int devKind, pointer pPixData)
-{
- Bool rv;
- ScreenPtr pScreen;
- rdpPtr dev;
- ScrnInfoPtr pScrn;
-
- LLOGLN(10, ("rdpModifyPixmapHeader:"));
- pScreen = pPixmap->drawable.pScreen;
- pScrn = xf86Screens[pScreen->myNum];
- dev = XRDPPTR(pScrn);
- pScreen->ModifyPixmapHeader = dev->ModifyPixmapHeader;
- rv = pScreen->ModifyPixmapHeader(pPixmap, width, height, depth, bitsPerPixel,
- devKind, pPixData);
- pScreen->ModifyPixmapHeader = rdpModifyPixmapHeader;
- return rv;
-}
-
-/*****************************************************************************/
void
rdpCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr pOldRegion)
{
- ScrnInfoPtr pScrn;
ScreenPtr pScreen;
rdpPtr dev;
pScreen = pWin->drawable.pScreen;
- pScrn = xf86Screens[pScreen->myNum];
- dev = XRDPPTR(pScrn);
+ dev = rdpGetDevFromScreen(pScreen);
dev->pScreen->CopyWindow = dev->CopyWindow;
dev->pScreen->CopyWindow(pWin, ptOldOrg, pOldRegion);
dev->pScreen->CopyWindow = rdpCopyWindow;
@@ -123,13 +62,11 @@ rdpCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr pOldRegion)
Bool
rdpCloseScreen(int index, ScreenPtr pScreen)
{
- ScrnInfoPtr pScrn;
rdpPtr dev;
Bool rv;
LLOGLN(0, ("rdpCloseScreen:"));
- pScrn = xf86Screens[pScreen->myNum];
- dev = XRDPPTR(pScrn);
+ dev = rdpGetDevFromScreen(pScreen);
dev->pScreen->CloseScreen = dev->CloseScreen;
rv = dev->pScreen->CloseScreen(index, pScreen);
dev->pScreen->CloseScreen = rdpCloseScreen;
@@ -146,3 +83,22 @@ rdpGetRootWindowPtr(ScreenPtr pScreen)
return pScreen->root;
#endif
}
+
+/******************************************************************************/
+rdpPtr
+rdpGetDevFromScreen(ScreenPtr pScreen)
+{
+ ScrnInfoPtr pScrn;
+ rdpPtr dev;
+
+ if (pScreen == NULL)
+ {
+ pScrn = xf86Screens[0];
+ }
+ else
+ {
+ pScrn = xf86Screens[pScreen->myNum];
+ }
+ dev = XRDPPTR(pScrn);
+ return dev;
+}