Blitz3D Openscreen bug in Windows 7
Archives Forums/Blitz3D Bug Reports/Blitz3D Openscreen bug in Windows 7
| ||
I am not sure if this has been reported before but there seems to be a problem with creating a window once fullscreen has been initiated.Graphics3D 800,600,0,1 Graphics3D 800,600,0,1 Repeat Cls Text 10,10,"Hello" Flip Until KeyHit(1) Whilst to look at the code it may seem very trivial. What's the point in trying to call Graphics3D twice? Well basically this means any Blitz games that allow you to change screen resolution or colour depth ingame will fail when you try to do so and are now broken. The problem definitely happens when you try to go fullscreen because changing the code to:- Graphics3D 800,600,0,2 Graphics3D 800,600,0,1 or anything crazy like Graphics3D 800,600,0,2 Graphics3D 800,600,0,2 Graphics3D 800,600,0,2 Graphics3D 800,600,0,2 Graphics3D 800,600,0,2 Graphics3D 800,600,0,1 will not throw an error. This problem happens on 3 Windows 7 machines and also my VIS Mirage 3 on a crappy Vista laptop, but works fine in XP. Try running this code on your machine and see if it bombs out with an unable to set graphics mode error as well. |
| ||
Don't have Blitz3D installed any more but have you tried sticking an EndGraphics() in first? [edit] Just installed 1.106 to test. All working fine here, even without EndGraphics(). Nvidia 8500GT 512MB, Windows 7. Last edited 2010 |
| ||
Hi Dave, ok I tried:-Graphics3D 800,600,0,1 EndGraphics() Graphics3D 800,600,0,1 Repeat Cls Text 10,10,"Hello" Flip Until KeyHit(1) but still the same. As far as I was aware though sticking in EndGraphics() simply reverts back to text mode (command line Print command etc) and has nothing to do with actually shutting a window. Last edited 2010 |
| ||
I don't think there's a problem... all my games can change resolution and they do work on win7. I think EndGraphics is the key here too... otherwise, you're just trying to create on fullscreen window on top of another - and that's not possible ;) |
| ||
Well it doesn't still work for me no matter what I try. Are your Win7's 64 bit? Last edited 2010 |
| ||
Working fine here. |
| ||
No, mine's 32-bit Windows 7. Which is potty cos my system is 64-bit. :) |
| ||
I am on win7 64 bits. No problem here. Maybe a driver issue? |
| ||
Nice, so yet again I've got a Blitz3D bug that only happens to me. Have been trying everything I can think of and still nothing. Downloaded all updated drivers too. I guess back to the drawing board again. :( hhttp://www.enaysoft.co.uk/parp/Graphics3Dbug.jpg Last edited 2010 |
| ||
Are you sure your card supports 800x600 in fullscreen? (I've seen some that don't!) Try something like this: intModes=CountGfxModes() If GfxMode3DExists (800,600,32) Graphics3D 800,600,32, 1 Print "There are " + intModes + "graphic modes available:" ; Display all modes including width, height, and color depth For t = 1 To intModes Print "Mode " + t + ":" + GfxModeWidth(t) + "x" + GfxModeHeight(t) + " x " + GfxModeDepth(t) +" bpp" Delay 100 Next WaitKey() Else RuntimeError "nope, 800x600 is not supported" End If End Also, make sure to have the latest B3D (1.106) |
| ||
Maybe it's chaqnging too quick? I kow that sounds silly, but it's something maybe to consider?Graphics3D 800,600 Delay 500 ClearWorld True,True,True EndGraphics Delay 500 Graphics3D 800,600 |
| ||
Hi guys, thanks for your suggestions :) I tried your code Malice but it was still the same. There isn't any problem with the screen resolution, the problem occurs in 1024x768 as well. Basically any resolution and only once a full screen resolution has already been set. The following code works for example Graphics3D 800,600,0,1 ;Graphics3D 800,600,0,1 Repeat Cls Text 10,10,"Hello" Flip Until KeyHit(1) It is only when you try to call a new Graphics3D command again once that a full screen resolution has been set that the problem occurs, starting in any screen resolution and then opening into a new screen resolution (same or old) that the problem occurs. Yes, using latest B3D (1.106) I am convinced this is a bug with certain gfx cards in B3D. If I manually set the Graphics3D commands all to xres,yes,depth,2 instead of xres,yes,depth,1 (basically windows mode) then everything runs fine. Also runs fine if I leave the code as it is and run in debug mode since that also runs in windowed mode too. I guess I will just have to change all the code and take out instances of screen resolutions being changed in order to fix the problem since as it stands there is absolutely nothing I can do to fix this. |
| ||
Try my code, which actually passes a value for the bit depth, instead of 0. Maybe there lies the culprit. It could be detecting the 'max resolution' wrong once it's in fullscreen already. or just try graphics3d 800,600,32,1 twice and see if it works. (or ,16 or ,24 depending on what your desktop bpp is) |
| ||
Hi Slotman, when I tried your code it detected a valid resolution but then failed when trying to open it a second time. THe code originally uses Graphics3D 800,600 only I only put the 0,1 and other such code in there etc after the resolution to stop it going to windowed mode or full screen when I didn't want it too when I had debug on and to show here that it wasn't a colour depth resolution (or even resolution based for that matter) just that I was calling the command twice and it failing. Turns out that it doesn't matter what values I put in after the resolution as it always fails no matter what. So Graphics3D 800,600 twice is enough to make it fail, I will probably have to come back to this later for now, but I will post back if I ever figure out what was wrong. |