IGlass vs BlitzMaxGUI

Miscellaneous Forums/General Discussion/IGlass vs BlitzMaxGUI

SO how is IGlass different from BlitzMaxGUI... Someone (many someones) out there thathave at least poked a stick at both need to pundit here? Is the speed the same? Size of files on a basic HELLO WORLD type of program? features???

Inquiring minds want to know?

I have both and I really enjoy using both. BlitzMax GUI is faster for making applications while IGlass is amazing for adding needed GUI elements in your game projects (editors, simple menus, etc.).

Also, IGlass is easier to use (and skinable).

is there any discrepency in the file size in comparitive projects? or lag when using one flavor?

BMax GUI uses the OS's native GUI, thus it gives a more standardized, professional feel.

I-Glass uses its own GUI, which is always lacking a feature or two that a user may expect after becoming used to the OS's native GUI, thus feeling less standardized and less professional. However, its more flashy nature makes it ideal for games and fancy things... and its ease of use (actually, ease of use depends soley on your knowledge into the depths of GUIs) may make it worthwile for quick editors with which you don't need to worry about what the end-user thinks.

Thus, like most things, they both exist in their own realms of excellent usefulness.

Links to both products would be a good addition to this thread I think :)

MaxGUI - http://www.blitzbasic.com/Products/maxgui.php
IGlass - http://www.blitz3dfr.com/phpfrench/content.php?content.46

I've always been interested in IGlass (still am, even though I have MaxGui), but the reason I never bought is simply because I still don't know if IGlass has already become "cross-platform". It would be a waste of money if I can't use it on my Mac. I know the programmer was planning to make it possible, but I still don't know if it is, yet.

GUIde has apparently formed itself out for BMax... this from the front page of this very website. That should make using BMax GUI easier... Form editors rock!

As far as IGlass I think it purports to support all three... Keep in mind I have not used either but I get that from reading the IGlass faq.

Yes, it's pure BlitzMax code as far as I know so that seems fairly logical. There is also a GUI designer for IGlass BTW.

I bought IGlass when I bought BMax. IGlass is nice feature wise, but it is slow (IMHO). I am sure it is better on higher end systems and higher end graphics cards, but the performance of IGlass is an issue for me. Even the examples that came with IGlass are rather sluggish on my systems. However, straight BMax stuff runs fine.

I don't consider IGlass wasted money as MPacker is well worth the price I paid for IGlass ;c)

I'm happy to see that blitzmax user's like Iglass :)

Indeed these two applications are complementary...

Many thanks guys !

One benefit of using a third-party GUI like IGlass, is your program will look the same on all systems. Using the native MaxGUI your program would look different on Windows 98, ME, 2000, XP due to the differences of the native GUI on each OS.

I find the look of the MAX GUI linux, horrible!!! :)

I find the look of the MAX GUI linux, horrible!!! :)

Thankfully, Linux isn't about looks. (Or the fashion industry would be in a panic).

I like IGlass but the one thing MaxGui has is it probably works after each new release while Filax has to rejig each time.
Filax, just posted a problem with IGlass 1.53 under Bmax 1.14 which makes it unuseable.

IGlass 1.53
Hey, I never got any updates for IGlass :c(

Filax; isn't that Linux's fault?

I dont know ! But i don't understand why blitzmax IDE don't
refer to the current GUI like KDE or GNOME to create gadget ?
Linux GUI seem to have is hown look and fell.

Brice Manuel : Your email is : retrogame@... it is
correct ? if not how i can send to you update ? :)

tonyg : What can i do if mark change many thing with each
blitzmax release !? I'm tired to make many many changes
with each updates too !

I've been using iGlass quite a bit and it has some very good points. The thing I've found most frustrating with it is that you don't get all of the code with the release. This means you can't fix issues or add to the system in some cases.

Also (and this is NOT a knock against filax) the library is not structured very well from and OOP perspective. iGlass works well within it's limits but as soon as you want to step out a bit your stuck. This is because of the limitations of the way the library has been structured.

I'm very close to abandoning iGlass and going back to finish my little GUI project so I can get the structure and control I want.

I havent used iGlass yet. Currently am making my game and then am going to use iGlass to "wrap" around it. Is that going to be difficult because my game is OOP?

That's a really hard question to answer. It all depends on what exactly you are going to do. Generally I would say it shouldn't be too difficult. Some issues to look into:

1> Are you going to use iGlass just for config screens or are you going to use the conrols inside of the game play screens? You may have to write custom iGlass based widgets to display parts of your game. I have had to do this a couple of times.
2> Do you need multiple fonts? iGlass doesn't handle this.
3> Do you need variable width fonts? iGlass doesn't deal with this very well. Especially the input control.
4> Do you need user selectable skins? iGlass forces the incbin'ing of the skin images and this can't be changed at runtime.
5> Do you want to use your own images for the listbox items? This is a bit of a pain and in some cases not even possible. It can cause the same image to get loaded many, many times over. Again is this a design flaw.

Some minor problems in fact :) But i'm not right with you about OOP under Iglass :)

What do you want more ? All Iglass controls can be called
using OOP method !? And if you find Iglass not very well
structured :) Why do you have copy this structure for your
hown GUI ?

Please clarify ? :)

PS : It's not an attack Scott ! It's just for information
for improve Iglass !

Cheers Scott.

No problem filax :) I suppose I should have prefixed my earlier comments with "In my opinion" :)

Here is a example I found very strange:

Why is the IGL_ListBoxItem an extension of IGL_ListBox instead of IGL_Widget?

Why can't I set the image for a ListBoxItem manually? I'll tell you why because there is now way to add an item to the listbox without using the ListBOx.CreateItem method which assumes it needs to load the image.

Some other things I personally found odd:

Why can't I add any component to any other component as a child? The use of a function (IGL_AddParent) to set up the parent child relationships is totally counter intuitive. I should call an AddChild method on the object I want to be the parent. Using your method the IGL_AddParent function has to be modified everytime a new widget type is created.

There are many examples of that kind of thing in iGlass: IGL_RefreshChild, IGL_KillChild, IGL_HideChild, IGL_DisableChild, IGL_AlphaChild, etc..

Why can't I set the font on each widget if I want to? If the base widget type had a font member then every type extended from that could allow the user to pick the font for the specific control.

I really don't like the reliance on referencing the widget members directly. There should be methods hiding the implementation. I shouldn't be doing this:

widget1.Hide = true

I should be doing this:

widget1.SetVisible(false)

You use integer handles for things that should clearly be specific type such as:

myimge:Int = LoadImage(...)

should be

myimage:TImage = LoadImage(...)

I think you just got bitten by that with the recent change in the language.

Again these are just examples of things that I personally don't like much. It doesn't mean that iGlass isn't the right tool for others. It's just causing me some headaches now and again.

My GUI design is not at all like yours, even though it may appear so on the surface. The underlaying design is totaly OOP and geared toward extensibility rather that assuming I can provide everything out of the box. Also I don't have the restriction you set for yourself with the incbin stuff. That makes a number of things harder to accomplish for iGlass.

Also mine isn't nearly finished so I may end up with a big mess. You never know. :)

I also find it very annoying that I have to import the framework and include the class files. if the classes were in the module i wouldn't have to have 20 Include statements in my program. I could import my other project file and thus reduce the compile time drastically. As it stands any file I have that references iGlass in any way has to be Included instead of Imported.

Ok ok,scott ! I understands better what you said!

for the release : 1.5.4 Iglass as been modified for remove
all image with int value ! I have checked all example with
superstrict mode.

For the ListBOx you are right ! my method is a little bit
heavy ! i agree. But i'm thinking to another method to do this !

For the stuff like :
widget1.SetVisible(false)

It's ok since the version 1.5.3 (check version.txt) i add
many methods for the widgets :

GetValue()
SetValue()
SetMinimum()
SetMaximum()
GetCaption()
SetCaption()
SetIncrement()
SortItems()
ActivateTab()

Etc ... IGlass was my first blitzmax OOP project ! it was
very hard for me to understand OOP concept :) lol :)

But now i understand better this stuff and i'm trying to
improve the IGlass structure to each version.

One day IGlass will be perfect ... :) (sweet dream ?)

Thanks to reply and clarify scott ! Many useful councils !

Filax Rocks!!

Yes, Yes he does. :)

:)

With regards to MaxGUI looking !@#$ under Linux, it's because it uses FLTK instead of the native GUI systems. Presumably because FLTK works across the board for Linux, whereas the native GUI systems have to be coded 2 or 3 times for each GUI platform.

FLTK is skinnable though, so a better look may come out of that in the future. Also, it's entirely possible FLTK could be used on Win32/Mac as well, altho BRL refuse to make any comment. I have heard skid say he's thinking/thought about implementing native GUI on Linux though... maybe by BMax 1.90.

What I plan to do with iGlass:

-Show the main menu screen (like in filaxteroid) I want to use the same skin as filaxteroid too if I can :P
-Show config screens for audio, video, etc (more indepth and up to par with today's games out there)
-Show options window that pops up over screen when player presses ESC during game play.

Now do you think this will be hard with iGlass? My game is strictly OOP as well (BMAX is my first language, I come from using OOP in Game Maker)

Well I say its my first language bnecause its the first language I grasped with hardly any problems. I dont know why honestly.

I grew up on QBASIC and couldnt do anything better than a text game, and when I did Dark Basic I couldnt even make a breakout game. But here goes BMax and I'm doing some great things (for me) Maybe its the Blitz Community? You guys have really helped me out, including the folks over at indiegamer. and over at IRC... Bah.. I dunno.. *shrugs*

Now do you think this will be hard with iGlass? lol

But_NewGame=IGL_PushButton.Create(False,"New Game",Button_Px,Button_Py,Button_Width)
But_HighScores=IGL_PushButton.Create(False,"High Scores",Button_Px,Button_Py+30,Button_Width)
But_Options=IGL_PushButton.Create(False,"Options",Button_Px,Button_Py+60,Button_Width)	But_Credits=IGL_PushButton.Create(False,"Credits",Button_Px,Button_Py+90,Button_Width)
But_Quit=IGL_PushButton.Create(False,"Exit",Button_Px,Button_Py+120,Button_Width)


And now here is the code to test button :

	If But_NewGame.ClickGadget() Then
		If Game_PlaySound=True Then
			SFX_PlaySound("NewGame",True)
		EndIf
			
		ResetScore()
		CreateLevel(1)

		Game_ModeCurrent=Game_ModePlay
	EndIf

	If But_HighScores.ClickGadget() Then
		If Game_PlaySound=True Then
			SFX_PlaySound("HighScores",True)
		EndIf

		Win_HighScores.Hide=False
	EndIf


Etc ...

IGlass is perfect for game menus with alpha smoothed (or animated) button
or little utility but if you want code 3DS Max :) use Max
GUI :)

hmm.. filaxteroid skin? :) :)

Well I say Kudos to both of you... Filax and Scott! Sharing is learning.

Now do you think this will be hard with iGlass?


Yes that, as Filax has shown you, will be totally easy.

hmm.. filaxteroid skin? :) :)


It comes with four or five skins I don't think that one is included. Filax?

I say Filax... do it... create the Filateroid Skin!!!

? What ? This gui is already created ?