aboutsummaryrefslogtreecommitdiffstats
path: root/unix/xserver
diff options
context:
space:
mode:
Diffstat (limited to 'unix/xserver')
-rw-r--r--unix/xserver/hw/vnc/xvnc.c35
1 files changed, 15 insertions, 20 deletions
diff --git a/unix/xserver/hw/vnc/xvnc.c b/unix/xserver/hw/vnc/xvnc.c
index e8f71edd..1f95207d 100644
--- a/unix/xserver/hw/vnc/xvnc.c
+++ b/unix/xserver/hw/vnc/xvnc.c
@@ -1065,13 +1065,23 @@ vncRandRSetPreferredMode(void *out, void *m)
static Bool
vncRandRInit(ScreenPtr pScreen)
{
+ rrScrPrivPtr pScrPriv;
RRCrtcPtr crtc;
RRModePtr mode;
Bool ret;
- if (!RRInit())
+ if (!RRScreenInit(pScreen))
return FALSE;
+ pScrPriv = rrGetScrPriv(pScreen);
+
+ pScrPriv->rrGetInfo = vncRandRGetInfo;
+ pScrPriv->rrSetConfig = NULL;
+ pScrPriv->rrScreenSetSize = vncRandRScreenSetSize;
+ pScrPriv->rrCrtcSet = vncRandRCrtcSet;
+ pScrPriv->rrOutputValidateMode = vncRandROutputValidateMode;
+ pScrPriv->rrModeDestroy = vncRandRModeDestroy;
+
/* These are completely arbitrary */
RRScreenSetSizeRange(pScreen, 32, 32, 32768, 32768);
@@ -1124,8 +1134,6 @@ vfbScreenInit(ScreenPtr pScreen, int argc, char **argv)
int ret;
void *pbits;
- rrScrPrivPtr rp;
-
/* 96 is the default used by most other systems */
dpi = 96;
if (monitorResolution)
@@ -1179,6 +1187,10 @@ vfbScreenInit(ScreenPtr pScreen, int argc, char **argv)
if (!ret)
return FALSE;
+ ret = vncRandRInit(pScreen);
+ if (!ret)
+ return FALSE;
+
/*
* Circumvent the backing store that was just initialised. This amounts
* to a truely bizarre way of initialising SaveDoomedAreas and friends.
@@ -1241,23 +1253,6 @@ vfbScreenInit(ScreenPtr pScreen, int argc, char **argv)
pvfb->closeScreen = pScreen->CloseScreen;
pScreen->CloseScreen = vfbCloseScreen;
- ret = RRScreenInit(pScreen);
- if (!ret)
- return FALSE;
-
- rp = rrGetScrPriv(pScreen);
-
- rp->rrGetInfo = vncRandRGetInfo;
- rp->rrSetConfig = NULL;
- rp->rrScreenSetSize = vncRandRScreenSetSize;
- rp->rrCrtcSet = vncRandRCrtcSet;
- rp->rrOutputValidateMode = vncRandROutputValidateMode;
- rp->rrModeDestroy = vncRandRModeDestroy;
-
- ret = vncRandRInit(pScreen);
- if (!ret)
- return FALSE;
-
return TRUE;
} /* end vfbScreenInit */