[Bug 14375] Mouse cursor flickers in Myst IV - Revelation

wine-bugs at winehq.org wine-bugs at winehq.org
Thu Sep 24 12:04:56 CDT 2009


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





--- Comment #15 from Lisa Denia <eiffel56 at gmail.com>  2009-09-24 12:04:54 ---
Just forget my previous post. Its incorrect and stupid.

I started looking around again. It turns out that the cursor is drawn using
vertex blending. The vertex blending extension is not available on most
graphics cards/drivers, leading to the bug that the cursor doesn't behave the
same way as it does on Microsoft Windows systems(thats another bug).
I read about the software vertex blending thingy and applied it to Wine. It
seems that it is not correct, the cursor is completely messed up, but that
garbage does not flicker. After I played with the patch it turns out that an
additional call to transform_world in state_vertexblend_w causes the cursor not
to flicker. And indeed, doing that even without the whole software vertex
blending stuff fixes the cursor flickering.

But, is that the correct solution? I had a look at state_vertexblend, which
gets used in case your hardware/driver supports the vertex blending extension.
transform_worldex gets called there. So, if we call it also in
state_vertexblend_w, its like an "We don't have vertex blending support, but
just display what we got so far", right? Sadly, calling transform_worldex in
state_vertexblend_w does not fix the cursor flickering. It only stops
flickering when we call transform_world.

But I don't really understand the cause of this bug at all. I attached a patch
which fixes the cursor flickering in Revelation, but that approach could be
totally wrong. Take it as an workaround. Altough it fixes it, I think the cause
is somewhere else. The flickering looks like in comment #12 for me:
-Begin draw-
The scene gets rendered
The cursor gets rendered
The scene gets rendered again
-End draw-
So what happens if you use the patch is:
-Begin draw-
The scene gets rendered
The cursor gets rendered
The scene gets rendered again
The cursor also gets rendered again
-End draw-
Which would not be the correct solution. Instead, we should probably stop
rendering the scene twice. At least if that happens because of Wine(could also
be because of a stupid game engine).

Any help/comments/whatever appreciated ;).

-- 
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