Mousecursors in 4k Intros

category: code [glöplog]
Hey rez, not all of them! :)
added on the 2012-04-10 14:19:20 by Seven Seven
In case there would be a separate 1k compo - not hiding that would be okay imho.

Otherwise for 4k and 4k/1k combined having this rule can't be such a bad idea.
added on the 2012-04-10 14:22:06 by las las
There's no separate 1k compo at Solskogen.
added on the 2012-04-10 14:42:26 by gloom gloom
BB Image
added on the 2012-04-10 14:45:38 by ferris ferris
did any intro actually ever USE the mousecursor as a design element?
i mean its possible to move it via software, isnt it? =)
added on the 2012-04-10 15:05:34 by wysiwtf wysiwtf
wysiwtf: Are you crazy? That would take several BYTES of code!
added on the 2012-04-10 15:08:58 by nitro2k01 nitro2k01
Good to know because I am still coding on XP.
added on the 2012-04-10 15:43:49 by Optimus Optimus
For some reason, ShowCursor(0) seems to work fine in my intros, even on Vista/Win7. If somebody would like to confirm, try this, this, this, this or this.

One possible reason why it works could be that I don't call ShowCursor(0) until after Windows has decided that the intro is not responding. I do things in this order:

1. Create window
2. Create D3D9 device
3. Generate music (takes a long time)
4. Reset device to fix problems with Aero invalidating it (not done in the first two intros linked above).
5. Initialize D3D stuff (vertex buffers, render targets, etc.)
6. ShowCursor(0)
7. Start music (using waveOut)
8. Main loop, consisting of:
- waveOutGetPosition
- (rendering)
- Present
- GetAsyncKeyState
added on the 2012-04-10 16:28:42 by Blueberry Blueberry
Maybe fixed framerate? I also noticed that the problem is sometimes gone if I enforce VSync in my NV driver.
Might also be that dx is not affected by that issue.
added on the 2012-04-10 16:49:01 by las las
i love to play around with the mouse cursor if an intro gets boring :)
added on the 2012-04-10 17:01:09 by pro pro
Optimus: well, that doesn't really help the viewer, now does it?
added on the 2012-04-10 17:17:14 by gloom gloom
Hmm, i always used SetCursor(0) after i noticed that ShowCursor(0) didnt do its job on vista/7.
Never had problems with that and the GetAsyncKeystate combination :)
added on the 2012-04-10 18:37:58 by gopher gopher
"It’s common UI courtesy to show the Wait cursor when performing a long operation that requires the user to wait. "
added on the 2012-04-10 18:49:15 by Zplex Zplex
i'd like to repeat my self:

oh, come on!
I'm still waiting for a demo that fits in an animated mouse cursor.
Zplex: is it also common to _leave it_ after loading is done?
added on the 2012-04-10 19:08:02 by gloom gloom
gloom: I think he was referring to the actual demo. :))
saga musix: Well we had games/demos (I think) in fav icons, so it shouldn't take too long.

"It’s common UI courtesy to show the Wait cursor when performing a long operation that requires the user to wait. "

That, or some equivalent display of "Look, I'm busy, no need for the taskmanager, I did not crash yet". ;)
added on the 2012-04-10 19:42:11 by tomaes tomaes
Yeah, border flashing when loading applications in windows would be so much more cooler...
added on the 2012-04-10 20:54:43 by oasiz oasiz
tomaes, I know. ;)
I haven't had this issue either, at least not on my own machine, so I guess blueberrys explanation with the ordering of the API calls is plausible.

This might be naive, but has anyone who has the issue tried something as simple as just moving ShowCursor(0) inside the main loop? It would definitely be smaller than calling ShowCursor and PeekMessage, but does it actually work?
added on the 2012-04-10 21:22:25 by mentor mentor
added on the 2012-04-10 21:27:39 by las las
Actually it could be that only Intros using OpenGL are affected - but I wouldn't be to sure about that.
Calling ShowCursor(0) in the loop does not work - neither did SetCursor(0) do the job iirc.
added on the 2012-04-10 23:05:00 by las las
hmm, ye olde cursor issue. I continuously call ShowCursor() after processing an event ("// Note: hack to keep the cursor disabled/enabled").
At least that worked on Win2k/XP/Vista so far. (will check on my Win7 boxes)
added on the 2012-04-11 00:03:14 by xyz xyz