WinBlitz 3d

Blitz3D Forums/Blitz3D Programming/WinBlitz 3d

Picklesworth(Posted 2005) [#1]
What ever happened to WinBlitz 3d? I have a program where I desperately need it to embed a web browser inside of my app (which would consist of many moveable windows, so I can get away with it). So, is WinBlitz 3d still existant, and does it have any support so that I can persuade the author to make an internet window gadget thingy?

Otherwise, I recall there being another way to do that, so if it is in fact completely stable, could you show me that too please?


Erroneouss(Posted 2005) [#2]
I have WinBlitz3D.
I emailed the author last month.

I'll exchange something for a .zip of winblitz emailed to
you. Tell me when APOE is going to be finished!!! (Not
exactly...obviously...but about how much longer do I have
to wait?????) And I will email it to you. I WANT APOE!
APOE looks great! If you don't finish it, I will have to
use my cruddy one I made!

You tell me how much longer I have to suffer for waiting for APOE, and you get WinBlitz3D! :D


wizzlefish(Posted 2005) [#3]
I want WinBlitz3D!


Picklesworth(Posted 2005) [#4]
Yay! A chance to advertise my ridiculously slowly made program :) um...
Progress is being posted and updated in the APOE worklog. I'm going to do more work now.

Basically, it's all smooth sailing from here to the research beta release (which I mentioned. It's a release without any saving planned yet, so that I can collect feature requests and bug reports, which I will be more easily able to integrate because there's no file format to worry about). I still need to add joints, but they are stored the same way as geometries, and the coding isn't much different for them. Advanced objects and other more cool feautres are not in for the first release except for ropes. I expect an early February/late January release (although, I said the same thing last month)... Yes, I am slow.

Do you think there's any chance of getting explorer embedded in a winblitz application?


nadia(Posted 2005) [#5]
A description or link please on what WinBlitz3D is/does...
thanx!


Picklesworth(Posted 2005) [#6]
It is a gui for blitz 3d that creates windows and gadgets via Windows.


jfk EO-11110(Posted 2005) [#7]
I used it for Texturewobbler ( http://www.melog.ch/wobbler/ ). It's pretty good, tho that time it still had some bugs that required to ship around them.

The diffrence to other GUIs is, it will create a System Window and then Hook the Blitzwin onto this created window. The gui elements may be used in the entire system window, but blitz accesses only the blitz window. This way it may be impossible to do custom gfx operations in the system gadgets zones - IF i remember right, it's some months ago when I used it the last time.


Picklesworth(Posted 2005) [#8]
Who made it anyway? I need to force him to add an explorer window thing.


Erroneouss(Posted 2005) [#9]
Its been dead for a while now. For some reason, around
here, lots of people say that they made WinBlitz... Very
odd. But the author doesn't work on it anymore. I emailed
him a month ago and he said it was dead. But do you still
want it emailed to you? It is no longer available anywhere
online.


Picklesworth(Posted 2005) [#10]
I don't know which version I have - just that it's referred to as the freeware version... I think it's the oldest one though because I lost interest after getting it when it was first given out.
So sure, please email it to me at DylanMcCall@...

edit:
Now that I realize that it seems to be quite open source, I'm wondering if anyone here has some idea how to get the windows explorer window to come up (like with the file requester) except running a web page (simply by changing the starting directory to a web url (thank god for weirdos suing MS for no reason), which I don't know how to do) and embedded in the main program window?
Oh good god. I had hoped that I would never be one of those dumb people who parrots the same request 6 times in the same thread each within one post of eachother... At least I'm not bumping the thread. Much.


Conan(Posted 2005) [#11]
Hey! I Want WinBlitz3D Too!!!


Erroneouss(Posted 2005) [#12]
I don't know your email Conan.
Pickle: Its sent.


Conan(Posted 2005) [#13]
Oh! yeah, sorry!
rohanmaster@...


Erroneouss(Posted 2005) [#14]
Ok. Thanks. Sorry for the delay, I have been working in OpenGL+Pascal like crazy lately.

Its comin right now.


Conan(Posted 2005) [#15]
Thanks, It's real good! At least I like it...


Damien Sturdy(Posted 2005) [#16]
Can i get a copy too Ducky? ^.^ Pretty please.... :D


Erroneouss(Posted 2005) [#17]
Sure thing Cyg!
Itsa comin!


Picklesworth(Posted 2005) [#18]
I agree, it's a great gui and I plan to use it from now on.
It doesn't match my current insane plans though, which is a shame, but I think it may end up doing so though.


John Blackledge(Posted 2005) [#19]
Can I be a pain and ask for a copy too?
I did see an early version of this, and it looked like it had potential. Shame it disappeared.
Cheers.


Picklesworth(Posted 2005) [#20]
Sent.


{cYan|de}(Posted 2005) [#21]
send to mrcyanide@... please, posted on bcoder a day ago just noticed this topic! :D


Picklesworth(Posted 2005) [#22]
Done.

Done for you too Tim.


Tim(Posted 2005) [#23]
can you send to makai@... too ? would be great! thx a lot


V(Posted 2005) [#24]
Can you rename it to a .jpg and post it as a screen shot in the gallery so we can all download it?


jfk EO-11110(Posted 2005) [#25]
Would somebody please upload it somewhere, so people don't have to search it every other day? I have an old version, I'd host it, but I think it would be better to upload the latest Version.


jfk EO-11110(Posted 2005) [#26]
Ok, here's the version I got, beta 0.16b. He says it's the latest release, but I'm not sure if he really stopped the project:
http://www.melog.ch/dl/WinBlitz3Dbeta016b.zip


Picklesworth(Posted 2005) [#27]
That's what I have.

I've been thinking actually, that it is not actually too hard to do this, and I'm wondering why so few people have tried?


jfk EO-11110(Posted 2005) [#28]
I think most of us Basic Coders don't like windows very much (VB anyone? :P ). Many come from the Amiga and ST. They are kind of not fully assimilated :)

Personally I still don't like the whole Windows stuff. I have great sympthy for Apps that are skipping the WinGui and use their own (and remain portable, BTW), like Lightwave,Blender or the MAGIX products.


SkyCube(Posted 2005) [#29]
Wow! Is WinBlitz really that good a GUI? I see lots of people want it. Is it any better than the other GUIs available on the Blitz website's Toolbox section?


Kev(Posted 2005) [#30]
Hi All

Im the coder that wrote WinBlitz3D yes its been close to a year ive done some updates for winblitz3d i will make the latest version available over the coming days, these include blitz3d debugger fixes and minor gadget fixes plus little other bits.

anyway time out from blitz was needed because the wife and i have just had a son. plus i other problems at home made it almost impossable to work on it.

so those still intrested in an updated version it will be available soon.

Kev


Alienforce(Posted 2005) [#31]
Great kev, Thanks for your work with WinBlitz3d...
looking forward for the update.

/Alienforce


John Blackledge(Posted 2005) [#32]
Thanks, Kev. Yes, please.
Looking forward to it, and thanks for taking the time to do and then share the work that I, for one, am not capable of doing.


Alienforce(Posted 2005) [#33]
Any updates yet Kev ?

/Alienforce


Picklesworth(Posted 2005) [#34]
It's a good UI because it is a real Windows GUI. My favourite part about that, is that it supports CapsLock, Insert, Copy&Paste (I just put this in a second ago with a handy flag that I found in the Win32 constants), End, Home, and Undo (Which I just discovered works)!!.
And on top of all that, it also looks like Windows, thus producing a very professional look.

I'm doing a lot with it right now. I may make a tutorial if I ever am bored, which would include a load of alterations that I made.


Naughty Alien(Posted 2005) [#35]
..hey folks...I wanna try this Winblitz3D too..email it to me too please...


Kev(Posted 2005) [#36]
Hi All

Ive made available the latest version of winblitz3d this version contains the debug mode fix and other bits. ive put this project on hold while i get to grips with blitzmax.

http://myweb.tiscali.co.uk/blitzbasic/WinBlitz3D.zip

kev


Alienforce(Posted 2005) [#37]
Thanks Kev,

Good luck with the gripping :)

/Alienforce


Alienforce(Posted 2005) [#38]
FYI:

There is a conflict with blitzui.decls atleast for me :)

Temp solution move blitzui.decls out of userlib ;)

/Alienforce


Picklesworth(Posted 2005) [#39]
Nice! Thanks Kev :D

While you're here, I may as well tell you this:
As it is, trying to copy or paste with ctrl-c and ctrl-v will crash the program.
BUT! It's not a bug! it's a feature!
Const WM_COPY = $0301
Const WM_PASTE = $0302
Add those constants into the text fields, and the user can copy and paste their contents :D


Kev(Posted 2005) [#40]
thanks for the tip Mr. Picklesworth, i will add them now so i dont forget when coming back to working on winblitz3d.

Alienforce blitzmax's gripping coming along nice, blitzmax is great to use. ive a little blitzplus gui style module working in max. but im looking at a convert 'foxtoolkit' http://www.fox-toolkit.org/ now that i managed to get blitzmax working under linux :) ive never used linux before.

kev


Alienforce(Posted 2005) [#41]
Looking forward to some screenshots from your Blitzmax Gui.

Keep up the good work.

/Alienforce


cyberyoyo(Posted 2005) [#42]
Hey guys I just found out about that great library. It rocks.
But I have a little problem in my program:
I am using this event loop (very inspired by the examples' code) to manage my two radio button groups.

The problem is that it seems to handle only the first event. If I select one of the radio buttons and then I select other buttons, only the first buttonb click will be processed.
Anybody know what I am doing wrong?
Thanks in advance.
; loop until user close's window.
While events <> $803

	events = WaitEvent()

	Select events									
		Case $401
			GadgetSelected = EventSource()		
			Select GadgetSelected			
				Case RADIObutton_1
					screenWidth=640					
					screenHeight=480					
				Case RADIObutton_2					
					screenWidth=800					
					screenHeight=600					
				Case RADIObutton_3
					screenWidth=1024					
					screenHeight=768					
				Case RADIObutton_4
					windowed=1					
				Case RADIObutton_5
					windowed=2					
			End Select	
	End Select		
Wend



Kev(Posted 2005) [#43]
Alienforce no pics just yet, i post some as soon as ive a working module.

cyberyoyo can you explain a little more your problem, what windows os are you using? the example below works fine.


; 
Include "../WinBlitz3D_Include.bb"

; create gui window.
Global GUIwindow = CreateWindow("WinBlitz3D Buttons Example",10,15,300,200,0,2)

Global RADIObutton_1 = CreateButton("Click Me 1",10,10,100,20,GUIwindow,3)
Global RADIObutton_2 = CreateButton("Click Me 2",10,30,100,20,GUIwindow,3)
Global RADIObutton_3 = CreateButton("Click Me 3",10,50,100,20,GUIwindow,3)
Global RADIObutton_4 = CreateButton("Click Me 4",10,70,100,20,GUIwindow,3)
Global RADIObutton_5 = CreateButton("Click Me 5",10,90,100,20,GUIwindow,3)

; loop until user close's window.
While events <> $803

	events = WaitEvent()

	Select events									
		Case $401
			GadgetSelected = EventSource()		
			Select GadgetSelected			
				Case RADIObutton_1
					Notify "RADIObutton_1"
					
				Case RADIObutton_2					
					Notify "RADIObutton_2"

				Case RADIObutton_3
					Notify "RADIObutton_3"

				Case RADIObutton_4
					Notify "RADIObutton_4"

				Case RADIObutton_5
					Notify "RADIObutton_5"

			End Select	
	End Select		
Wend
End



kev


Picklesworth(Posted 2005) [#44]
Asked for help with something... but never mind, I got it... sort of. Bit of a hack job, but I'm just glad to have a solution that works :D

What is the $401 event checking for? Is there a specific window message to check if a line on a list view is selected?


cyberyoyo(Posted 2005) [#45]
kev:
I am using XP SP1 (maybe that's the problem)
but the problem actually is if I click several radiobuttons, the additional events are not processed. Only the first radiobutton event is ever processed.
For example if I select one resolution, then change my mind and select another one, the first choice is processed but not the second one.
It does the same for all radiobuttons, regardless of their grouping.


cyberyoyo(Posted 2005) [#46]
Oh and about your example code: the notify calls do work (the examples in the lib are all working) but strangely enough my example doesn't work. And the variables are declared global and everything.


Kev(Posted 2005) [#47]
cyberyoyo im using winxp sp1, can you email me some example code? kev12340poole@...

Mr. Picklesworth $401 is the gadget event code, aka like blitzplus. listview's with icons are not working(buggy), use them without icons and there fine.

kev


fall_x(Posted 2005) [#48]
This is great... But is it possible to use the windows gui elements inside the blitz window?
So for instance, if you make a 3D game, but want a windows menu or something similar? (actually I need it so I can add a text field that users can use to chat with eachother).
Maybe it is, but all the examples opened a new window...

EDIT : ok, so I modified the CreateWindow function so that it doesn't hide the blitz window (it still tries to get it's handle), it doesn't create a new window, and it returns the blitz window handle, and now all the gui stuff is added on the blitz window, which is good.
Unless someone has a reason why this isn't advisable.
I was just wondering, would it be possible to make the gui elemants transparant? :)


Damien Sturdy(Posted 2005) [#49]
Fall_x... could you post that? i couldnt get that to work, and it was the reason i couldnt use this in a few projects!

:D


Picklesworth(Posted 2005) [#50]
GUI elements are transparent with a Windows style constand I found yesterday... Don't remember it though. Check www.msdn.com for the name, then google it for the value.


fall_x(Posted 2005) [#51]
@ Cygnus : here it is, I only tested it with one of the examples that came with it (button.bb) and it works, but maybe not with everything... and maybe only on some windows platforms (I'm at work, using win2000, I'll test with xp later today).
it's quick and dirty, meaning I just commented out some sections etc, but anyway :

Function CreateWindow(title$,x,y,width,height,group=0,style=0)

	Local CLASSbank
	Local WINBLITZ3D_CLASS_NAME$ = "WinBlitz3D_CLASS"
	Local statusCLASS$ = ""
	Local hwnd
	Local statusbar

	; create class and winproc function.
	If FIRST_CREATE_CLASS = 0 Then

		; hide the blitz runtime window.
		RUNTIME_Window$ = "Initializing GUI"
		AppTitle RUNTIME_Window
		runtimewindow = apiFindWindow("",RUNTIME_Window$)
		;apiShowWindow runtimewindow,SW_HIDE

		; INITCOMMONCONTROLSEX struct
		CommonControls = CreateBank(8)
		PokeInt CommonControls,0,BankSize(CommonControls)
		PokeInt CommonControls,4,ICC_WIN95_CLASSES

		; Registers and initializes the common controls.
		bm = apiInitCommonControls(GRAB_BankAddr(CommonControls))

		; create the winproc function.
		WinProcBank = CreateBank(1256)
		Restore CREATE_WINPROC_FUNCTION
		Repeat
			Read e_data
			If e_data = 999 Then Exit
			PokeByte WinProcBank,next_entry_data,e_data
			next_entry_data = next_entry_data + 1
		Forever

		; location offset where to copy defwindowproc data.
		winproc_poke_offset = next_entry_data

		; store address of bank to hold winproc return values.
		WinProcReturn = CreateBank(124)
		WinProcReturnAddr = GRAB_BankAddr(WinProcReturn)

		; poke the address of the bank to store winproc return values.
		PokeByte WinProcBank,03,WinProcReturnAddr And 255
		PokeByte WinProcBank,04,WinProcReturnAddr Shr 8 And 255
		PokeByte WinProcBank,05,WinProcReturnAddr Shr 16 And 255
		PokeByte WinProcBank,06,WinProcReturnAddr Shr 24

		;
		defwinbank = CreateBank(256)
		Restore DEF_WINDOW_PROC
		next_entry_data = 0
		Repeat
			Read e_data
			If e_data = 999 Then Exit
			PokeByte defwinbank,next_entry_data,e_data
			next_entry_data = next_entry_data + 1
		Forever

		; get thunk to defwindowproc
		USER32 = apiGetModuleHandle(GRAB_StringAddr("user32.dll"))
		DefProcA = apiGetProcAddress(USER32,"DefWindowProcA")

		; poke defwindowproc thunk memory pointer.
		PokeByte defwinbank,18,DefProcA And 255
		PokeByte defwinbank,19,DefProcA Shr 8 And 255
		PokeByte defwinbank,20,DefProcA Shr 16 And 255
		PokeByte defwinbank,21,DefProcA Shr 24

		; copy defwindowproc bank to winproc bank.
		CopyBank defwinbank,0,WinProcBank,winproc_poke_offset,26

		FreeBank defwinbank

		; create winblitz3d's class.
		;WINBLITZ3D_CLASS_NAME$ = "WinBlitz3D_CLASS"
		CLASSbank = CreateBank($30)
		PokeInt CLASSbank,$00,BankSize(CLASSbank)
		PokeInt CLASSbank,$04,CS_HREDRAW Or CS_VREDRAW Or CS_GLOBALCLASS
		PokeInt CLASSbank,$08,GRAB_BankAddr(WinProcBank)
		PokeInt CLASSbank,$14,apiGetModuleHandle(0)
		PokeInt CLASSbank,$18,apiLoadIcon(hModule,32512)
		PokeInt CLASSbank,$20,apiGetSysColorBrush(COLOR_BTNFACE)
		PokeInt CLASSbank,$28,GRAB_StringAddr(WINBLITZ3D_CLASS_NAME$)

		; attempt to register the class.
		WinBlitzClass = apiRegisterClass(GRAB_BankAddr(CLASSbank))

		If WinBlitzClass = 0 Then
			DebugLog "Error Creating WinBlitz3D Class!"
			Stop
		EndIf

		;WinProcBlitz3D = apiGetWindowLong(runtimewindow,GWL_WNDPROC)
		;apiSetWindowLong runtimewindow,GWL_WNDPROC,GRAB_BankAddr(WinProcBank)

		FIRST_CREATE_CLASS = 1

	EndIf

	If group = 0 Then
		group = apiGetDesktopWindow()
	EndIf

	Select style

		Case 0 ; borderless popup window
			style = WS_POPUP

		Case 1 ; no resize with close button
			style = WS_CAPTION 	Or WS_SYSMENU Or  WS_POPUP

		Case 2 ; resize and statusbar
			statusCLASS$ = "msctls_statusbar32"
			style = WS_MINIMIZEBOX Or WS_SYSMENU Or WS_TABSTOP Or WS_THICKFRAME Or WS_VISIBLE

	Default
		; passed own style
		style = style				
	End Select

	;hwnd = apiCreateWindow(0,WINBLITZ3D_CLASS_NAME$,title$,style,x,y,width,height,group,0,apiGetModuleHandle(0),0)
	;apiShowWindow hwnd,$5
	;apiUpdateWindow(hwnd)

	hwnd=runtimewindow

	; attach window status bar
	If statusCLASS$ = "msctls_statusbar32" Then 		
		statusbar = apiCreateWindow(0,statusCLASS$,"",WS_CHILD Or WS_VISIBLE,0,0,100,100,hwnd,0,apiGetModuleHandle(0),0)	
		statuspartsbank = CreateBank(255)
		apiSetWindowLong statusbar,GWL_USERDATA,statuspartsbank
	EndIf
	
	;
	bank = CreateBank(256)
	PokeByte bank,0,BB_ID_WINDOW
	PokeInt bank,4,statusbar
		
	apiSetWindowLong hwnd,GWL_USERDATA,bank
		
	Return hwnd
	
End Function



fall_x(Posted 2005) [#52]
Hmmm... as soon as I print something on the screen with the blitz commands, it starts flickering. Don't know if this can be solved.
I tried playing around with double buffering but this didn't work (and I don't think it could be the solution).
Another option would be using the Create3DScene function which parents the blitz screen to the new window, but I don't think you'll be able to do full screen stuff then (but I could be wrong).
So if someone finds an ideal solution, I'd be very happy :)


wizzlefish(Posted 2005) [#53]
Someone send it to me:
steven -AT- noenemies -DOT- com


fall_x(Posted 2005) [#54]
the link is somewhere in this topic, so just download it yourself :)


Damien Sturdy(Posted 2005) [#55]
Cheers for that, I'll check that out later :)


Picklesworth(Posted 2005) [#56]
I tried shoving Winblitz into the runtime window and got a load of trouble. I think it's some style flag that Blitz uses...


Kev(Posted 2005) [#57]
I could not get gadgets working from within the blitz runtime window it seems that flip causes winblitz3d lots of problems. if anyone does find a fix for this email me the information and i would add the feature.

kev


Damien Sturdy(Posted 2005) [#58]
Heh. I tried the above, but the gadgets keeps dissapearnig. Oh well. Cheers anyway :)


Picklesworth(Posted 2005) [#59]
There is no reason why I could possible explain this... But there's a chance that I just fixed the blitz runtime-window problem. And totally by accident.

BB_3D_View = Create3DScene(VisWin,0,0,width-255,height-75,0)
    style = apiGetWindowLong(BB_3D_View,GWL_STYLE)
    style = style Or WS_CLIPSIBLINGS ;Why this makes it work, I will never know.
    apiSetWindowLong(BB_3D_View,GWL_STYLE,style)


The reason why this seems crazy is because WinDowse claims that the WS_CLIPSIBLINGS style already was applied to the runtime window. Furthermore, the problem that it fixed was the runtime window messing with its children - not its siblings.

Um... That was nonsense. I'm good at nonsense.
Basically, setting that style on the Blitz Runtime window appears to make it possible to parent another totally operating win32 window to it.