summaryrefslogtreecommitdiff
path: root/src/smi.h
diff options
context:
space:
mode:
authorFrancisco Jerez <currojerez@gmail.com>2008-08-16 13:00:31 +0200
committerPaulo Cesar Pereira de Andrade <pcpa@mandriva.com.br>2008-08-16 19:16:28 -0300
commit209097ba5b44a0ce0da7f1ea52150dcace2b5244 (patch)
treecf75b4a605fb5448bd6cc9d4e70ad0ccaab7ec74 /src/smi.h
parent45c6aedd6fe4e4d6abe58d1bb39ec01049404f09 (diff)
RandR rotation implemented.
* I added the configuration file option "RandRRotation". * I replaced pSmi->ShadowPitch with pSmi->screenStride, it seems it makes more sense because the lower word of ShadowPitch may change independently. * I moved the SMI_DEDataFormat to smi_accel.c because it seems it is a piece of code repeated many times in the driver. * At some places, it is assumed the framebuffer is at FBOffset: when using a shadow framebuffer, FBOffset is the location of the on-screen framebuffer (0 should be used). This made e.g. EXA completly useless with ShadowFB enabled (it crashed). * In the FBManager initialization, I have replaced xf86InitFBManager with xf86InitFBManagerRegion to reserve some additional space as screen fb: it's unlikely to be the case, but a less efficient alignment in the rotated mode could make the rotated mode need more memory than the unrotated one. This is not a problem with EXA as the offscreen memory parameters can be easily modified when doing the rotation. * In SMI_RefreshArea it's assumed that some DE registers are already in some state, this is specially not true when using EXA. * SMI_ValidMode rejects a rotated mode with different dimensions than the panel. This seems to work now. Signed-off-by: Paulo Cesar Pereira de Andrade <pcpa@mandriva.com.br>
Diffstat (limited to 'src/smi.h')
-rw-r--r--src/smi.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/smi.h b/src/smi.h
index c785fa0..30ed679 100644
--- a/src/smi.h
+++ b/src/smi.h
@@ -220,7 +220,9 @@ typedef struct
Bool shadowFB; /* Flag if shadow buffer is
used */
int rotate; /* Rotation flags */
- int ShadowPitch; /* Pitch of shadow buffer */
+ Bool randrRotation; /* Allow RandR rotation */
+ CARD32 screenStride; /* Stride of the on-screen framebuffer */
+ /* when using a shadow fb*/
int ShadowWidthBytes; /* Width of shadow
buffer in bytes */
int ShadowWidth; /* Width of shadow buffer in
@@ -350,6 +352,7 @@ void SMI_GEReset(ScrnInfoPtr pScrn, int from_timeout, int line, char *file);
void SMI_EngineReset(ScrnInfoPtr);
void SMI_SetClippingRectangle(ScrnInfoPtr, int, int, int, int);
void SMI_DisableClipping(ScrnInfoPtr);
+CARD32 SMI_DEDataFormat(int bpp);
/* smi_hwcurs.c */
Bool SMI_HWCursorInit(ScreenPtr pScrn);