summaryrefslogtreecommitdiff
path: root/packages/xorg-xserver/xserver-kdrive/kdrive-imageon.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/xorg-xserver/xserver-kdrive/kdrive-imageon.patch')
-rw-r--r--packages/xorg-xserver/xserver-kdrive/kdrive-imageon.patch66
1 files changed, 15 insertions, 51 deletions
diff --git a/packages/xorg-xserver/xserver-kdrive/kdrive-imageon.patch b/packages/xorg-xserver/xserver-kdrive/kdrive-imageon.patch
index 86ab49e1b2..f4272f80e0 100644
--- a/packages/xorg-xserver/xserver-kdrive/kdrive-imageon.patch
+++ b/packages/xorg-xserver/xserver-kdrive/kdrive-imageon.patch
@@ -6,6 +6,7 @@
# -XV Extension
# -Internal and External Imageon offscreen memory support
# -Hardware RandR rotation (without using a shadow framebuffer)
+# -Support for RandR mode changing
#
# Patch managed by http://www.holgerschurig.de/patcher.html
@@ -128,7 +129,7 @@
+ $(FBDEV_LIBS)
--- /dev/null
+++ xorg-server-X11R7.1-1.1.0.work/hw/kdrive/imageon/imageon.c
-@@ -0,0 +1,607 @@
+@@ -0,0 +1,606 @@
+/*
+ * Copyright © 2007 Manuel Teira
+ *
@@ -419,14 +420,13 @@
+
+ w100c->hw_window.offset = W100_HOST2CARD(screen->fb[0].frameBuffer);
+
-+
-+ W100ComputeMouseMatrix(&m, screen->randr,
-+ w100StartupInfo.portrait ?
-+ W100_MIN(screen->width, screen->height) :
-+ W100_MAX(screen->width, screen->height),
-+ w100StartupInfo.portrait ?
-+ W100_MAX(screen->width, screen->height) :
-+ W100_MIN(screen->width, screen->height));
++ KdComputeMouseMatrix(&m, screen->randr,
++ w100StartupInfo.portrait ?
++ W100_MIN(screen->width, screen->height) :
++ W100_MAX(screen->width, screen->height),
++ w100StartupInfo.portrait ?
++ W100_MAX(screen->width, screen->height) :
++ W100_MIN(screen->width, screen->height));
+
+ KdSetMouseMatrix(&m);
+
@@ -527,7 +527,7 @@
+ screen->randr = randr;
+ screen->width = pScreen->width;
+ screen->height = pScreen->height;
-+ w100c->hw_window.randr = KdAddRotation(randr, w100StartupInfo.randr);
++ w100c->hw_window.randr = KdSubRotation(w100StartupInfo.randr, randr);
+ w100c->hw_window.mode = W100GetBestMode(w100c, pScreen->width, pScreen->height);
+
+ KdOffscreenSwapOut(screen->pScreen);
@@ -902,7 +902,7 @@
+#endif
--- /dev/null
+++ xorg-server-X11R7.1-1.1.0.work/hw/kdrive/imageon/imageon_cursor.c
-@@ -0,0 +1,563 @@
+@@ -0,0 +1,566 @@
+/*
+ * Copyright © 2007 Manuel Teira
+ *
@@ -1157,6 +1157,7 @@
+ (CARD32*) tmpCursor0,
+ (CARD32*) tmpCursor1);
+
++ DUMP_CURSOR((CARD32*)tmpCursor1);
+ /* Correct endianness */
+ src = (CARD32*) tmpCursor1;
+ dst = (CARD32*) (pCurPriv->area->vidmem->base + pCurPriv->area->offset);
@@ -1275,6 +1276,7 @@
+ W100CardInfo(pScreenPriv);
+ W100ScreenInfo(pScreenPriv);
+ W100Cursor *pCurPriv = &w100s->cursor;
++ DBG_IMAGEON(("W100RealizeCursor\n"));
+
+ if (!pScreenPriv->enabled) {
+ return TRUE;
@@ -1293,6 +1295,7 @@
+static Bool
+W100UnrealizeCursor(ScreenPtr pScreen, CursorPtr pCursor)
+{
++ DBG_IMAGEON(("W100UnrealizeCursor\n"));
+ return TRUE;
+}
+
@@ -6228,7 +6231,7 @@
+}
--- /dev/null
+++ xorg-server-X11R7.1-1.1.0.work/hw/kdrive/imageon/imageon_support.c
-@@ -0,0 +1,1477 @@
+@@ -0,0 +1,1438 @@
+/*
+ * Copyright © 2007 Manuel Teira
+ *
@@ -7656,45 +7659,6 @@
+ return TRUE;
+}
+
-+void
-+W100ComputeMouseMatrix(KdMouseMatrix *m, Rotation randr, int width, int height)
-+{
-+ int x_dir = 1, y_dir = 1;
-+ int i, j;
-+ int size[2];
-+
-+ size[0] = width; size[1] = height;
-+ if (randr & RR_Reflect_X)
-+ x_dir = -1;
-+ if (randr & RR_Reflect_Y)
-+ y_dir = -1;
-+ switch (randr & (RR_Rotate_All)) {
-+ case RR_Rotate_0:
-+ m->matrix[0][0] = x_dir; m->matrix[0][1] = 0;
-+ m->matrix[1][0] = 0; m->matrix[1][1] = y_dir;
-+ break;
-+ case RR_Rotate_90:
-+ m->matrix[0][0] = 0; m->matrix[0][1] = x_dir;
-+ m->matrix[1][0] = -y_dir; m->matrix[1][1] = 0;
-+ break;
-+ case RR_Rotate_180:
-+ m->matrix[0][0] = -x_dir; m->matrix[0][1] = 0;
-+ m->matrix[1][0] = 0; m->matrix[1][1] = -y_dir;
-+ break;
-+ case RR_Rotate_270:
-+ m->matrix[0][0] = 0; m->matrix[0][1] = -x_dir;
-+ m->matrix[1][0] = y_dir; m->matrix[1][1] = 0;
-+ break;
-+ }
-+ for (i = 0; i < 2; i++)
-+ {
-+ m->matrix[i][2] = 0;
-+ for (j = 0 ; j < 2; j++)
-+ if (m->matrix[i][j] < 0)
-+ m->matrix[i][2] = size[j] - 1;
-+ }
-+}
-+
+void W100TransformTsLibCoordinates(long *x, long *y, void *closure)
+{
+ W100CardInfo *w100c = closure;