Page 1 of 1

Irrlicht software renderers don't render CEGUI

Posted: Thu Feb 01, 2007 22:34
by kbluck
I've noticed that the Irrlicht software renderers EDT_SOFTWARE and EDT_SOFTWARE2 don't render CEGUI. EDT_DIRECT3D8, EDT_DIRECT3D9, and EDT_OPENGL all render as expected.

Presently, I'm trying to figure out why this is by stepping through a bunch of unfamiliar code. By chance, is there anybody here who already knows the reason?

Thanks,

--- Kevin

Posted: Mon Feb 05, 2007 10:57
by Das Gurke
CEGUI is hardware accelareted, thats why it is so fast. So software rendering is imho not supported.

I think what CEGUI does when used in combination with an engine is to grab the 3D Device and uses it.

Posted: Thu Feb 08, 2007 20:03
by kbluck
I thought about that possibility myself. But I would expect that if CEGUI were attempting to hook a 3d device and it failed to do so due to software rendering, it would throw an exception. But it silently does nothing at all. It runs happily while rendering nothing.

Still looking at it, but failing to find anything obvious (to me).

Thanks,

Kevin

Posted: Thu Feb 08, 2007 20:21
by kbluck
As far as I can tell, basically all CEGUI does is set up its quads by loading textures:

Code: Select all

IrrlichtTexture* t = new IrrlichtTexture(this, device);
t->loadFromFile(filename, resourceGroup);
...and each frame draws each textured quad:

Code: Select all

driver->draw2DImage(texture,quad.dst,quad.src,0,colors,true);
I can't see any obvious reason this wouldn't work with the software renderers.

Thanks,

Kevin