Future smaller Windows tablets and how EZGUI factors in!

The news about Windows 8.1 (update) is getting very interesting and one thing stands out. Windows tablets need to be more affordable and now with Microsoft selling Windows licenses to OEM’s for only $15 for tablets under $250, things may change. But there is another aspect about this which may have been unnoticed.

Lower hardware requirements

One article I read about this also pointed out that the Windows 8.1 minimum hardware requirements will drop to a tiny 1 gigabyte of RAM and only 16 gigabytes of disk space. Now that is really tiny by todays standards. So what kind of software can run on such minimal devices ?

Time to highlight EZGUI 5.0 professional

I have been saying this for a long time, but only got laughs from my peers. I designed EZGUI specifically for minimal hardware requirements. For years, while most programmers were developing on Windows XP computers, I was developing EZGUI on a Windows 95 PC with only 128 megabytes of RAM. Why ? Because you can’t really see the impact of software on minimal hardware unless you develop it on that kind of hardware. When most programmers were developing on Windows 7 with PC’s using iCore CPU’s and lots of RAM, I was developing EZGUI 5.0 Professional on a WIndows XP computer with only 768 megabytes of RAM. Again for the same reasons. I am currently developing my software on a Vista computer with 2 gigabytes of memory (which I upgraded when testing Windows 8 preview).

EZGUI was designed to run on minimal hardware !

But EZGUI does more than simply work on minimal hardware. It has a power GUI engine which itself is tiny in comparison to other GUI frameworks. EZGUI has more GUI power in it than classic Visual Basics core runtime (and a few key OCX’s) and it is half the size of the VB runtime and a few core OCX controls. Let’s take a look at this:

Just to be able to provide key user interface features (ie. common dialogs, common controls, richedit) Visual Basic 5.0 Professional requires the following runtimes:

  • msvbvm50.dll – 1324 KB
  • comdlg32.ocx  – 150 KB
  • comctl32.ocx   – 595 KB
  • comct232.ocx  – 161 KB
  • mscomct2.ocx – 633 KB
  • richtx32.ocx     – 208 KBTotal – 3071 KB.

Now let’s compare EZGUI 5.0 Professionals feature set and its runtime size:

  • ezgui50.dll       – 700 KB (main runtime with majority of features in it)
  • ezgui5gl.dll      – 225 KB  (OpenGL based glCanvas control)
  • ezgui5mm.dll  –  35 KB (MCI control for multimedia)
  • ezgui5me.dll    – 25 KB (masked edit control)
  • ezgui5bt.dll      – 43 KB (single user btree engine)

Total –  1028 KB

So what do you get in all of this runtime ?

You get the basic forms engines, all the standard controls, most of the common controls such as treeview, toolbar, listview, tab control, updown, progressbar, trackbar, statusbar, tooltips, calendar, datetime, pager,rebar and also you get the richedit control (versions 1.0 to 4.0). You also get all the main common dialogs and even the browse folder dialog. But you get a lot more !

EZGUI comes with its own advanced graphic engine, which most of it works on its own Canvas control, any DC’s and the printer. There is a set of graphic commands just for the Canvas, just for window/memory DC’s and one for the printer. So what kind of graphic features does it have ? Most of your basic drawing commands, but also things like 22 built in image filters, 360 degree image rotation, alphablending and more. Not done yet. EZGUI has its own proprietary custom controls built in (a few are in separate DLL’s), each with its own unique feature set:

  • Canvas control (with proprietary 2D Sprite engine built in)
  • glCanvas control (with a proprietary 3D OpenGL based scripting language built in)
  • Files Listbox control
  • Property Listbox control
  • Shape/Hotspot/Splitterbar control
  • Masked Edit control
  • Drag Handle control (for Visual Design drag and drop engine)
  • MCI control (for multimedia)
  • Turtle Graphics control (vector graphics scripting language)

That is a lot of custom controls built in ! The Canvas controls sprite engine does not require DirectX and is 100% software based. Sprites can be shown/hidden/moved , flipped, animate frames, alphablended and anti-aliased. It also does collision testing. The glCanvas control has over fifty 3D commands in it, a 3D primitive scripting language built in for defining models and it also supports the STL 3D model format used in 3D printing and rapid prototyping. It can handle models with millions of polygons in them. The MCI control has an easy scripting language built in and it can handle video, audio and CD audio.

Not done yet ! The drag handle control is part of EZGUI’s drag and drop engine. One of the most difficult style application to build is a WYSIWYG style, such as a visual designer for a programming language. EZGUI has this built in, using its subclassing engine to impliment drag and drop of real controls.  The Turtle Graphic control has its own 2D vector based scripting language built in, which can draw scalable images (ie. draw maps using coordinates of key points).

Now all of this may sound like a lot, but the EZGUI framework does even more. It has a low level DIB engine for working with bitmap images at the pixel level at high speed using pointers. It has an ownerdraw and/or customdraw engine for customizing controls which support it (ie. buttons, menus, combobox,listbox,listview, treeview,tab). This allows you to create your own unique looking controls using existing controls. It has a 2D and 3D colored button simplified ownerdraw engine built in so you can have custom looking button controls rather than system defined ones. EZGUI has a unique proprietary Layer engine so controls can be shown and hidden based on their assigned layers. It also has its own autoresize engine so controls can have resize attributes defined so when the parent form is resized the controls are resized automatically.

Not done yet ! EZGUI has its own Thread engine so you can create sycronized worker threads for background work. It has a Game loop engine with precision timing commands. Rather than have to use a timer control, EZGUI even provides a private timer mechanism for each control so they have their own private timers. EZGUI can generate complex window regions on the fly based on a bitmap image so controls and forms can be nonrectangular in shape. EZGUI supports multiple monitors, provides some theme drawing support for ownerdraw controls, has registry commands, clipboard commands, taskbar icon commands and control search functions. It has a drag and drop engine for the listview and treeview controls which even supports autoscrolling. It has a subclassing engine, superclassing engine and its own proprietary component engine (a form with controls can be treated as if it was a standalone control and reused).

And all of this with a runtime one third the size of the Visual Basic runtime and with many more advanced features.

EZGUI was designed for building powerful, fast and small applications !

Here are some sample demo apps I have been working on which may demonstrate this a little better:

Windows 8 compatiblity Test App:  http://cwsof.com/download/testwin8.zip

3D Model viewer demo app:   http://cwsof.com/download/ezmodvw11.zip

3D Sandbox demo app for Intel App Innovation contest:  http://cwsof.com/download/Sandbox3D.zip

The Sandbox app is actually not very large in size (the code), but has many embeded bitmaps which total about 1.8 megabytes, so the size of the EXE is pretty large.