Help! Why does this fail!
Blitz3D Forums/Blitz3D Beginners Area/Help! Why does this fail!
| ||
all, look at this code: Const vh_scrwidth% = 1024 Const vh_scrheight% = 768 Const vh_scrdepth% = 0 Const vh_scrmode% = 0 ; 0 : auto - windowed in debug, fullscreen in non-debug) ; 1 : fullscreen mode ; 2 : windowed mode ; 3 : scaled window mode Graphics vh_scrwidth,vh_scrheight,vh_scrdepth,vh_scrmode print_debug_info() While Not KeyHit(1) Wend End ; ***************************** ; ONLY FOR DEBUGGING PURPOSES ; ***************************** Function print_debug_info() totalDrivers%=CountGfxDrivers() r_dec%=0 : g_dec%=0 : b_dec%=0 r_hex$=0 : g_hex$=0 : b_hex$=0 r_dec=ColorRed() : g_dec=ColorGreen() : b_dec=ColorBlue() r_hex=Hex$(r_dec) : g_Hex=Hex$(g_dec) : b_Hex=Hex$(b_dec) Cls Print "Date : " + CurrentDate() Print "Time : " + CurrentTime() Print "PlayField Width : " + GraphicsWidth() Print "PlayField Height : " + GraphicsHeight() Print "PlayField Depth : " + GraphicsDepth() Print "PlayField Memory : " + GraphicsBuffer() Print "PlayField Drawing Color (DEC) : " + r_dec + " " + g_dec + " " + b_dec Print "PlayField Drawing Color (HEX) : " + Right$(r_hex,2) + " " + Right$(g_hex,2) + " " + Right$(b_Hex,2) Select JoyType() Case 0 Print "Joystick : None" Case 1 Print "Joystick : Digital" Case 2 Print "Joystick : Analog" End Select For t = 1 To totalDrivers Print "Installed GFX driver(s) : " + GfxDriverName$(t) Next Print "Total GFX memory on card : " + TotalVidMem() + " " + "(Bytes)" + " " + (TotalVidMem() / 1024) + " " + "(Mb)" Print "Avail GFX memory : " + AvailVidMem() + " " + "(Bytes)" + " " + (AvailVidMem() / 1024) + " " + "(Mb)" Print "Operating system installed : " + SystemProperty("OS") Print "CPU installed : " + SystemProperty("CPU") End Function It works PERFECTLY in Blitz3D, but when run in BlitzPlus, all I get is a BLACK screen? Can someone explain???? I H-A-T-E when that happens! |
| ||
Print is now for console mode only. Here is a program shell I wrote for little test programs in BlitzPlus. Graphics 640, 480, 0, 2 Global xPrint = 10 , yPrint = 10 ;********************************************* Write "Hello " Print "world." Flip : FlushEvents : WaitEvent : End ;********************************************* Function Print( s$="" ) Text xPrint, yPrint, s yPrint = yPrint + 15 xPrint = 10 End Function Function Write( s$="" ) Text xPrint, yPrint, s xPrint = xPrint + StringWidth( s ) End Function This is good enough for one screen of output. Anything larger and you should write a real BlitzPlus program. Or just dump everything to the Debuglog. |
| ||
thanks Floyd, but that does still not explain why my code works perfectly in Blitz3D and fails totally in BlitzPlus Hansie |
| ||
What is Scrdepth=0 supposed to do ? I thought that was the number of colours (well bits pwe pixed, thus giving colours) |
| ||
Zace, if the color depth is set to 0, then Blitz automatically detects it and uses what it thinks is best. Hansie, are you using a beta of Ed from Mars' IDE? It does not send Print statements to a console. If you run it straight from the BlitzPlus IDE (in debug mode), it works fine, though it pops up a console window for the Print statements. |
| ||
BlitzPlus uses Print for console mode only. Once you set a graphics mode Print is not available. This is why my code provides a simulated Print, actually using Text. Color depth is set to 0 because of windowed mode graphics, i.e. mode=2. Depth is ignored. The window can't be any color depth other than what the desktop is using. This means you could use Graphics 640, 480, 573, 2 with the same result. |
| ||
Print *is* available; it just opens its own console window. |
| ||
You're right. I tend to forget things like that. My programs would be console mode only, or graphics oriented. The original code at the top of this thread *does* print to a console window. But that window is not on top, so you can't see it. You can get to the console window with Alt-Tab. Or run in Debug mode so you can select from the task bar. |
| ||
Thank you everyone, And you are all correct Because I have just recently changed from Blitz3D to BlitzPlus, I *FORGOT* that the "PRINT" command opens up a console window (behind my fullscreen). The solution - in ALL cases when using fullscreen in BlitzPlus is to use TEXT command only :-D |