diff options
Diffstat (limited to 'hw/xfree86/common/xf86RandR.c')
-rw-r--r-- | hw/xfree86/common/xf86RandR.c | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/hw/xfree86/common/xf86RandR.c b/hw/xfree86/common/xf86RandR.c index 16246d342..88e9d371b 100644 --- a/hw/xfree86/common/xf86RandR.c +++ b/hw/xfree86/common/xf86RandR.c @@ -1,4 +1,4 @@ -/* $XdotOrg: xc/programs/Xserver/hw/xfree86/common/xf86RandR.c,v 1.2 2004/04/23 19:20:32 eich Exp $ */ +/* $XdotOrg: xc/programs/Xserver/hw/xfree86/common/xf86RandR.c,v 1.3 2004/07/30 21:53:09 eich Exp $ */ /* * $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86RandR.c,v 1.7tsi Exp $ * @@ -102,9 +102,15 @@ xf86RandRGetInfo (ScreenPtr pScreen, Rotation *rotations) } /* If there is driver support for randr, let it set our supported rotations */ - if(scrp->RRGetInfo) - return (*scrp->RRGetInfo)(scrp, rotations); - + if(scrp->RRFunc) { + xorgRRRotation RRRotation; + + RRRotation.RRRotations = *rotations; + if (!(*scrp->RRFunc)(scrp, RR_GET_INFO, &RRRotation)) + return FALSE; + *rotations = RRRotation.RRRotations; + } + return TRUE; } @@ -198,9 +204,16 @@ xf86RandRSetConfig (ScreenPtr pScreen, } /* Have the driver do its thing. */ - if (scrp->RRSetConfig && - !(*scrp->RRSetConfig)(scrp, rotation, rate, pSize->width, pSize->height)) - return FALSE; + if (scrp->RRFunc) { + xorgRRRotation RRRotation; + RRRotation.RRConfig.rotation = rotation; + RRRotation.RRConfig.rate = rate; + RRRotation.RRConfig.width = pSize->width; + RRRotation.RRConfig.height = pSize->height; + + if (!(*scrp->RRFunc)(scrp, RR_SET_CONFIG, &RRRotation)) + return FALSE; + } if (!xf86RandRSetMode (pScreen, mode, useVirtual)) return FALSE; |