Is a mouse pointer in fullscreen guaranteed?

BlitzMax Forums/BlitzMax Beginners Area/Is a mouse pointer in fullscreen guaranteed?

Gabriel(Posted 2005) [#1]
With both the GL and D3D7 drivers, I get a visible mouse pointer in fullscreen. In previous Blitz versions, you never got one. Is it guaranteed that we're getting one now or is it safer to hide it and draw our own? The docs, as usual, say nothing.


Amon_old(Posted 2005) [#2]
Well, Dont know if this is of any help but I dont get a mouse pointer in fullscreen with either of the drivers.


Gabriel(Posted 2005) [#3]
Yep, that's a big help. Evidently I can't count on there being one and I will need to roll my own. Thanks for the info.


Amon_old(Posted 2005) [#4]
No prob. :)


ImaginaryHuman(Posted 2005) [#5]
Assume it will definitely be there. As a non-previous-blitz-user I have no reason to believe it shouldn't be


Gabriel(Posted 2005) [#6]
Assume it will definitely be there. As a non-previous-blitz-user I have no reason to believe it shouldn't be


Erm.. the first person to reply to this thread has already said there is no mouse pointer using either driver. That's plenty of reason for me to believe it's far from definite.


ImaginaryHuman(Posted 2005) [#7]
Oh, I didn't see that. Is that a bug then, shouldn't it be consistent?


FlameDuck(Posted 2005) [#8]
Is it guaranteed that we're getting one now or is it safer to hide it and draw our own?
It is safer to hide it and draw your own (software).

Is that a bug then, shouldn't it be consistent?
No, it hardware dependant. Your graphics card may or may not support a hardware cursor.

To be consistent, it is safer to create your own.


Gabriel(Posted 2005) [#9]
Is that a bug then, shouldn't it be consistent?


I'm not sure, it's probably not within the power of BlitzMax to ensure there is a pointer in fullscreen. It should definitely be in the docs though.


ImaginaryHuman(Posted 2005) [#10]
I see, so the pointer is controlled by the hardware and not by BlitzMax. . .. But surely the desktop always has a pointer, so why would it disappear with a new screen? Just one of those things eh.

Probably is a good idea to do your own cursor, but it then leaves you with the predicament that you have to manage the drawing/update of it, which might not be fast enough if your game only runs 25-30fps or so.


FlameDuck(Posted 2005) [#11]
But surely the desktop always has a pointer, so why would it disappear with a new screen?
I'm not really into the fundamentals of OpenGL/DirectX/Windows/whatever. The Desktop pointer however is also a software pointer (that is one drawn manually by Windows) providing the graphics card doesn't support it in hardware.

In this case, I would assume, that since Windows is no longer calling the shots, it would stand to reason that the pointer Windows renders, is no longer being drawn. It sounds pretty reasonable.

If you have a rather old gfx card (Riva TNT, early GeForce, anything worse) you can test it by chosing a set of pointers with lots of colors in them. Since the gfx card in question is only likely to have one or two bitplanes, Windows will switch to a software pointer, which will most likely a) disappear when switching to an OpenGL/Direct3D screen, or b) be replaced by the old, less colorful pointer.


ImaginaryHuman(Posted 2005) [#12]
Ok. Well good to know!


skidracer(Posted 2005) [#13]
It sounds more like a bug to me, Amon can you please post details of your system.


ImaginaryHuman(Posted 2005) [#14]
I guess it makes sense though, I have some memory of seeing specifications for older graphics cards that had to define whether or not it provided a hardware cursor. I would think that all modern systems pretty much come with them as standard. It would be nice to assume that they'd all have one, and really BlitzMax should take efforts to make sure one is supported even if that means it needs to be implemented by the o/s. Then it'd be more reliable. I think it likely though that in many cases people will want their own pointer in fullscreen anyway.

If we do have to manage our own mouse pointer, it'd be nice if it was easy to access the front buffer (there is an openGL command) in a way that allows a very small portion of the display to be updated with the mouse moving over it, at a high refresh rate.