Jump to content


DynaDream's dynalib GUI Demo


9 replies to this topic

#1 Guest_Carlo Lanzotti_*

  • Guests

Posted 28 March 2009 - 02:00 PM

Posted Image


Description
Hi all,

This is a demo showing a preview of a graphical user interface system that is part of a large development kit developed by me over the years.

The system is totally platform independant and has no source or binary dependecies (Except for the OpenGL driver for the graphics).

Many features are included in it like dynamic array, maps, hashs, lists, signal/slots system, reference counted memory management, object's reflection-introspection, a framework that allow the creation of simple projects or more complex and GUI rich 3d applications that include 3d scenegraph management, soft and rigid body dynamics and many more.

It feature also very small and fast executables.

Actually it run on all major Linux/Unix distributions as well as Windows, MaxOSX and Haiku. Both 32 and 64 bits platform supported. It runs even on the iPhone.

The SDK is developed in C and feature a simple and clean object oriented system that support class inheritance and functions overloading.

A Windows demo executable can be downloaded from:

dldemo.zip

In order to run the demo, you may need the VisualC++ 2005 SP1 runtime that can be downloaded from the Microsoft web site.

Note for Vista's users:

The demo is compiled with a non recent version of the Windows platform SDK so, if you are running Vista, you may want to disable the Aero feature as it can considerably slow down the application.

I may provide the demo for other platforms if requested.

Best Regards,

Carlo Lanzotti

DynaDream - www.dynadream.com

#2 soconne

    New Member

  • Members
  • PipPip
  • 21 posts

Posted 28 March 2009 - 08:01 PM

That's awesome. Are you going to share any of the architectural details? Do you render each window to its own texture? Is everything just drawn every frame? What sort of event system are you using? Delegates, callbacks, ect...?

For things like images, fonts...do you pack them all into one large atlas, or do they each reside in their own texture?

Since you're using OpenGL, how did you handle pixel perfect rendering? (i.e. what are the values you're sending to glOrtho and/or sending to glTranslate to offset pixel centers).

#3 Carlo Lanzotti

    New Member

  • Members
  • Pip
  • 7 posts

Posted 28 March 2009 - 10:25 PM

soconne said:

That's awesome. Are you going to share any of the architectural details? Do you render each window to its own texture? Is everything just drawn every frame? What sort of event system are you using? Delegates, callbacks, ect...?

For things like images, fonts...do you pack them all into one large atlas, or do they each reside in their own texture?

Since you're using OpenGL, how did you handle pixel perfect rendering? (i.e. what are the values you're sending to glOrtho and/or sending to glTranslate to offset pixel centers).

Hi, thanks for the 'awesome' :-)

Of course, I will share some details:

1) No, no texture used for windows rendering, all drawed by using basic primitive functions.

2) Yes, everything is drawed each frame.

3) Event system are delegate based.

4) Images, fonts etc with the OpenGL driver reside in it's own texture.

5) Pixel perfect rendering was a problem with old drivers, so I had to find some way to overcome this. Anyway, depending on the primitive rendered, I mostly use the suggested OpenGL's redbook offset pixel value of 0.375, but as I stated, this depends on what and where you are drawing.

Feel free to ask other questions, I will be glad to reply.

Best Regards,

Carlo Lanzotti

#4 Carlo Lanzotti

    New Member

  • Members
  • Pip
  • 7 posts

Posted 28 March 2009 - 10:26 PM

Hi all,

Some peoples (From other source) emailed me requesting a Linux and a MacOSX demo. Here is the Linux version (32 bit) link for the download:

http://win.dynadream...-linux32.tar.gz

The demo was tested with Ubuntu 6.x and 8.x but should work without problems on other distributions too.

To run the demo use the included shell script (./dldemo.sh)

I will release a MacOSX version shortly.

Best Regards,

Carlo Lanzotti

#5 soconne

    New Member

  • Members
  • PipPip
  • 21 posts

Posted 29 March 2009 - 02:19 AM

Carlo Lanzotti said:

Hi, thanks for the 'awesome' :-)

5) Pixel perfect rendering was a problem with old drivers, so I had to find some way to overcome this. Anyway, depending on the primitive rendered, I mostly use the suggested OpenGL's redbook offset pixel value of 0.375, but as I stated, this depends on what and where you are drawing.

Carlo Lanzotti

Yeah, that's how I did it too in my GUI I'm developing. I was just wondering if you had found a different method.

#6 TheNut

    Senior Member

  • Moderators
  • 1701 posts
  • LocationCyberspace

Posted 30 March 2009 - 01:05 AM

YO. Nicely done ;) Writing a GUI system is no easy task. I pulled my hair out writing mine and I'm still not satisfied with it.

Carlo Lanzotti said:

It feature also very small and fast executables.
This is about the only thing I'll ding you on. My CPU (intel core 2) was at 50%, so it was pigging out on one of my cores (and yes, I did close the spinning naked woman :). This should be something you enhance on since it's pivatal a GUI system not consume up much resource.

On another note,

soconne said:

Is everything just drawn every frame?
A while back my team and I did some research and prototyping on a region based rendering technique in OpenGL, to support non-hardware accelerated graphics cards for our 2D based game. There was slight gains, almost to the point of substandard playability, but it was not worth it. With today's games and complexities, I would not suggest anyone waste their time on that. Even the crappy systems sold today offer cards with minimal shader support. More than enough power to handle these graphics.
http://www.nutty.ca - Being a nut has its advantages.

#7 alphadog

    DevMaster Staff

  • Moderators
  • 1716 posts

Posted 30 March 2009 - 12:57 PM

There are many GUI toolkits/SDKs. Some advice: nothing in your blurb sells me on dynalib. You should have some text in there that answers questions like "Why would I want to use this?"

#8 Carlo Lanzotti

    New Member

  • Members
  • Pip
  • 7 posts

Posted 30 March 2009 - 01:57 PM

alphadog said:

There are many GUI toolkits/SDKs. Some advice: nothing in your blurb sells me on dynalib. You should have some text in there that answers questions like "Why would I want to use this?"

Hi,

As I stated, this is a tech preview, not a final product. I will post all the needed informations when the product will be ready.

Best Regards,

Carlo Lanzotti

#9 Carlo Lanzotti

    New Member

  • Members
  • Pip
  • 7 posts

Posted 30 March 2009 - 11:43 PM

TheNut said:

YO. Nicely done ;) Writing a GUI system is no easy task. I pulled my hair out writing mine and I'm still not satisfied with it.

Never pull your hair out, you'll need at some point ;-)

Quote

This is about the only thing I'll ding you on. My CPU (intel core 2) was at 50%, so it was pigging out on one of my cores (and yes, I did close the spinning naked woman :). This should be something you enhance on since it's pivatal a GUI system not consume up much resource.

Yes, you are right, but you tried it on a one CPU system? ;-)

Quote

On another note,

A while back my team and I did some research and prototyping on a region based rendering technique in OpenGL, to support non-hardware accelerated graphics cards for our 2D based game. There was slight gains, almost to the point of substandard playability, but it was not worth it. With today's games and complexities, I would not suggest anyone waste their time on that. Even the crappy systems sold today offer cards with minimal shader support. More than enough power to handle these graphics.

You mean the old and well-done-made dirty regions approach? Test I made recently converge with you. With today hardware it make non-sense, but still I recommend young programmers to deal with it! :-)

Carlo Lanzotti

#10 tigerlc

    New Member

  • Members
  • Pip
  • 5 posts

Posted 22 May 2009 - 08:05 PM

Carlo Lanzotti said:

Never pull your hair out, you'll need at some point ;-)



Yes, you are right, but you tried it on a one CPU system? ;-)



You mean the old and well-done-made dirty regions approach? Test I made recently converge with you. With today hardware it make non-sense, but still I recommend young programmers to deal with it! :-)

Carlo Lanzotti

For a GUI system without many animations, dirty region-based approach should still be better.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users