diff options
author | Koen Kooi <koen@openembedded.org> | 2007-08-02 14:32:34 +0000 |
---|---|---|
committer | Koen Kooi <koen@openembedded.org> | 2007-08-02 14:32:34 +0000 |
commit | 1db621ca4d1e65eab55e630c1fa8ab9a0cd78cef (patch) | |
tree | a64a371a04c23f0a64dafc0e8a7ce78b35103dcc | |
parent | 25e3f9b278d5208ef8c3d5c478699b5696b5d165 (diff) |
kdrive (imageon) 1.2.0: apply xcalibrate patch needed for recent changes
3 files changed, 128 insertions, 4 deletions
diff --git a/packages/xorg-xserver/xserver-kdrive-1.2.0/xcalibrate_coords.patch b/packages/xorg-xserver/xserver-kdrive-1.2.0/xcalibrate_coords.patch new file mode 100644 index 0000000000..e0cca5428b --- /dev/null +++ b/packages/xorg-xserver/xserver-kdrive-1.2.0/xcalibrate_coords.patch @@ -0,0 +1,122 @@ +--- + Xext/xcalibrate.c | 47 ++++++++++++++++++++++++++++++++++++++++++++++- + hw/kdrive/src/kdrive.h | 3 +++ + hw/kdrive/src/kinput.c | 12 ++++++++++++ + 3 files changed, 61 insertions(+), 1 deletion(-) + +Index: xorg-server-1.3.0.0/Xext/xcalibrate.c +=================================================================== +--- xorg-server-1.3.0.0.orig/Xext/xcalibrate.c 2007-06-29 17:30:03.000000000 +0100 ++++ xorg-server-1.3.0.0/Xext/xcalibrate.c 2007-06-30 14:04:40.000000000 +0100 +@@ -166,7 +166,6 @@ ProcXCalibrateSetRawMode (ClientPtr clie + return (client->noClientException); + } + +- + static int + SProcXCalibrateSetRawMode (ClientPtr client) + { +@@ -180,6 +179,47 @@ SProcXCalibrateSetRawMode (ClientPtr cli + return ProcXCalibrateSetRawMode(client); + } + ++static int ++ProcXCalibrateScreenToCoord (ClientPtr client) ++{ ++ REQUEST(xXCalibrateScreenToCoordReq); ++ xXCalibrateScreenToCoordReply rep; ++ ++ REQUEST_SIZE_MATCH (xXCalibrateScreenToCoordReq); ++ ++ memset (&rep, 0, sizeof (rep)); ++ rep.type = X_Reply; ++ rep.sequenceNumber = client->sequence; ++ rep.x = stuff->x; ++ rep.y = stuff->y; ++ ++ KdScreenToMouseCoords(&rep.x, &rep.y); ++ ++ if (client->swapped) ++ { ++ int n; ++ ++ swaps (&rep.x, n); ++ swaps (&rep.y, n); ++ } ++ WriteToClient(client, sizeof (rep), (char *) &rep); ++ return (client->noClientException); ++} ++ ++static int ++SProcXCalibrateScreenToCoord (ClientPtr client) ++{ ++ REQUEST(xXCalibrateScreenToCoordReq); ++ int n; ++ ++ REQUEST_SIZE_MATCH (xXCalibrateScreenToCoordReq); ++ ++ swaps(&stuff->x, n); ++ swaps(&stuff->y, n); ++ ++ return ProcXCalibrateScreenToCoord(client); ++} ++ + static void + XCalibrateResetProc (ExtensionEntry *extEntry) + { +@@ -194,6 +234,9 @@ ProcXCalibrateDispatch (ClientPtr client + return ProcXCalibrateQueryVersion(client); + case X_XCalibrateRawMode: + return ProcXCalibrateSetRawMode(client); ++ case X_XCalibrateScreenToCoord: ++ return ProcXCalibrateScreenToCoord(client); ++ + default: break; + } + +@@ -213,6 +256,8 @@ SProcXCalibrateDispatch (ClientPtr clien + return SProcXCalibrateQueryVersion(client); + case X_XCalibrateRawMode: + return SProcXCalibrateSetRawMode(client); ++ case X_XCalibrateScreenToCoord: ++ return SProcXCalibrateScreenToCoord(client); + + default: break; + } +Index: xorg-server-1.3.0.0/hw/kdrive/src/kdrive.h +=================================================================== +--- xorg-server-1.3.0.0.orig/hw/kdrive/src/kdrive.h 2007-06-30 13:43:45.000000000 +0100 ++++ xorg-server-1.3.0.0/hw/kdrive/src/kdrive.h 2007-06-30 13:45:03.000000000 +0100 +@@ -746,6 +746,9 @@ void + KdSetMouseMatrix (KdMouseMatrix *matrix); + + void ++KdScreenToMouseCoords (int *x, int *y); ++ ++void + KdComputeMouseMatrix (KdMouseMatrix *matrix, Rotation randr, int width, int height); + + void +Index: xorg-server-1.3.0.0/hw/kdrive/src/kinput.c +=================================================================== +--- xorg-server-1.3.0.0.orig/hw/kdrive/src/kinput.c 2007-06-29 17:30:16.000000000 +0100 ++++ xorg-server-1.3.0.0/hw/kdrive/src/kinput.c 2007-06-30 15:52:16.000000000 +0100 +@@ -381,6 +381,18 @@ KdSetMouseMatrix (KdMouseMatrix *matrix) + } + + void ++KdScreenToMouseCoords (int *x, int *y) ++{ ++ int (*m)[3] = kdMouseMatrix.matrix; ++ int div = m[0][1] * m[1][0] - m[1][1] * m[0][0]; ++ int sx = *x; ++ int sy = *y; ++ ++ *x = (m[0][1] * sy - m[0][1] * m[1][2] + m[1][1] * m[0][2] - m[1][1] * sx) / div; ++ *y = (m[1][0] * sx + m[0][0] * m[1][2] - m[1][0] * m[0][2] - m[0][0] * sy) / div; ++} ++ ++void + KdComputeMouseMatrix (KdMouseMatrix *m, Rotation randr, int width, int height) + { + int x_dir = 1, y_dir = 1; diff --git a/packages/xorg-xserver/xserver-kdrive-imageon_1.2.0.bb b/packages/xorg-xserver/xserver-kdrive-imageon_1.2.0.bb index 704bb27d84..051221e0ac 100644 --- a/packages/xorg-xserver/xserver-kdrive-imageon_1.2.0.bb +++ b/packages/xorg-xserver/xserver-kdrive-imageon_1.2.0.bb @@ -1,13 +1,13 @@ require xserver-kdrive-common.inc DESCRIPTION = "X server for ATI Imageon 100 Cards from freedesktop.org" -COMPATIBLE_MACHINE = "c7x0" +#COMPATIBLE_MACHINE = "c7x0" DEPENDS += "libxkbfile libxcalibrate" PROVIDES = "virtual/xserver" PE = "1" -PR = "r0" +PR = "r1" FILESPATH = "${FILE_DIRNAME}/xserver-kdrive-1.2.0:${FILE_DIRNAME}/xserver-kdrive" SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \ @@ -16,6 +16,7 @@ SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \ file://fbcompositesrc8888revnpx0565.patch;patch=1 \ file://kdrive-vidmemarea.patch;patch=1 \ file://kdrive-imageon.patch;patch=1 \ + file://xcalibrate_coords.patch;patch=1 \ " S = "${WORKDIR}/xorg-server-${PV}" diff --git a/packages/xorg-xserver/xserver-kdrive_1.2.0.bb b/packages/xorg-xserver/xserver-kdrive_1.2.0.bb index a51ece76cf..5af854c3f0 100644 --- a/packages/xorg-xserver/xserver-kdrive_1.2.0.bb +++ b/packages/xorg-xserver/xserver-kdrive_1.2.0.bb @@ -3,7 +3,7 @@ require xserver-kdrive-common.inc DEPENDS += "libxkbfile libxcalibrate" PE = "1" -PR = "r8" +PR = "r9" SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \ ${KDRIVE_COMMON_PATCHES} \ @@ -11,7 +11,8 @@ SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \ file://w100.patch;patch=1 \ file://w100-fix-offscreen-bmp.patch;patch=1 \ file://fbcompositesrc8888revnpx0565.patch;patch=1 \ - " + file://xcalibrate_coords.patch;patch=1 \ + " S = "${WORKDIR}/xorg-server-${PV}" |