twGui
By Aaron J. Miller : Built with the TwilightEngine
Introduction
Hullo all. twGui (Twilight Gui) is a Direct3D based GUI environment useful for editors or game-side displayments. It currently features 4 different themes (soon 5): 1 - Smooth, This theme is a Windows XP/Windows Vista Basic styled theme, appropriate for editors; 2 - Candy Glass, This theme is a Windows Aero styled theme appropriate for editors and in some cases games. It sports a lovely look and runs just almost as fast (Only by 5-7 FPS difference) as the other themes; 3 - Classic, This theme is a cool classic Windows style theme, but with a modern twist. It looks lovely, and is my personal favorite; 4 - Flat, This theme is a "flat", performance oriented theme. This theme uses as little draw calls as possible to render the GUI drawing it as quickly as possible. This theme is the fastest of all, and still looks quite nice, this theme is suitable for editors and games. And
coming soon 5 - Raster, This theme will use the user-chosen images to render the window. This theme can be used to render Windows XP, Linux, or much more game oriented windows and controls.
The GUI's core functions:
* Can generate windows on the-fly, no need to update each window individually (That should be a given).
* Window text is clipped correctly, and drawn pretty.
* Windows support maximize and close functions (Minimize coming soon, sorry).
* Windows will retrieve callbacks (Meaning a function will be called at a specific event) for things such as, the window getting created (Useful for initializing data), the window getting moved (Useful if you have information that needs to be updated upon the windows movement), when the window is resized (Useful if you want to stretch an image to the window's size), when the window has been attempted to be minimized, maximized, restored (Restore = Set to normal orientation of state), or closed, and when the window is about to be freed (Meaning the window is going to be destroyed, nothing can be done to stop this, so free any memory you need to associated with the window before the window itself is freed).
* Windows support the following client draw types:
Flat Color - The client of the window will be drawn as a color, and then the draw callback will be called,
Image - An image will be used as the background of the window, and then the draw callback will be called,
None - The draw callback will be called instantly (The draw callback is awsomed to take care of how to draw the background and such). Coming soon
Gradient Color - 4 Colors will be used to render the client of the window, this is useful for drawing in gradients or for making the GUI look "cooler",
Render Target - Other portions of Direct3D will render inside of the window.
* Windows can be colored any color, and will render using that color. Pure white, no alpha = 0xffffffff, Pure white, 50% alpha = 0x80ffffff, Orange, some alpha: 0xb0ff8000, etc. <You can obtain these values with RGB (Or if you're using the Twilight Engine with ColorRGB or ColorRGBA)>.
* You can send custom messages to window callbacks.
* Parent/Child Support for windows
* Rendering inside a window is cliped correctly, and quickly!
Drawing functions (For draw callbacks):
* You can render text
* You can word-wrap text
* You can draw boxes
* You can draw textures/images
Coming Soon
* You will soon be able to draw gradient boxes
* You will soon be able to draw lines
* You will soon be able to draw gradient-lines
* You will soon be able to draw "advanced" textures/images (Meaning have more control over the rendering process)
Any ideas for what else could be needed for rendering to a window?
DarkBasic Pro Side
Coming Soon
* The DBP plugin
Controls to be added
* Forms/Panels
* Buttons
* Check Boxes
* Radio Boxes
* Edits
* Sliders
* Progress-Bars
* Combo Boxes
* List Boxes
* Tree-View
* List-View
Screenshots
Demos
Demo attached
Cheers,
-naota
With any luck you'll be able to turn a fully functioning program to a crashing program with just a little bit of coding.
Aex.Uni forums