OKI thanks, I made some progress again and now I am stuck with CEGUI :
this function seeems to try createResource() with empty name :
Code: Select all
void OgreRenderer::constructor_impl(Ogre::RenderTarget& target)
{
d_pimpl->d_renderSystem = d_pimpl->d_ogreRoot->getRenderSystem();
d_pimpl->d_displaySize.d_width = target.getWidth();
d_pimpl->d_displaySize.d_height = target.getHeight();
d_pimpl->d_useGLSLCore = ( d_pimpl->d_renderSystem->getName().compare(0, 8, "OpenGL 3") == 0 ) ;
// create default target & rendering root (surface) that uses it
d_pimpl->d_defaultTarget =
CEGUI_NEW_AO OgreWindowTarget(*this, *d_pimpl->d_renderSystem, target);
#ifdef CEGUI_USE_OGRE_HLMS
d_pimpl->d_renderTarget = ⌖
#endif
#if OGRE_VERSION >= 0x10800
#ifdef CEGUI_USE_OGRE_HLMS
bool isFixedFunctionEnabled = false;
// Check if built with RT Shader System and if it is: Check if fixed function pipeline is enabled
#else
bool isFixedFunctionEnabled = d_pimpl->d_renderSystem->getCapabilities()->hasCapability(Ogre::RSC_FIXED_FUNCTION);
d_pimpl->d_material = Ogre::MaterialManager::getSingleton().create(
"__cegui_internal_material__",
Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);
Ogre::Pass* pass = d_pimpl->d_material->getTechnique(0)->getPass(0);
pass->setLightingEnabled(false);
pass->setDepthCheckEnabled(false);
pass->setDepthWriteEnabled(false);
pass->setCullingMode(Ogre::CULL_NONE);
pass->setFog(true, Ogre::FOG_NONE);
pass->setVertexColourTracking(Ogre::TVC_DIFFUSE);
Ogre::TextureUnitState* tus = pass->createTextureUnitState();
tus->setTextureFiltering(Ogre::TFO_BILINEAR);
tus->setTextureAddressingMode(Ogre::TextureUnitState::TAM_CLAMP);
tus->setColourOperationEx(Ogre::LBX_MODULATE, Ogre::LBS_TEXTURE, Ogre::LBS_DIFFUSE);
tus->setAlphaOperation(Ogre::LBX_MODULATE, Ogre::LBS_TEXTURE, Ogre::LBS_DIFFUSE);
#ifndef RTSHADER_SYSTEM_BUILD_CORE_SHADERS
if (!isFixedFunctionEnabled)
CEGUI_THROW(RendererException("RT Shader System not available but trying to render using OpenGL 3.X+ Core."
"When GLSL shaders are necessary, the RT Shader System component of Ogre is required for rendering CEGUI."));
#endif
#endif
// Default to using shaders when that is the sane thing to do.
// We check for use of the OpenGL 3+ Renderer in which case we always wanna (because we have to) use shaders
if (!isFixedFunctionEnabled)
setUsingShaders(true);
#endif
// hook into the rendering process
#if !defined(CEGUI_USE_OGRE_COMPOSITOR2)
d_pimpl->d_ogreRoot->addFrameListener(&S_frameListener);
#endif
}
First of all MSVSC seems to be totally confused as where is the execution point : it shows at line :
Code: Select all
d_pimpl->d_material = Ogre::MaterialManager::getSingleton().create(
"__cegui_internal_material__",
Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);
but all code block from #if OGRE_VERSION >= 0x10800 to #endif is in pale gray , suggesting the preprocessor code didn't provide this code piece...
and one more thing : how do I know what;s the OGRE_VERSION under debugging session and other preprocessor constants ? As usual the Windows way of Hoover mouse or CLICK philosophy does not succeed --- it simply shows nothing....