To update here, which may be the last update in this thread, due to the code now being in trunk
The first wave of additional changes to structure have been done, I say 'first wave' because I can't rule out others
The new Xcode project for the Mac has been committed also. As I think I mentioned elsewhere, these require a recompiled set of dependencies due to reorganisation of where we locate things within the bundles by default. I have a set of these (obviously ), though these use the older versions of the dependency libs. I'm not sure whether to upload those or wait and upload a version using the later versions of the dependency libs when I can get around to making those work - it's not all plain sailing creating these things, you know .
I hope to get the "Porting to 0.7.x" page started on the Wiki tomorrow at some stage. I have most of the changes that originated from the renderer rewrite in a text file already, I just have to add the trunk structural changes previously made, and the new stuff I've done this past week, then I'll put that up - obviously that's not a final version or anything, since there are lots more big changes coming to a svn trunk near you
I also need to update the supporting docs that are in trunk since they're also out of date.
CE.
RenderTargets - CEGUI's latest development
Moderators: CEGUI MVP, CEGUI Team
- CrazyEddie
- CEGUI Project Lead
- Posts: 6760
- Joined: Wed Jan 12, 2005 12:06
- Location: England
- Contact:
Useful Links: Forum Guidelines | Documentation | Tutorials | HOWTO | Videos | Donate to CEGUI | CEGUI Twitter
CrazyEddie wrote:The cost of rendering large amounts of text can be lessened by caching the text to a texture (so you only render two triangles instead of thousands).
Do I understand you correctly that this is already in the new renderer target stuff?
That would be awesome, as I abuse the "lots of texts" And I think a lot of others do so, in their game's chatroom.
Anyways grats on the fast advances you made!
- CrazyEddie
- CEGUI Project Lead
- Posts: 6760
- Joined: Wed Jan 12, 2005 12:06
- Location: England
- Contact:
Pompei2 wrote:CrazyEddie wrote:The cost of rendering large amounts of text can be lessened by caching the text to a texture (so you only render two triangles instead of thousands).
Do I understand you correctly that this is already in the new renderer target stuff?
Yes, this is functional. You're able to selectively specify which windows will use texture backing by way of the "AutoRenderingSurface" property (amongst other methods). In the current svn we have this enabled by default only on FrameWindow by way of the looknfeel definitions.
I think one of the new challenges when using this system will be tuning / balancing which windows should and which should not use the texture backing - there is no one size fits all solution here because it's entirely dependent upon usage scenarios. For example, a page of truly static text will definitely gain from being cached to texture, whereas a text that is (for some unknown reason) updated every single frame, would not gain - since we're drawing it every frame anyway, it might as well be directly to the root surface. This in turn has to be factored into the possibility of having multiple levels of texture caching, which again can be good in some scenarios but not in others. Another additional factor is then whether you're using rotation or other effects, since that generally needs the use of texture backed windows (though there are scenarios where this need not be the case; for example, the rotating CEGUI logo in the demos is not a window at all and uses no texture backing, it is drawn by a subscriber to a render queue drawing event).
Take for example the FirstWindow demo, this is potentially slower when using texture caching, since it's so simple to draw normally; the extra overhead of the RTT usage and setup costs more than just drawing the thing. Whereas things like Demo7 are definitely much, much faster when using caching due to the much more complex nature of the layout.
Pompei2 wrote:Anyways grats on the fast advances you made!
Thanks It should be good once 0.7 is released a little later on - especially to see what people start doing with some of the new facilities.
CE.
Useful Links: Forum Guidelines | Documentation | Tutorials | HOWTO | Videos | Donate to CEGUI | CEGUI Twitter
Re: RenderTargets - CEGUI's latest development
Hey,
I get an Segfault when using the CEGUI.
What happens?
I start the game, wait 1-2 seconds and it crashes.
I use Ogre 1.7.1 and CEGUI 0.7.2
valgrind says:
I found the following thread:
viewtopic.php?f=10&t=4347&p=20200&hilit=CEGUI%3A%3AOgreTextureTarget%3A%3Aclear#p20200
So I editet the Clear() function (in 0.7.2 it seems to be an old version?). After that I compiled CEGUI new and now I got following error:
How can I fix that?
Ah btw my code:
Just the first few steps. In InjectInput I just inject the input
Edit: And the CEGUI.log : http://pastebin.com/Kzt6cqNF
I get an Segfault when using the CEGUI.
What happens?
I start the game, wait 1-2 seconds and it crashes.
I use Ogre 1.7.1 and CEGUI 0.7.2
valgrind says:
==2605== Process terminating with default action of signal 11 (SIGSEGV)
==2605== Access not within mapped region at address 0x24C8
==2605== at 0xF85DB89: ??? (in /usr/X11R6/lib64/libGL.so.256.53)
==2605== by 0xF025A6A: Ogre::GLFBOManager::bind(Ogre::RenderTarget*) (OgreGLFBORenderTexture.cpp:431)
==2605== by 0xF041D2D: Ogre::GLRenderSystem::_setRenderTarget(Ogre::RenderTarget*) (OgreGLRenderSystem.cpp:3464)
==2605== by 0xF03CC01: Ogre::GLRenderSystem::_setViewport(Ogre::Viewport*) (OgreGLRenderSystem.cpp:1887)
==2605== by 0x9233BD6: CEGUI::OgreTextureTarget::clear() (CEGUIOgreTextureTarget.cpp:73)
==2605== by 0x839D97E: CEGUI::RenderingWindow::invalidate() (CEGUIRenderingWindow.cpp:223)
==2605== by 0x83C7494: CEGUI::Window::invalidate_impl(bool) (CEGUIWindow.cpp:1176)
==2605== by 0x83C853C: CEGUI::Window::invalidate(bool) (CEGUIWindow.cpp:1168)
==2605== by 0x83C868F: CEGUI::Window::onActivated(CEGUI::ActivationEventArgs&) (CEGUIWindow.cpp:2745)
==2605== by 0x8407D48: CEGUI::FrameWindow::onActivated(CEGUI::ActivationEventArgs&) (CEGUIFrameWindow.cpp:711)
==2605== by 0x83CE4DD: CEGUI::Window::moveToFront_impl(bool) (CEGUIWindow.cpp:1000)
==2605== by 0x83CE49A: CEGUI::Window::moveToFront_impl(bool) (CEGUIWindow.cpp:987)
I found the following thread:
viewtopic.php?f=10&t=4347&p=20200&hilit=CEGUI%3A%3AOgreTextureTarget%3A%3Aclear#p20200
So I editet the Clear() function (in 0.7.2 it seems to be an old version?). After that I compiled CEGUI new and now I got following error:
Texture: _cegui_ogre_0: Loading 1 faces(PF_A8B8G8R8,256x256x1) with 0 generated mipmaps from Image. Internal format is PF_A8R8G8B8,256x256x1.
Speicherzugriffsfehler
How can I fix that?
Ah btw my code:
Code: Select all
CEGUI::OgreRenderer::bootstrapSystem();
InjectInput::GetSingleton();
CEGUI::SchemeManager::getSingleton().create( "TaharezLook.scheme" );
CEGUI::FontManager::getSingleton().create( "DejaVuSans-10.font" );
CEGUI::System::getSingleton().setDefaultFont( "DejaVuSans-10" );
CEGUI::System::getSingleton().setDefaultMouseCursor( "TaharezLook", "MouseArrow" );
CEGUI::Window* myRoot = CEGUI::WindowManager::getSingleton().loadWindowLayout( "TextDemo.layout" );
CEGUI::System::getSingleton().setGUISheet( myRoot );
Just the first few steps. In InjectInput I just inject the input
Edit: And the CEGUI.log : http://pastebin.com/Kzt6cqNF
Return to “CEGUI Library Development Discussion”
Who is online
Users browsing this forum: No registered users and 2 guests