Coming soon!Archives Forums/BlitzPlus Programming/Coming soon!
| Simon says...|
I've been given BlitzPlus fixing duties, here's what I've done to date. Feel free to request any features you feel strongly about:
; v139 changes
; CreateImage now defaults to dynamic (LoadImage still defaults to managed)
; CreateHtmlView supports style parameter - 1=NOCONTEXTMENU 2=NONAVIGATE (clicks generate event instead)
; HtmlView now generates GadgetEvents with eventdata setings 0=pageloads 1=usernavigate
; new HtmlView commands : HtmlViewCurrentURL() HtmlViewEventURL(html) HtmlViewStatus(html)
; RemoveGadgetItem on last item now clears Tabber completely
; RequestFile and RequestDir now have optional default values
; RequestFile no longer appends "All Files" option when extension$ parameter is used
; Win32DSMovie DrawMovie render now uses BitBlt if IDirectSurface::Blt fails due to unsupported pixel conversion
; better checking for negative sized banks and copybank ranges
By Simon Armstrong...
| yay! our prayers have been heard.....(well a few of em) |
| Thanks Simon! good stuff there, esp the html |
| Things that would be nice to see sometime soon...|
-explorer gadget(s) like in purebasic :)
-We need a way to make use of requestfont()-- ie get the face name, size, etc
-a frame style for panels would be very nice.
-better control of min/max buttons on a window
-multiple status texts per window..
K I'll leave it at that for now :)
| First: Cool, an update instead of only bug fixes!|
I think BlitzPlus also needs MORE gadget types... The obvious are Groupboxes, Splitters, Spinners, etc. I've manually created these for my form editor, but having them natively would be soo much better.
Toolbar: The y-position parameter doesn't work. A toolbar can only appear at the top of it's parent. Also, making a toolbar vertical would be handy.
Canvas: I don't know if it's possible, but resizing a canvas with SetGadgetShape would be much better than having to re-create it everytime I resize a window.
Tabbers: It would be cool if we could link a gadget to a tabber item, so blitzplus can hide or show it. The panel method feels like a workaround.
| oh pleaseplaesepleaseprettyplease:|
--> reference arguements for a function <--
Qbasic had this one already :)
Better stability in windows 98se, everytime something crashes here (image functions when you didn't activate a valid canvas causes crashes here, and I *need* to reboot the whole system then!)
Bounds-checking for banks .. that is: the user should turn this on/off to prevent my system from crashing :)
conditional debug.. when working in debugmode ALL stuff is slow, even stuff that's working correctly already (think filling large arrays, loading images etc. etc.)
Here is another blitzplus feature wishlist thread: http://www.blitzbasic.com/Community/posts.php?topic=31762
| Hi there Simon,|
Feel free to request any features you feel strongly aboutBeing able to tab through gadgets. Especially text fields. It *can* be done in the current B+ with a userlib call but you get annoying audio beeps (due to pressing TAB in a textfield).
Also, a ActiveGadget() function to find the currently focused gadget.
Talking of audio ... In the new update will the FMOD lib still be initialised even if you use no sounds?
With the RequestFile() fix can you also do something like this for extensions (instead of single entries):
Image (*.bmp , *.jpg , *.tga)
Audio (*.wav , *.mp3)
| Mouse tooltips. I know we have them for the iconbar, but they are possible to create for any rect / gadget .. so should be added. I attempted very hard to make a fully working userlib for them, but it was impossible as I was unable to catch certain events which lead to the tooltip vanishing until you restart your app.|
Being able to detect the raw windows messages.
Non - blocking tcp/udp
Change to use custom label class (one that allows background colors etc)
Drag and drop read capability
Right click context menus
Tray icon + tray icon menu
Full status bar support
Clipboard support for text/image (using streams and images)
Add icons to app menu
Finish adding style flags for all gadgets
| text areas need the right click menu funtions. THey would be really handy in the IDE i made. |
Please, please, please dont forget to sort out tabbing between gadgets.
Remember there is a bug with HotKeys. Looks like when using a shortcut with a modifier then using a single shortcut (without modifier) the last modifier is still held. You need to press the last modifier used on it's own for it to sort itself out.
| I would like to see proper Windoze event codes returned, not your mapped/filtered ones. TCP events are really needed. Or threading, but we all know that won't happen anytime soon ;] |
| handle = ActiveGadget()|
We need to be able to return the currently active gadget.
I would like to see proper Windoze event codes returned, not your mapped/filtered ones. TCP events are really needed. Or threading, but we all know that won't happen anytime soon ;]
An option to retrieve windows events and the addition of network events are excellent suggestions, why dilute their quality with something like requesting threading? :)
| Events when a gadget activates, and when a gadget deactivates. "OnFocus" "OnLoseFocus" |
| Appresume event doesn't trigger, if you re-activate the window by clickign and dragging the title bar (moving the window) It will only trigger after you release.|
(im just doing some coding, and noticing these things btw)
Would this be possible using gdi ?
| Yes, the floodgates have opened =] |
| supporting standard Windows gadgets and tooltips for buttons, are a must have for Windows applications. An application (real application, not game development tool) needs to conform to the "normal" windows standards.|
Image Buttons would also be nice.
Blitz Plus is capable of turning otu very good applications, but is hindered by a lack of support for standard gadgets and tooltips.
| I would like the FileRequest to remember what directory its in and not keep defaulting to 'My Documents' |
| A couple more:|
Double click event
Separater bars in toolbars (and vertical ones)
And amongst other bugs, fix this one: http://www.blitzbasic.com/Community/posts.php?topic=32373
And how about a 'RaiseEvent', in order to roll yout own versions of the above (And others), but have them trapped in the event queue...admittedly dangerous so make sure we have a clear range that are allowed for our events!
| I'm gonna keep adding these as I think of them.|
GadgetType , GadgetClass , GadgetRoot
Would return a number identifier of the specified type of gadget
Would return the class name as a string of the gadget
Would return the root window the gadget is attached too. Currently not possible at all. Windows has a GetAncestor function, but is limited to "win98"/"nt 4 sp1" and above. It would be possible to role your own with gadgetgroup + gadgettype, but there is no gadgettype.
| Wonderful news! :D |
| I was going to add a couple but most of them have been listed above. One thing that would be cool though is the ability to add icons to menu items. |
| Yay!!! I've been waiting for the HTML stuff. Now i can finish my browser!|
By the way, TreeView icons would be pretty helpfull, too.
| ActiveX container objects. |
| List view gadgets presently do not generate an event if the arrow key is used to change the gadget item selection.|
GadgetText$() should return the current address of an HTML view gadget. SetGadgetText() should force the gadget to go to the specified address.
| Nice to hear about the bugfixes. If I could add a wishlist then they would be these.|
Treeview Icons (please please please add this)
Well, you don't ask, you dont get. :)
| I'd given up all hope of an update for BlitzPlus so I am very happy now. Thanks. |
| 1) Printer support|
2) Ability to resize a canvas without it scaling
3) Multi column listbox
4) Clipboard support
If you want me to pay you to do the above, just ask :)
| Btw multi-column listbox in blitzplus|
Id apreciate some feedback on performance. I got the impression from somone who tested that it was slugish.
- progress bars (not in demo)
- align text left/right
- select multi line
- shift click select
- auto scroll (go past bottom / top of listbox while selecting)
- Hide title for standard listbox
- 3d frame
- 2d frame
- no frame
- customizable colors
I'll release it soon,.. just gotta finish it up X)
| Clipboard support via userlib: http://www.blitzbasic.com/codearcs/codearcs.php?code=699 |
| Thanks for all the suggestions people.|
I just got HtmlViewRun working which allows scripting of the HtmlView gadget:
window=CreateWindow( "HtmlView",0,0,640,480 )
html=CreateHtmlView( 0,0,ClientWidth(window),ClientHeight(window)-20,window,2 )
| Excellent News to see B+ is still being developed.|
Personally, I'd like to see some more long standing bugs fixed before anything is new is added. Better to have a smaller reliable toolbox than a big one full of bugs ;)
How about these for starters:
Arrow key does not generate event when used with Listview
ListBox scroll/resize bug
Anybody else got a confirmed bug that they desperately want addressed?
| If you set an imagebuffer, and then dont set to a canvas/desktop/graphics buffer before you end the app. Then you end the app. You will get an error in debug, or crash in no debug. |
| yeah.. that image/canvas stuff is kinda crappy to work with.. when it crashes here in 98, I have to reboot my system, otherwise B+ continues to crash (also with empty sources!)..|
furhtermore: native access to wave files, images, for reading/writing etc.
| mousemove, mouseenter, mouseleave don't trigger for panel, but mousedown,mouseup,keydown,keyup,keystroke do. |
| One other good addition would be to support *.bp for BlitzPlus-only source code.|
So, When you load/save you have:format_code('Files of type: [BlitzBasic/Plus (*.bb , *.bp) ]')
| I would like a gadget command to apply bitmaps to buttons and other gadgets. So I can skin stuff up. :)|
| Network Events|
A Rand that doesn't break across processors
support for more data types (doubles, for instance)
Access to more of FMOD (seek to ms/pattern, VU meters, etc)
| To support all suggested features would be nice, but I fear that Mark doesn't want to delay BlitzMax by adding so many new features to B+ so that B+ eventually becomes BMax :)|
Imagebuttons, Labels with a bmp in the background etc. can be made by any B+ coder who has average experience. I'm more and more using my own gadgets rather than the built-in ones. It's perfectly possible.. see the tutorials-section for my gadget tutorial using banks. An image-button that can act as radiobutton and checkbox takes you only a small day to make!
I suggest asking for structural enhancements that can't be imitated using the current command-set.
| The thing is, using directX in a canvas, for your own gadget is insane. If we had full access to GDI and the ability to manipulate the WM_PAINT message, and if panels would have all the events that a canvas currently has, then true, we could make some very good replacement gadgets.|
Untill then, there is a bottleneck as to how much you can draw per refresh.
| Just read the post, great news... I was just about to give up on Blitz+ and go for DB, just to make appware, and since it is getting updated a load more... But I'll hold on a bit longer!!! :D|
Just make sure you can use BP to actually 'build' simple app stuff, without any external help... like userlibs etc etc, because in it's present form, you couldnt even build a complete Notepad clone with BP, and that's one bare-arsed app!!! :)
Again, great news, please keep us posted
| Agreed - You should be able to create a reasonably decent...|
...with BlitzPlus. At the moment, you can't. All it needs are a select few of the above issues to be addressed.
(The above app list is intended to represent my ideas of what the most people are most likely to try to write Blitz+ as a first app, and to cover a reasonable spread of app functionalities).
| hmm hmm hmm.. basicly you're right about reinventing the wheel, or: selling ice on the northpole. (that is, if I understand your hint ^^;) However, I can imagine that a game-editor I'd like to make could include an integrated text-editor for character-speech. There are more things which are very serious/business-alike, but still can be used in something innocent as a map-editor/game-editor. |
| Bitmaps on gadgets and other stuff would be cool. Makine your own skins! |
| Yeah i would really love to have skinning functions for them! That would rock. |
| Being able to draw directly to a panel would be nice. |
| I only have 2D / 3D versions, not Plus, but in neither of my do I have an ImageFrames(img) function. That would be something to add for both plus/3d. |
| Mask and alpha for canvas would be nice. |
| "Being able to draw directly to a panel would be nice."|
Can be done already, with a simpel GDI userlib. It is just you can't do it properly...
| @skidracer: talking to yourself now?!? Or hinting at something you've just implemented? ;-) |
| Well, at least we got *something* finally...|
By the title, I thought Mark was going to announce the *actual* release of BlitzMax. Oh well :(
At least it's not just a bug-fix release.
| Simon says? Who does the updates for Blitz Max then? I was under the impression everything was done by Mark. |
| iirc 'simon says' is an expression .. dunno if that was the intention.. (tho I think so)|
'Die Hard with Avengence' had that same line btw when the bad guy gives orders to Brucy :)
| 'Simon' is Simon Armstrong/skidracer... |
| Not sure if this has already been said... but I'd really like to see an option to be able to change the colours of the background, buttons and text in GUI mode. |
| Thanks for asking !|
Allow multiple Blitz program instances to access the Backbuffer. The issue of "who flips?" could be instance specific. Locking could be similar to "Lock/UnlockBuffer BackBuffer()". Allow multi-instance comm, data space sharing (shared "banks"?). Suspend/Resume other instances?
| Sorry, nothing really, I just dont want to see this topic slip down the forums... we might forget there's an update coming!!! :D|
Anyway, any WIP news???
| I thought of something else.|
Make the listbox 1 based.
Currently countgadgetitems can return 0 for none. But selectedgadgetitem can't return a value for "none selected" as 0, is counted as the first item. Yes you can do if countgadgetitems(...) = 0, but that is not sensible.
| Network Events would definitely be top of my list. |
| Bump |
Feel free to request any features you feel strongly about
Hehe, you just asked for trouble with a comment like that Mark :)
But selectedgadgetitem can't return a value for "none selected" as 0, is counted as the first item
In Windows, all controls have item indicies which are zero based. When an item is not selected, SelectedGadgetItem should return -1.
In fact, it should do this already, assuming Mark is using the standard API commands. From the MSDN documentation for LB_GETCURSEL:
In a single-selection list box, the return value is the zero-based index of the currently selected item. If there is no selection, the return value is LB_ERR [-1].
Feel free to request any features you feel strongly about
Here you are:
- a MIDI library, in order to send and receive midi signals (note and system exclusive) to musical instruments
---> Purpose: midi sequencer, editor/librarian for midi instruments, full control on the sound card midi instruments, ecc..
- Blitz DLL; to write our own DLLs for using in other blitz or non blitz applications (ex. VB)
- Ability to use DLL written in VB6
- Network events handlers, and events in general (OOP ?)
- Ability to load media from banks (useful for file packing)
- 2D transparency
- More control over sounds: effects (reverb, echo), reverse, recording audio,..
- Smaller executable files..
- Better documentation :-)
Off topic: Maplet 2.0, with import functionality of a .B3D lightmapped file...
Thanks for your attention,
- Ability to use DLL written in VB6
That would mean full COM support... Which would also be NICE. But you can already create dlls in VB6 as long as you use a tool that creates exportable functions. BlitzData and BlitzPrint userlibs are both written in VB6.
| ( i've probably gone overboard, but with all these gadgets, it would make designing anything in b+ 100 times easier)|
Just for the hell of it, some much needed gadgets and links to their msdn info.
Full status bar support
| Image gadgets please! - proper ones and the ability to toggle gadgets up / down without resorting to trickery! |
| Easy skin supporting! That would be so nice. When's the update gonna be here? |
| Image buttons so we can have images on buttons |
| Just noticed an autosuspend bug. I wrote a small Mp3 player that shuffles a playlist and plays a random song. Whenever I go into a big fullscreen program like UT2k4 the music stops and doesnt play again. I have to close and reopen my player to get it to work.|
If I put AutoSuspend 1 in my program then the music stops when UT2k4 is activated, but resumes properly when I put focus on the player. When I use AutoSuspend 0 the player will continue to play during UT2k4 (correct behavior) about every 1/10 execution, the other 9 times it dies completely as predescribed.
I know its not a sound channel problem because I have an Audigy 2. Can anyone else confirm that events are sometimes not recieved when minimized with AutoSuspend 0?
*placed in bug forum*
| I've noticed that B+'s sound works in differant ways when two B+ programs have been loaded, or a B+ and a B3D program has been loaded, possibly it's affected by any DirectX app? |
| Also noticed that when you use the HTML Views commands, and you right-click to open a webpage up in a new window, you cannot close the blitz window to the taskbar again (Using kev's userlib)... which is a bit iffy!!!|
I'd put it in the bug forum, but dont know if it has anything to do with kev's taskbar dll!!!
| Setting a sliders value, currently also enables teh slider.|
Example of the bug:
window = CreateWindow("test",100,100,200,200,0,1)
slider = CreateSlider(0,0,ClientWidth(window),ClientHeight(window),window,True)
| Another big issue is that you can't delete a menu item without deleting the entire window and rebuilding from scratch. Please let me know if theres an easier way.|
* Experimented with GetSystemMenu and DeleteMenu API to no avail *
| I think style settings should be added to canvas's like so: |
0 - default
1 - no filtering/blur during a resize
2 - noscale ( so we dont have to recreate the canvas during a resize, to keep our graphics the same size)
| linked to poeds post --> http://www.blitzbasic.com/Community/posts.php?topic=33433|
0 - default
1 - No filtering / blur
| Some extra Movie commands would be good:|
And CurrentMovieFrame() or similar ( CurrentMovieMillis() ? ).
| New info snipped from Simon's latest worklog:|
BlitzPlus v139 is still unreleased, apparently there is some FMod / music patches going in. In the few days the build was in my care I was able to add the following:
new HtmlView command: HtmlViewRun(html,script$)
Delay now resets negative parameters to 0
Added FontSize FontName FontStyle FontAscend and FontDescend getters
Return key on List Item now causes event, still no arrow key messages:(
TreeViewNodes now have icon parameters and TreeView supports SetGadgetIconStrip
HtmlViewRun html,"document.body.innerHTML='<form method=GET><input type=text name=login value=simon></form>'"
The biggest improvement is with the control of the HtmlView gadget. Being able to issue scripts and receive user GET and POST events should open a lot of possibilities including hosting and controlling of ActiveX controls (speech, database, spreadsheets...) embedded in the view.
| It's incredibly relieveing to hear that Mark has finally let someone else hack away at (some of:) the code! |
| I want it all!!! It all sounds good!!! |
| If one day most of those gui enhancements have to be done,|
i d love to see an option to reduce the size of the compiled exe(for those who only want to use the enhanced gui functions).
| Please, please, please include some more FMOD sound commands to blitz+ (and Blitz3D), something like ChannelSeek(), ChannelPosition() ect would be great. Maybe even some of the FSOUND_FX commands like FSOUND_FX_SetEcho ;)|
As far as I know, there isn't a basic anywhere that gives that kind of control over sounds, you could be the first! lol
Yeah, Its a long shot, but you never know :)
| PLEASE fix the bug with OpenGL windows being run fullscreen. They seem to crach upon closing on a wude variety of system setups. |
| Today, it's been one month since this announcement.|
Is it still coming soon?
| "Miss Leonowens-sir, in Siam you will soon find out, everything has its own time"|
(Anna and the King, 1999 - 20th Century Fox)
Is it still coming soon?
Well considering the ton of suggestions above (which I hope at least some are included), and the mentioned fmod update...
| Hopefully the update won't be buggy itself...|
So take all time you need Mark!
Good things always take time! :)
| >> Feel free to request any features you feel strongly about: |
Being able to alpha blend images, by setting a percentage, or a grayscale image defining the transparent areas.
This is the single most important feature, I would like to see added.
(I don't care whether this is done completely 2-D or requires 3-D hardware, as long as it can be done in realtime.)
| Get Blitz3D. |
| @ hotcakes: I don't want any 3-D capabilities.|
Besides, I don't think using Blitz 3-D is practical for compositing 2-D alpha images.
(You can't easily blend pure 2-D techniques with 3-D. (drawing 2-D->3-D->2-D->3-D,etc.))
| fooby no, you would use a 3d as 2d method. which envolves building and destroying 1 big mesh each render. But, 2d based alpha & (rotate/scale ?) should definatly be added to b+! |
| You're right skn3[ac].|
But a straightforward, fast way of drawing transparent images in Blitz Plus would be great. I really hope Mark can implement this.
| Well it would have to be done in software and I don't think Mark would be able to do it *much* faster than those who have already attempted. It's not in DirectX. It wasn't in DX7 so it's definately not gunna be available in B+. However it's available in OpenGL, so maybe Mark could write a command for just that part of B+ (and maybe do software rendering for the DX version of the command)... Then OpenGL games would really have the edge ;] |
| Currently (if im not mistaken) blitz performs all pixel operations direct to video memory. Int by int (pixel by pixel), this is very slow, especialy for reading.|
There are then 2 things which could greatly improve the speed of doing pixel ops:
A) Allow the use of buffers in system memory (currently graphics buffers are stored in video mem)
B) Allow batch operations. Eg:, dump the pixel data into a bank, then send to the video card in big batch.
I wrote a lense effect in b+, it was reasonably fast. A mate of myn then ported the code to alegro, and it run much much faster. This was because of the things stated above. So whilst it is impossible to have hundereds of alpha sprites on screen, it is definatly possible to have more software alpha operations, than currently possible using b+ commands.
| What about these commands:|
Load3DImage( filename$ )
Draw3DImage( image, x, y )
->Draws directly to backbuffer, no renderworld as in B3D.
Scale3DImage (image, percentage or pixel dimensions)
Alpha3DImage (image,a grayscale image or a value 0-255)
Rotate3DImage (image, degrees)
They could work similarly to Patrick Lester's Extended B2D dll:
With such commands we could take advantage of the 3-D hardware whenever we really need such effects in realtime, and could composite with the purely 2-D methods.
In the Extended dll, this works very nicely, except that it doesn't work in fullscreen.
| I really would like to use the new HTML commands... It would be great just to get the update that Simon has finished and not have to wait for all these other great suggestions. My request would be to see a couple of smaller updates earlier rather than later. |
| Er, I believe the extended DLL only works in fullscreen, not in windowed mode. |
| Yeah, sorry, I typed it wrong.|
.. (the extended dll) ... doesn't work in *windowed* mode.
| . |
But, 2d based alpha & (rotate/scale ?) should definatly be added to b+!
Would be a very welcome addition indeed. Big thumbs up here..
I really would like to use the new HTML commands... It would be great just to get the update that Simon has finished and not have to wait for all these other great suggestions. My request would be to see a couple of smaller updates earlier rather than later.
I agree. If anything, I'm more excited about the file requestor & font stuff. I need those right now.
| not sure if this is the place to say so, but the off line help really needs an update. its just not possible for me to connect and use the online help.|
| Well, I'll chime in:|
- 2D Transparency ... its only been like 4 years we've been asking for it. Help us out here. :) I shouldn't have to use Blitz3D to make dissolving particles for a 2D game.
- Allow DIRECT setting of Window/Program icon. Making a daily build hacking with Reshacker or other programs makes the build process a REAL PAIN.
- Better MOD support (the same everyone else has been crying for; vu meters and seeking at the VERY least). How can we write megaleet demos without vu meters? :))
- DIRECT systray iconifying. A simple flag allowing "minimize = minimize to systray" would be enough. As it stands, I have to recommend to my customers they use some third party app to minimize my stuff to systray. That's just not right.
- Audio seeking support. I'd like to be able to load an MP3, get the runtime back in millisecs, then be able to drop the playback to any given millisec. That's REAL BASIC "mp3 player" type stuff, and we can't do it.
- My god ... CLIPBOARD SUPPORT. How can someone be asked to write an app of just about ANY kind without having SOME sort of clipboard support? Oh sure, there is a userlib hack to do it, but c'mon now ... PUTCLIPBOARD() and GETCLIPBOARD() ... please ... even if its just TEXT for starters ...
That will do it for now ... I'm sure I got more stuff in here somewhere ... but this would be a nice start.
| You're a bit late, but never mind, there is always next time. :) |
| Alas, I saw that ... Like you said ... there is always next time! :) |
| Holy crap... Shane crawled outta a hole in the wall somewhere!!! Where have YOU been hiding? |
| In the really real world. :) Thanks for noticing tho! |
| As Darkuni said, 2d transparency would be really usefull!|
Although im sure there will be som eway of faking it with blitz....
Also, is it possible for a 'savestate' command to be created:
What i mean is, rather than all variable that i wish to write to a Dat file being Written and Read individually, would it instead be possible to make a command that saves all variables of all types within the program, to a data file, rather than the programmer (me*) having to flesh them all out individually?
| I wouldn't mind a built in .ini system. I've considered writing my own functions for a 'generic shell' version where you could pass it stuff en masse - but I'd love to have a GETINI, PUTINI command where I could easily add a new name/value pair or retrieve an existing value.|
If the ini doesn't exist, create it. If the name/value pair isn't there, create it.
| How about also a built in triangle drawing command |
| Poly and Polyf in BB2 on the Miggy were useful. For some people. I assume. I couldn't figure the thing out ;] |
| Glad I wasn't the only one baffled beyond sanity by those poly funcs...pure witchcraft ;p |
| Right now, I would love to see a function to return if a listbox was right clicked or left clicked... |
| You do know that BlitzPlus is done being updated? |
| Cool. |
Things that would be nice to see sometime soon:
Printer support including graphics.
Rightclick context menu support
listviews (see skn36[ac] post)
sound/movie functions to start playing sounds/movies at a special time position
And...A undo function in the editor...;-)
Look at WIN32 API functions to manage INI files. That's what you are looking for.