Fullscreen bug with SDL-1.0.0 and Win98/DX?

I have just installed and built the new version of SDL-1.0.0 on Win98
using VC++ 6.0. Then, I rebuilt and linked my old apps (built previously
with SDL-0.10.0) with the new SDL.lib and SDLmain.lib libraries, and
made sure the new SDL.dll is in my path, and removed any old lib’s and
dll’s. I also recreated my project files to make sure everything is
pristine. There is definately nothing from the older version of SDL
conflicting in any way. Compilation of SDL and my apps went without a
hitch.

When this line executes:

gScreen=SDL_SetVideoMode(1024, 768, 0,
SDL_HWSURFACE|SDL_FULLSCREEN|SDL_DOUBLEBUF);

the screen flickers then drops to the Windows desktop, and execution
stops completely (no atexit() cleanup or anything). Nothing after this
line gets executed, and the stderr.txt and stdout.txt files are empty
(no debug info in them at all). After this line executed before (using
SDL-0.10.0) my app went into a fullscreen double buffered mode and ran
fine (except that SDL-0.10.0 would always draw to the visible front
buffer and not the back flip buffer. I understand this bug has been
addressed and corrected though).

If I use this line instead, the app goes into windowed mode and runs
correctly (like it did using SDL-0.10.0):

gScreen=SDL_SetVideoMode(1024, 768, 0, SDL_HWSURFACE); // OK on both
versions of SDL

After playing with the flags, it seems to be the SDL_FULLSCREEN flag. As
soon as I put this flag in I get the problem described above regardless
of any other flag settings. This line will crash on the new version:

gScreen=SDL_SetVideoMode(1024, 768, 0, SDL_HWSURFACE|SDL_FULLSCREEN); //
OK on old version, crashes on new version

Does anyone else have this problem, or am I the problem :wink: My apps
(unchanged) that ran fullscreen using SDL-0.10.0 don’t work anymore,
and my apps (unchanged) that run windowed run correctly with either the
old or the new versions of SDL.

Thanks,
Kelly

gScreen=SDL_SetVideoMode(1024, 768, 0, SDL_HWSURFACE|SDL_FULLSCREEN); //
OK on old version, crashes on new version

I believe this is a bug in the new version of SDL.
I don’t have my Win32 environment handy, so if you could debug this,
that would be great. (I know, fullscreen debugging is a pain, but
does VC++ help you out there?)

See ya!
-Sam Lantinga (slouken at devolution.com)

Lead Programmer, Loki Entertainment Software–
“Any sufficiently advanced bug is indistinguishable from a feature”
– Rich Kulawiec

Does anyone else have this problem, or am I the problem :wink: My apps
(unchanged) that ran fullscreen using SDL-0.10.0 don’t work anymore,
and my apps (unchanged) that run windowed run correctly with either the
old or the new versions of SDL

I’m using GCC and I experienced the same problem using SDL-0.10.0.

regards
ThomasOn Tue, 23 Nov 1999, kashe wrote:

OK, as long as I know this is a bug in SDL and not anything I’m doing I’ll
spend some time debugging DX on SDL.

Sam Lantinga wrote:

gScreen=SDL_SetVideoMode(1024, 768, 0, SDL_HWSURFACE|SDL_FULLSCREEN); //
OK on old version, crashes on new version

I believe this is a bug in the new version of SDL.
I don’t have my Win32 environment handy, so if you could debug this,
that would be great.

The easiest way to debug a DX fullscreen app is to get into remote debugging
with another machine, but I’m kinda hardware challenged! I have used a couple
techniques to debug DX fullscreen applications on one machine (the most
useful one is to immediately unlock the surface right after locking it, and
comment out the proper unlock function further down. The memory pointer is
still valid for use (for how long I don’t know, but I’m only using it for the
one frame anyway), and the app will run OK and allow you to get into the
debugger). Another easy method is the tried-and-true fprintf(stderr, “Got
here!”) or logging values to a text file; crude, but it works and is
sometimes faster/less of a pain than doing the lock/unlock thing. Having used
Watcom 10.6 for a couple years (it is end of life now…bummer) I’m not real
familiar with VC and if it has anything to aid fullscreen debugging, but the
lock/unlock trick should be enough. I will attempt to debug this starting
tonight I hope!

(I know, fullscreen debugging is a pain, but
does VC++ help you out there?)

See ya!
-Sam Lantinga (slouken at devolution.com)

Lead Programmer, Loki Entertainment Software

“Any sufficiently advanced bug is indistinguishable from a feature”
– Rich Kulawiec

Kelly