diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2009-04-19 22:12:11 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2009-04-19 22:28:12 +1000 |
commit | 54716fd3dbc251db9d251d1d0435942efaa63259 (patch) | |
tree | d065ba481e24c35a5479b7a1a9ea69599e30e8eb | |
parent | 129ac9a9145323e3f126590b491e718f976f80ce (diff) |
Convert to using int32_t fixed point values on the wire.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r-- | Xi/exevents.c | 4 | ||||
-rw-r--r-- | Xi/extinit.c | 24 | ||||
-rw-r--r-- | Xi/querydp.c | 21 | ||||
-rw-r--r-- | dix/eventconvert.c | 5 | ||||
-rw-r--r-- | dix/events.c | 12 | ||||
-rw-r--r-- | include/eventconvert.h | 2 |
6 files changed, 32 insertions, 36 deletions
diff --git a/Xi/exevents.c b/Xi/exevents.c index 6d85b1be2..af144313b 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -1220,8 +1220,8 @@ DeviceFocusEvent(DeviceIntPtr dev, int type, int mode, int detail, xi2event->deviceid = dev->id; xi2event->sourceid = 0; /*XXX */ xi2event->mode = mode; - xi2event->root_x.integral = mouse->spriteInfo->sprite->hot.x; - xi2event->root_y.integral = mouse->spriteInfo->sprite->hot.y; + xi2event->root_x = FP1616(mouse->spriteInfo->sprite->hot.x, 0); + xi2event->root_y = FP1616(mouse->spriteInfo->sprite->hot.y, 0); for (i = 0; mouse && mouse->button && i < mouse->button->numButtons; i++) if (BitIsOn(mouse->button->down, i)) diff --git a/Xi/extinit.c b/Xi/extinit.c index 9628dffb8..fa7031e6c 100644 --- a/Xi/extinit.c +++ b/Xi/extinit.c @@ -628,14 +628,10 @@ SDeviceLeaveNotifyEvent (xXILeaveEvent *from, xXILeaveEvent *to) swapl(&to->root, n); swapl(&to->event, n); swapl(&to->child, n); - swaps(&to->root_x.integral, n); - swaps(&to->root_x.frac, n); - swaps(&to->root_y.integral, n); - swaps(&to->root_y.frac, n); - swaps(&to->event_x.integral, n); - swaps(&to->event_x.frac, n); - swaps(&to->event_y.integral, n); - swaps(&to->event_y.frac, n); + swapl(&to->root_x, n); + swapl(&to->root_y, n); + swapl(&to->event_x, n); + swapl(&to->event_y, n); swaps(&to->sourceid, n); swaps(&to->buttons_len, n); swapl(&to->mods.base_mods, n); @@ -721,14 +717,10 @@ static void SDeviceEvent(xXIDeviceEvent *from, xXIDeviceEvent *to) swapl(&to->root, n); swapl(&to->event, n); swapl(&to->child, n); - swapl(&to->root_x.integral, n); - swapl(&to->root_x.frac, n); - swapl(&to->root_y.integral, n); - swapl(&to->root_y.frac, n); - swapl(&to->event_x.integral, n); - swapl(&to->event_x.frac, n); - swapl(&to->event_y.integral, n); - swapl(&to->event_y.frac, n); + swapl(&to->root_x, n); + swapl(&to->root_y, n); + swapl(&to->event_x, n); + swapl(&to->event_y, n); swaps(&to->buttons_len, n); swaps(&to->valuators_len, n); swaps(&to->sourceid, n); diff --git a/Xi/querydp.c b/Xi/querydp.c index 5be0cea17..1b45ae2b2 100644 --- a/Xi/querydp.c +++ b/Xi/querydp.c @@ -42,6 +42,7 @@ #include "extnsionst.h" #include "exevents.h" #include "exglobals.h" +#include "eventconvert.h" #include "xkbsrv.h" #ifdef PANORAMIX @@ -110,16 +111,16 @@ ProcXIQueryDevicePointer(ClientPtr client) if (kbd && kbd->key) rep.mask |= XkbStateFieldFromRec(&kbd->key->xkbInfo->state); rep.root = (GetCurrentRootWindow(pDev))->drawable.id; - rep.root_x.integral = pSprite->hot.x; - rep.root_y.integral = pSprite->hot.y; + rep.root_x = FP1616(pSprite->hot.x, 0); + rep.root_y = FP1616(pSprite->hot.y, 0); rep.child = None; rep.deviceid = pDev->id; if (pSprite->hot.pScreen == pWin->drawable.pScreen) { rep.same_screen = xTrue; - rep.win_x.integral = pSprite->hot.x - pWin->drawable.x; - rep.win_y.integral = pSprite->hot.y - pWin->drawable.y; + rep.win_x = FP1616(pSprite->hot.x - pWin->drawable.x, 0); + rep.win_y = FP1616(pSprite->hot.y - pWin->drawable.y, 0); for (t = pSprite->win; t; t = t->parent) if (t->parent == pWin) { @@ -129,18 +130,18 @@ ProcXIQueryDevicePointer(ClientPtr client) } else { rep.same_screen = xFalse; - rep.win_x.integral = 0; - rep.win_y.integral = 0; + rep.win_x = 0; + rep.win_y = 0; } #ifdef PANORAMIX if(!noPanoramiXExtension) { - rep.root_x.integral += panoramiXdataPtr[0].x; - rep.root_y.integral += panoramiXdataPtr[0].y; + rep.root_x += FP1616(panoramiXdataPtr[0].x, 0); + rep.root_y += FP1616(panoramiXdataPtr[0].y, 0); if (stuff->win == rep.root) { - rep.win_x.integral += panoramiXdataPtr[0].x; - rep.win_y.integral += panoramiXdataPtr[0].y; + rep.win_x += FP1616(panoramiXdataPtr[0].x, 0); + rep.win_y += FP1616(panoramiXdataPtr[0].y, 0); } } #endif diff --git a/dix/eventconvert.c b/dix/eventconvert.c index b69d9d32e..d97ed811f 100644 --- a/dix/eventconvert.c +++ b/dix/eventconvert.c @@ -47,6 +47,7 @@ #include "eventconvert.h" #include "querydev.h" + static int countValuators(DeviceEvent *ev, int *first); static int getValuatorEvents(DeviceEvent *ev, deviceValuator *xv); static int eventToKeyButtonPointer(DeviceEvent *ev, xEvent **xi, int *count); @@ -384,8 +385,8 @@ eventToDeviceEvent(DeviceEvent *ev, xEvent **xi) xde->valuators_len = vallen; xde->deviceid = ev->deviceid; xde->sourceid = ev->sourceid; - xde->root_x.integral = ev->root_x; - xde->root_y.integral = ev->root_y; + xde->root_x = FP1616(ev->root_x, 0); + xde->root_y = FP1616(ev->root_y, 0); xde->mods.base_mods = ev->mods.base; xde->mods.latched_mods = ev->mods.latched; diff --git a/dix/events.c b/dix/events.c index a308422ad..1057eb4e5 100644 --- a/dix/events.c +++ b/dix/events.c @@ -2226,13 +2226,13 @@ FixUpEventFromWindow( event->event = pWin->drawable.id; if (pSprite->hot.pScreen == pWin->drawable.pScreen) { - event->event_x.integral = event->root_x.integral - pWin->drawable.x; - event->event_y.integral = event->root_y.integral - pWin->drawable.y; + event->event_x = FP1616(event->root_x - pWin->drawable.x, 0); + event->event_y = FP1616(event->root_y - pWin->drawable.y, 0); event->child = child; } else { - event->event_x.integral = 0; - event->event_y.integral = 0; + event->event_x = 0; + event->event_y = 0; event->child = None; } @@ -4161,8 +4161,8 @@ DeviceEnterLeaveEvent( event->deviceid = mouse->id; event->sourceid = 0; /*XXX */ event->mode = mode; - event->root_x.integral = mouse->spriteInfo->sprite->hot.x; - event->root_y.integral = mouse->spriteInfo->sprite->hot.y; + event->root_x = FP1616(mouse->spriteInfo->sprite->hot.x, 0); + event->root_y = FP1616(mouse->spriteInfo->sprite->hot.y, 0); for (i = 0; mouse && mouse->button && i < mouse->button->numButtons; i++) if (BitIsOn(mouse->button->down, i)) diff --git a/include/eventconvert.h b/include/eventconvert.h index f458af729..dc3fd736d 100644 --- a/include/eventconvert.h +++ b/include/eventconvert.h @@ -28,6 +28,8 @@ #include "input.h" #include "events.h" +#define FP1616(integral, frac) (integral * (1 << 16) + frac * (1 << 16)) + _X_INTERNAL int EventToCore(InternalEvent *event, xEvent *core); _X_INTERNAL int EventToXI(InternalEvent *ev, xEvent **xi, int *count); _X_INTERNAL int EventToXI2(InternalEvent *ev, xEvent **xi); |