crash when initializing resource groups

Minor issues with the Ogre API that can be trivial to fix
Post Reply
uzik
Goblin
Posts: 202
Joined: Sun Feb 25, 2007 1:45 am
Location: USA
Contact:

crash when initializing resource groups

Post by uzik » Tue Nov 19, 2013 11:03 pm

If you call

Code: Select all

::Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups();
before creating a render window ogre crashes.

If a resource group contains shader source code the resource manager tries to verify that the shader is of a supported type.
Since the render system has not set the capabilities yet the second statement in the code below retrieves an uninitialized pointer and tries to use it.

Code: Select all

bool GpuProgramManager::isSyntaxSupported(const String& syntaxCode) const
    {
        // Use the current render system
        RenderSystem* rs = Root::getSingleton().getRenderSystem();

        // Get the supported syntax from RenderSystemCapabilities 
        return rs->getCapabilities()->isShaderProfileSupported(syntaxCode);
    }
I suggest a couple of asserts or exceptions that check the pointers "rs" and "rs->getCapabilities()" for sanity.
If they are invalid it might suggest to the user that they must create a valid render window before initializing the resource groups.
0 x
---A dream doesn't become reality through magic; it takes sweat, determination and hard work.

User avatar
spacegaier
OGRE Team Member
OGRE Team Member
Posts: 4291
Joined: Mon Feb 04, 2008 2:02 pm
Location: Germany
x 2
Contact:

Re: crash when initializing resource groups

Post by spacegaier » Wed Nov 20, 2013 1:26 am

Sounds reasonable. Can you please either create a JIRA ticket and link to this thread or (even better) provide a pull-request for quick merging. Thanks!
0 x
Ogre Admin [Admin, Dev, PR, Finance, Wiki, etc.] | BasicOgreFramework | AdvancedOgreFramework
Don't know what to do in your spare time? Help the Ogre wiki grow! Or squash a bug...

Post Reply