[Bug 16822] Mass Effect: Mouse input does not work (almost completely)

wine-bugs at winehq.org wine-bugs at winehq.org
Mon May 16 12:41:02 CDT 2011


http://bugs.winehq.org/show_bug.cgi?id=16822

Patrick Rudolph <patrick1804 at web.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |patrick1804 at web.de

--- Comment #26 from Patrick Rudolph <patrick1804 at web.de> 2011-05-16 12:41:01 CDT ---
Regarding Frontlines 1.00 (UT3 mod), mouse isn't working at all ingame
I found out, that the mouse is handled like this:

mouse_init();

...

while(1){

dinput:IDirectInputDevice2WImpl_SetCooperativeLevel( DISCL_FOREGROUND|
DISCL_NONEXCLUSIVE )

input:SysMouseWImpl_Acquire <- queue is cleaned here !

dinput:IDirectInputDevice2WImpl_GetDeviceData  <- queue is empty, return
nothing

dinput:LL_hook_proc calling  <- mouse hook, fills the queue
dinput:dinput_mouse_hook 
dinput:queue_event 

dinput:SysMouseWImpl_Unacquire 

}

The basic problem is, that SysMouseWImpl_Acquire() clears the queue AND the
mouse hook is processed after IDirectInputDevice2WImpl_GetDeviceData() every
time.

In dinput/device.c : 
HRESULT WINAPI IDirectInputDevice2WImpl_Acquire(LPDIRECTINPUTDEVICE8W iface)
uncommenting this lines fixes the problem, the game is working fine

 //This->queue_head = This->queue_tail = This->overflow = 0;

better solution would be getting the mouse hook processed AFTER
SysMouseWImpl_Acquire() and BEFORE IDirectInputDevice2WImpl_GetDeviceData() is
called.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list