New WinBlitz3D GUI Demo
Blitz3D Forums/Blitz3D Programming/New WinBlitz3D GUI Demo
| ||
Hi *EDIT - http://myweb.tiscali.co.uk/blitzbasic/WinBlitz3D.zip *EDIT this is an old post updated link. thanks kev |
| ||
Looks very promising. I assume the DLL isusing the windows apis gui functions? Is it going to support menus? |
| ||
Looks awesome... this would be a dream for all 3D application developer. Keep going. :) |
| ||
I get the wierd event message boxes when clicking any of the gadgets (apart from buttons), and the cube only spins while the mouse is moving. |
| ||
Works fine here. The 3D bit fluctuates in fps a lot, but otherwise it's going on well. :) |
| ||
jfk, yes menus will get added. Chris, the events are correct. there pointers to the gadget. ive added the messagebox to track events thats all. the mouse move event is used to spin the cube. TeraBit, that could be my fps code. kev |
| ||
I'll be very interested if you can get the gadget layouts to resize like B+. |
| ||
looks really cool but howcome the gadgets are 'old' :p looks awesome and im def. getting it when its propperly done :D |
| ||
it looks a bit "Win95" to me, is it because of the font used, or? |
| ||
|
| ||
Hmmmm it must be my computer then.... |
| ||
I made it look like that using a manifest file in XP. |
| ||
Impressive work, Kev. |
| ||
Cool stuff. I can't wait to give it a try! |
| ||
halo, i will look into resizing soon. im just finishing menus there coming along fine. chris i have your email, i will email you back sometime today. kev |
| ||
Why, oh why, oh why has it taken so long for somebody to do this? Bloody brilliant work Kev. :) Now the 2 standard questions : when, and how much? ;) |
| ||
Skitchy i hope to have a fully usable version of the gui within a couple of weeks. i will be releasing as freeware, with a small charge for commercial use. kev |
| ||
Excellent. Thanks :) |
| ||
Excellent work Kev ! Thank you in advance :) |
| ||
The same thing is possible with B+ and B3D. |
| ||
Ed: not entirely, you have to 'hack' by sending messages using a text file which is...a dumb method. |
| ||
Or via network commands. |
| ||
true, this is for people that did not buy blitz plus. and dont mind using .dll for extra GUI commands. kev |
| ||
It's true. This way is more easier for communication. |
| ||
yes to process all gui events, for a mixed 3D\GUI app i do this. [CODE] ;wait for close window event... While Process_EVENTS<>$803 Process_EVENTS = Waitevent(0) ; get events Select Process_EVENTS Case $401 ; gadget event. End Select ; render and update 3d world. UpdateWorld RenderWorld Flip Wend [/CODE] like blitz+ event system. kev |
| ||
I've tested DLL solution. http://www.3dgametool.com/Eddy/SidePanel.zip shot |
| ||
Ed, is that a usable lib, or an application written in the DLL? I am very interested. |
| ||
!) |
| ||
So most of your whole program is in the DLL? |
| ||
So most of your whole program is in the DLL? YesBut Kev's one will be a GUI lib. Look above. |
| ||
Any news on this lib? Keen to see/use the next version! |
| ||
Me too, what's the word Kev? |
| ||
some news. currently supported: Windows 3DScene Menus Progress bars Buttons push, radio, check ListViews with columns Treeviews Requester file,save,notify Slider the above have extra commands for complete access, window/gadget access commands to change (maximize,minimize,active,resize,hide,show,ect..) also added are commands to retrieve the same type of information from created windows/gadgets. most gadget item adding/modifying are also near complete, with some gadgets we can now change there color. theres still lots more i need to get done, before im ready to distribute a public beta. ive also rewrote the event handler, and now have a more stable and higher fps. Wiebo is also working on a GUIde WinBlitz3D layout exporter. limited support is also added for gadgets below with commands being added/fixed. icons for gadgets,windows,menus still need adding. Tabber ComboBox TextField ListBox Trackbar Kev |
| ||
Great work, kev! have you gotten text boxes to work yet? |
| ||
electronin,there added and can be created but no events returned just yet. kev |
| ||
Sounds great, keep it coming :-) |
| ||
BF, cheers. ive just finished fixing some of the get gadget position x,y commands, ive also added access to status bars with multiple parts. text box's gadgets are also now working. CreateStatusBar() SetStatusText() GetStatusText() SetStatusParts() StatusPartWidth() its coming along. Kev |
| ||
nice Kev! |
| ||
Awesome! stataus bars will be cool! can you type in the textboxes? |
| ||
electronin, yes full text box edit/update is possable. combo box's are also done. Kev |
| ||
Hey, if you ever need a beta-tester :-) Bug |
| ||
this looks great! nice work! |
| ||
ive uploaded a new example here. http://homepage.ntlworld.com/pamela.poole/WinBlitz3D-demo.zip example contains mixed gui and Jeppe Nielsen source code - break the glass. |
| ||
Awesome! It would be so great to have full windows gui control in Blitz3d. Keep up the good work, Kev. |
| ||
Nice work Kev, works great except for the radio and check box don't seem to work. |
| ||
great job. the 3d in window is very nice. |
| ||
nice! It's coming along. I noticed that the 3d window stops when moving the scroll bars, the text area doesn't work (only pasting text, not typing). |
| ||
Excellent stuff, check box and radio seem to be having problems, but all else seems good! Keep it coming!! Bug |
| ||
Hmm... is that 3D viewport a capture of the Blitz Runtime Window using SetParent? |
| ||
@Jeroen & Bug Face, the gadgets are part of the tabber gadget group. they work when used under normal window gadget group, tabber gadgets still need more work. Jeroen theres two text gadgets one should work one should not? @Robert, yes. kev |
| ||
Kev, nice work! is it possible to have multiple 3d viewports without too much of a performance penalty? will there be some sort of GUI editor? |
| ||
Hi Kev, True, one textarea works, the other does not. :) The vertical scroll balk doesn't do anything, and both the scrollbars are very tiny (why?) and the return to their default location after releasing the mouse button. (They only move when you use the scroll bar arrows). Alert boxes could be improved by always placing them on top. |
| ||
bradford6 - I think Wiebo plans to add support for it in GUIde. |
| ||
Bill, Ive still lots to get done with 3dscene's. currently Create3DScene() displays the scaled viewport in the created window group. Well see how this works out. like Robin said Wiebo is writing a GUIde exporter. Jeroen, the vertical scroll bar is working, its my mistake not fixing the scroll bars after adding Jeppe's shoot the glass example. i realy need to code a better example. scroll bars return all events ive just not used them in the example. not sure i understand 'scrollbars are very tiny'? do you mean the scrollbars dragger. |
| ||
what kind of window messages are getting back? Are you passing everything on? |
| ||
Hi Kev, Yeah sorry, I ment the scrollbar dragger. Basicly, the size should be relative to how much it can scroll. If it's a large portion, then it means a small dragger. Your example is okay by me! Are you going to implement tree views? (hierarchy) Do you have a rough estimation for the first beta? |
| ||
Bug Face, api events are picked up using a custom winproc. events are managed, Waitevent(),EventSource(),EventData(). for example using scrollbars Waitevent() returns a gadget event($401),EventSource() returns the HWND pointer to the gadget and EventData() return the event. up-arrow = 1,down-arrow = 2, dragger = 3. the event system is similer to blitz+ Jeroen treeviews support is added but still needs work, they can be created, ive still to fix a bug with adding to them. a public Beta version sometime soon. Kev |
| ||
Hi Kev! Excellent to hear that. A more 'advanced' question. I once made a server for a game, first in Blitz3d, but later converted to BlitzPlus. This to get rid of the slowness of a Direct3D window which Blitz3D always opens. Now, with your GUI, is it possible to *only* use the GUI (no 3d canvas), and have the same speed benefit as in BlitzPlus? How does this work? |
| ||
Jeroen when initializing WinBlitz3D a GUI window is created and the blitz runtime window is hidden. to use mixed mode gui/3d you create a 3d scene using Create3DScene(window,x,y,width,height,style) to position and size the 3D scene. ive not tryed any speed tests. kev |
| ||
Hi Kev, Does it mean, when you 'hide' the 3D window, that it doesn't have the DirectX overload (is 'hiding' actually is 'not drawing' or does 'hiding' just mean 'not showing'?) |
| ||
Jeroen, when not using 3d mode the runtime window is just hidden(can be show when required). a command could be added to destory it though. kev |
| ||
Hi Kev, that would be great. When maximizing the window, the gadget stay their original size. Is it possible to e.g set fixed size for gadgets, and a percentage on the 3d canvas? |
| ||
Something I wasn't able to get working in the WinWrap DLL I wrote for Blitz 2D (pre Blitz Plus) was the windows over the DirectX surface. Lot of people wanted it, but there were always redrawing problems I could never solve. I think your response of basically saying "when you are in WinBlitz mode, the other window is hidden" is one I should have thought of. But!!!! Can you switch in and out of that mode? Cheers matey!! Bug |
| ||
Bug Face yes i have the same problem with the directx surface redrawing when putting windows over it, currently theres no way to switch back from mixed gui/3d mode. ive started working on a winblitz3d version that requires no .dll one problem was trying to get function pointers(WinProc) working in blitz3d. ive got this working but still need to write the asm code to pass and return DefWindowProc() currently im using the addess of a bank passed over to a self modify code bank call. this works ok, i put an asm int3 into the winproc bank and when an event from the window is triggered using the custom winproc halts at the int3, ive also managed to return the address of a inline blitz function. im still looking into both ways for handling the custom winproc. kev |
| ||
Neat solution, I never took it that far, as BlitzPlus came out and at the time I wasn't using Blitz3D. If you ever want a code monkey who can spend a bit of time helping you debug or add stuff (acording to your rules of course, it's your project) let me know, I'll lend a hand. Bug |
| ||
Bug Face, ive now managed to hook blitz3d's winproc its now possable to add windows/gadgets directly on to runtime window and handle messages using a custom winproc while blitz still has access to its winproc. if you have the coding time your help would be appreciated, i will email later. kev |
| ||
This looks fantastic, tried the demo and it is impressive! Can't wait for it to be finished. Keep up the good work kev it is appreciated. |
| ||
Cool, my e-mail address is currently being swamped by about 1000 spams and I guess I almost never read the one published!!! So you can get me on MSN or hotmail with (I'm sure you can stitch it together) bug_face_uk at hotmail dot com Bug |
| ||
Hi Kev This libary is pretty amazing work and extremely interesting to learn from. A couple of points: (1) I read in your readme.txt file that you are no longer working on this library now that Blitz Max came out. Maybe you could post something here about your plans? Alternatively, maybe you could make a Worklog entry and link to it from here? (2) You should consider editing the link at the top of this thread so it points to the current html address of your library (which, for those who are reading about this for the first time, can be found in your signature a few messages above this). I stumbled across this thread and thought the file was gone when I clicked on that top link. (3) I thought your use of ASM in Blitz was cool. I don't know ASM, but I assume you could use it in other ways to speed up some existing code or functions. Do you have any ideas on how it could be used? Any recommendations on how to learn it fairly easily? (4) Is your custom WinProc actually close to a real one created through standard windows C++ calls? Thanks again for this great source code! Truly amazing. |
| ||
(1) I read in your readme.txt file that you are no longer working on this library now that Blitz Max came out. Maybe you could post something here about your plans? Alternatively, maybe you could make a Worklog entry and link to it from here? things change, ive spent sometime with winblitz3d and some with blitzmax. a good thing though is ive started working on the docs and have made some modifcation to winblitz3d's events so that gadgets can be places directly onto blitz3d's runtime window. one problem i had with this was that gadgets would disappear when flip was called. this no longer happens. (2) You should consider editing the link at the top of this thread so it points to the current html address of your library (which, for those who are reading about this for the first time, can be found in your signature a few messages above this). I stumbled across this thread and thought the file was gone when I clicked on that top link. done :) i tend to forget these older posts. (3) I thought your use of ASM in Blitz was cool. I don't know ASM, but I assume you could use it in other ways to speed up some existing code or functions. Do you have any ideas on how it could be used? Any recommendations on how to learn it fairly easily? it might be possable, ive just not looked into it. i have spent many years learning asm on differnt computers, i started on the spectrum :) many years back. search the net tutorials. (4) Is your custom WinProc actually close to a real one created through standard windows C++ calls? yes, its simular. although a little more complex when adding new events :) they have to be picked up using inline asm. kev |
| ||
are these updates available? Sounds bloody perfect! :D |
| ||
Cygnus the update will be available as soon as possable, ive still bits that needs cleaning and modifying. kev |
| ||
Cool. That would save us so much time :-) I hate GUI programming- I Made one of my own because nothing did what i required. This, however, is best fit for a current project. |
| ||
Hi Kev, really great work! I've been looking for this for a long time. I know you're not hot on this anymore, but there seem to be quite some trouble when you have multiple windows and a 3D scene going on?! For example, I have a main window (with menu), a 3d Scene, and a floating window to edit some properties. As soon as you enter an edit box, the 3D freezes! :( This didn't happen with your older version. Please understand I'm unfamiliar territory here so i have been hacking away blindly ;) But I've noticed that by replacing apiGetMessage(WinProcReturn,0,0,0) in your current WAITEVENTS() function with the old apiPeekMessage(WinProcReturn,0,0,0,1) from your old EventHandler(), the 3d stays alive and happy! But using that will kill editboxes who'll go deaf and won't work anymore :/ I want to make use of several floating tool windows where the user can edit properties and settings, and it looks to me that when you have multiple 'windows' ontop of your main window, that things (events) get missed?!?!? (Again - no expert here). Do you know of this and or any work arounds or fixes for this? Or am I expecting to much? I've been hacking at it for days to get it to work, but to no avail :( cheers, Danny |
| ||
Hi Danny, yes theres fixes coming as soon as ive the time. things have changed a little. im not sure if you have missed this. http://www.blitzbasic.com/Community/posts.php?topic=50481 gadgets now are directly on the runtime window. kev |
| ||
!!!!!!!!!!!!!! Thanks, Kev. Oh, just so everyone knows: This project uses WinBlitz3d. Is the version at the top the same version that you sent me over email earlier? (Which included new popup menus). If not, what has been changed? I need to know that so it can be cleanly shoved into my copy of WinBlitz which contains a bunch of quick changes made by myself. (And so that I know what's new). Does it recieve the WM_CLOSE event yet? I suppose I can now quickly switch the main window to the Blitz window, which would allow me to use BlitzClose to catch the window close event... Are there any known issues at all with having a GUI inside of the Blitz window? |
| ||
Dylan the above link's the same as the older version from the last email. no theres no WM_CLOSE yet. btw APE looking very professional, ive source some place on cd that adds windows XP theme support, i need to dig it out and include it with winblitz3d. kev |