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