When I start the application, it immediately bombs out with the following error in the log file:
Code: Select all
---- CEGUI System initialisation completed ----
(Error) Exception: No event named 'DisplayModeChanged' is defined for this EventSet
It seems like somehow DisplayModeChanged (Renderer::EventDisplaySizeChanged) isn't defined in the Renderer's EventSet. It should be, here's a piece from CEGUIRenderer.cpp (line 53):
Code: Select all
Renderer::Renderer(void)
: d_resourceProvider(0)
{
// setup standard events available
addEvent(EventDisplaySizeChanged);
// default initialisation
resetZValue();
}
It errors out after the initialisation of System (after creating the System class), when trying to subscribe the above event, CEGUISystem.cpp (line 315):
Code: Select all
// subscribe to hear about display mode changes
d_renderer->subscribeEvent(Renderer::EventDisplaySizeChanged, Event::Subscriber(&CEGUI::System::handleDisplaySizeChange, this));
Now, here's some source code from my application. I'm using a DirectX 8.1 renderer for this.
Code: Select all
using namespace CEGUI;
DirectX81Renderer *pRend = NULL;
pRend = new DirectX81Renderer( pD3DDevice, Size(g_scScreen.BackBufferWidth, g_scScreen.BackBufferHeight ) );
new System(pRend);
pRend->postD3DReset();
I've tried to solve this by putting a addEvent(Renderer::EventDisplaySizeChanged) before the creation of the System class, but that resulted in a crash.
I thought I had it fixed by putting a removeEvent(Renderer::EventDisplaySizeChanged) after the new System line (it started working again), but it stopped working after a period of time.
Anyhow.. this error only appears to be happening on my system and not on other developers systems. I'm running Windows 2003 Standard Edition with DirectX 9.0c, latest NVidia drivers. I'm using Visual C++ 6.0 and CEGUI 1.0 (1.1 wouldn't work either).