Page 1 of 5

RenderTargets - CEGUI's latest development

Posted: Mon Feb 18, 2008 08:06
by CrazyEddie

This is a post / thread for the render target development that I am working on at the moment. Any bugs and such things directly related to the new code should be put in here.

The "RenderTarget" concept is something that that Dalfy, Lindquist and myself discussed a long time ago and was originally to form the core of a set of Renderer changes for the 0.6.x series code. Unfortunately this was hugely delayed so is not in that code, but work has now begun.

The work is being done in a separate branch in subversion and for the time being the code should be considered as experimental and interfaces etc as unstable. Use the following URL if you want to check the code out (literally and figuratively):

Code: Select all

Development is being done primarily on linux, though the code is checked regularly on Windows too. As of this writing the only renderer to have started getting updated in the OpenGL one - others will follow once the interfaces are stable. To build the thing you need to disable building of all the other renderers and some other bits like the lua module (again, this will get updated once interfaces are more stable).

For more information in general, see All About RenderTargets on the Wiki.


Posted: Thu Feb 21, 2008 15:10
by Pompei2
cool to see you code again and cool subtitle in the wiki :lol:

Posted: Sat Mar 01, 2008 07:51
by CrazyEddie
Thanks :)

Posted: Sun Mar 02, 2008 21:19
by fooguru
Good to see you man.

Wiki wrote:I don't like CEGUI. It sucks, and CrazyEddie sucks too!

Is that really a frequently asked question?

No. I'm going to be serious now:
Who leads CEGUI? Even free software has project leaders.

Posted: Mon Mar 03, 2008 08:14
by scriptkid
fooguru wrote:Is that really a frequently asked question?

Well it seems -knowing Eddie a little bit now- that there's some sarcasm in that line. However certain members or a certain other community don't like Cegui too much. But that has nothing to do with CE himself :)

fooguru wrote:Who leads CEGUI? Even free software has project leaders.

During CE's abscence, the other teammembers pretty much answered forum post and fixed some urgent bugs. A while ago, things looked good when an external person offered to become the project lead. However this person seems to have vanished...

Right now, with Eddie back, he might automatically fall back into his old role. However other teammembers are trying to make more time for Cegui aswell. But you are right with saying that someone should take the lead and manage the library's directions.

Posted: Mon Mar 03, 2008 08:26
by CrazyEddie
RE: The FAQ line...
Yeah, it's mainly a little light hearted jab at a minority of people who like to bring others down while contributing nothing. A pox on their house, I say :lol:

RE: Leaders...
To continue what scriptkid says, there really is currently no leader as such; although inevitably such a role will need to be filled in order to take CEGUI forwards beyond what is being worked on at the moment. CEGUI does need a more focussed direction and a plan for the future, whether it will be myself that provides this, only time will tell ;)


Posted: Sun Mar 09, 2008 21:58
by CrazyEddie
I'm hoping to be able commit an attempt at a working RenderTarget based renderer for Ogre tomorrow sometime. I posted on the Wiki that I'd been delayed and it was going to be a while longer, but I've put the hours in yesterday and today and now have something that's working (though nowhere near complete) :lol:

I'll spend tomorrow finishing up a couple of bits, fixing a some issues, and tidying up some final things so that hopefully nobody will laugh when they see it. Once it's in svn I'll hack at the premake files and test it on Windows - which I have not done so far.

Initial results are again very promising, for example around a 1000 fps jump in 'standing' frame rate with demo 7. Along with the fact that manipulating a frame window is much less of a performance hit since it's redrawing much less than previously.

Just to qualify that 1000 fps statement a little - since I forgot the OpenGL comparison table was not posted publicly. Obviously the actual increase seen will depend largely on the system it's running on and existing performance (in this case for my development rig, it previously was running at about 1800fps and jumped to around 2800fps); if it currently runs at 100fps these enhancements will unlikely give a jump up to 1100pfs - you would more likely see a more modest jump to, say perhaps, 150fps.

I'll post again here and update the Wiki page once it's in and tested and working on Windows as well as Linux.


Posted: Mon Mar 10, 2008 16:01
by CrazyEddie
Ok, the code for the Ogre renderer rewite using the RenderTarget system has been committed to SVN. The build systems for autotools and premake have been updated to build and use the integrated OgreGUIRenderer where things are configured for that.

The code builds on both Linux and Windows (see note below), though currently there appear to be some bugs that I have to fix that only showed up when I ran on Windows. I'm hoping to get that fixed this evening if possible.

In the Ogre renderer code I have continued to use the convention used by the Ogre project for it's CEGUI usage of prefixing the includes with 'CEGUI' (i.e. <CEGUI/someinclude.h>). This means that in 99.9% of cases when you try to build this it will fail! What I personally have done is created a symlink (and a JP on Windows) from cegui_mk2/include to cegui_mk2/CEGUI - this allows things to be found correctly. I'm maintaining this at the moment due to the fact that the idea is for this code to replace the existing renderer in the Ogre samples code base - and maintaining this convention will ease the transition back - though if enough people argue the other way I will change it while the code is in our svn repository.

Posted: Mon Apr 21, 2008 08:54
by CrazyEddie
Quick update time!

I have to admit that progress has been slooow :) As I've gotten into things and had the desire to have other new abilities (such as rotated imagery and other advanced rendering of imagery), it has inhibited the RenderTarget work some what.

Originally what started out as a fairly simple update of the Renderer modules has been transformed into something else entirely. I feel all this other work is important to enable CEGUI to remain the first choice as far as rendered GUIs go. The upshot is that there is no longer an appropriate 'band-aid' that can get this work done (well, there is, but such a solution would devalue the library soo much) - so I am taking the time to work out the 'correct' solution.

I believe the final outcome will be a simplified, but more powerful, rendering system.


Posted: Tue Jun 10, 2008 08:16
by ErikHjortsberg
Has there been any more progress with this? It sounds really promising.

Posted: Tue Jun 10, 2008 08:41
by CrazyEddie

Progress is slow on 0.7.0 related features at the moment while we wrestle with getting a 0.6.1 release out the door (this is pencilled in for the end of the month). Once this is done, I intend to neglect all else in an attempt to complete this work, and some other core additions for 0.7.0.

It's fairly likely that an initial version of the render target based renderers could be merged back into svn trunk at some point in July. (With a view to having a 0.7.0 release in September or so).

I'm kind of suffering at the moment from having a million and one jobs to do :)


Posted: Sun Jul 06, 2008 09:26
by CrazyEddie
Hi there.

Just a quick note to confirm that now 0.6.1 has been released, I will pretty much be working on this part of the code exclusively until it is done.

The initial code put into the redertarget-devel branch has now mainly served as a test of the general concept. As previously mentioned, I could have left it at that and said "there you go!", but this is not particularly how CE works. Because of wanting to get the job done right, and the various other rendering level enhancements that have been either directly requested, or just mentioned in passing, this work will now consist of a fundamental change of structure and approach with regards to some lower level parts of CEGUI (yes, very vague - I'm not revealing what I'm doing until it's done :P). I imagine this work should be completed over the next four to five weeks.

Brace yourselves. I will not disappoint :twisted:


Posted: Mon Jul 28, 2008 09:05
by CrazyEddie
Just a quick note to say that I am still working on this, though progress is very, very slow. The slow progress is for numerous reasons, and I ask that those people awaiting this new system to continue to be patient.


Bad idea

Posted: Tue Oct 14, 2008 11:51
by AndryBlack
In my humble opinion. Implementation rendertargets in CEGUI bad idea. This feature is rendered. CEGUI - manager gui them and should remain so.

Posted: Tue Oct 14, 2008 13:40
by CrazyEddie
Hi :)

Maybe the name 'rendertarget' is not a good one. I think that the feature-set itself is a good one, and also very important for CEGUI. It has the potential to solve some serious performance issues, allows for the kind of animation and other effects you see in some 'modern' GUIs, and also allows the developer to hook into the rendering process much easier where that is desired.

All of this is to be done at a level that will not fundamentally change the way that CEGUI currently operates, and should also allow compatibility with the existing approach in cases where the more advanced API facilities are not available.