Page 1 of 1
DefaultResourceProvider exception [SOLVED]
Posted: Wed May 25, 2016 14:03
by kiske1
Hi!
I've downloaded the 0.8.7 version and been able to succesfully compile. The problem comes trying to run the sampleframework, inside this function:
Code: Select all
//----------------------------------------------------------------------------//
void DefaultResourceProvider::setResourceGroupDirectory(
const String& resourceGroup,
const String& directory)
{
if (directory.length() == 0)
return;
#if defined(_WIN32) || defined(__WIN32__)
// while we rarely use the unportable '\', the user may have
const String separators("\\/");
#else
const String separators("/");
#endif
if (String::npos == separators.find(directory[directory.length() - 1]))
d_resourceGroups[resourceGroup] = directory + '/';
else
d_resourceGroups[resourceGroup] = directory;
}
specifically on the line:
Code: Select all
d_resourceGroups[resourceGroup] = directory;
the exception thrown is a read access one, exactly :
Code: Select all
std::_Tree<std::_Tmap_traits<CEGUI::String,CEGUI::String,CEGUI::StringFastLessCompare,std::allocator<std::pair<CEGUI::String const ,CEGUI::String> >,0> >::_Root(...) returned 0xC7D4B3AF.
The directory variable seems to be correctly populated, as the resourceGroup one.
Could someone please help me?
Many thanks in advance!
Re: DefaultResourceProvider exception
Posted: Wed May 25, 2016 15:33
by YaronCT
kiske1: Can u plz write the contents of the file "samples/common/include/CEGUISamplesConfig.h" under your build directory? Also, did u run the sample framework straight from the build directory, or did u install cegui and then run the sample framework from where cegui was installed?
Re: DefaultResourceProvider exception
Posted: Sat May 28, 2016 12:56
by Ident
In addition to what yaron said please post the callstack.
Re: DefaultResourceProvider exception
Posted: Wed Jul 06, 2016 11:57
by kiske1
YaronCT wrote:kiske1: Can u plz write the contents of the file "samples/common/include/CEGUISamplesConfig.h" under your build directory? Also, did u run the sample framework straight from the build directory, or did u install cegui and then run the sample framework from where cegui was installed?
Sorry for the super-delay, I've been forced to move to other projects in the last month, but now I'm back with CEGUI..
As for the CEGUISamplesConfig.h here it is:
Code: Select all
/***********************************************************************
created: Mon Jan 10 2011
author: Paul D Turner <paul@cegui.org.uk>
*************************************************************************/
/***************************************************************************
* Copyright (C) 2004 - 2011 Paul D Turner & The CEGUI Development Team
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
***************************************************************************/
//////////////////////////////////////////////////////////////////////////
/*************************************************************************
This file can be used to set certain configuration options which are used
when compiling the samples for Crazy Eddie's GUI System.
Each item in here has a comment to describe what it's for.
*************************************************************************/
//////////////////////////////////////////////////////////////////////////
#ifndef _CEGUISamplesConfig_h_
#define _CEGUISamplesConfig_h_
// Bring in main config file
#include "CEGUI/Config.h"
/* #undef CEGUI_SAMPLE_DATAPATH */
#ifndef CEGUI_SAMPLE_DATAPATH
// Define the default place where samples will look for datafiles
#if defined(_WIN32) || defined(__WIN32__)
# define CEGUI_SAMPLE_DATAPATH "C:/Progetti/PGM_DISTRIBUZIONE/cegui-0.8.7/SRC/datafiles"
#else
# define CEGUI_SAMPLE_DATAPATH "C:/Progetti/PGM_DISTRIBUZIONE/cegui-0.8.7/share/cegui-0"
#endif
#endif
//////////////////////////////////////////////////////////////////////////
// Comment/Uncomment these lines to control renderer use in samples.
//////////////////////////////////////////////////////////////////////////
/* #undef CEGUI_BUILD_RENDERER_OPENGL */
/* #undef CEGUI_BUILD_RENDERER_OPENGL3 */
/* #undef CEGUI_SAMPLES_SUPPORT_RENDERER_OPENGLES2 */
/* #undef CEGUI_USE_GLFW_VER */
#define CEGUI_BUILD_RENDERER_OGRE
/* #undef CEGUI_BUILD_RENDERER_IRRLICHT */
/* #undef CEGUI_OPENGL_VER_MAJOR_FORCE */
#define CEGUI_OPENGL_VER_MINOR_FORCE
/* #undef CEGUI_BUILD_RENDERER_DIRECT3D9 */
/* #undef CEGUI_BUILD_RENDERER_DIRECT3D10 */
/* #undef CEGUI_BUILD_RENDERER_DIRECT3D11 */
/* #undef CEGUI_BUILD_RENDERER_DIRECTFB */
/* #undef CEGUI_SAMPLES_USE_GTK2 */
/* #undef CEGUI_SAMPLES_RENDERER_OPENGL_ACTIVE */
#define CEGUI_SAMPLES_RENDERER_OGRE_ACTIVE
/* #undef CEGUI_SAMPLES_RENDERER_IRRLICHT_ACTIVE */
/* #undef CEGUI_SAMPLES_RENDERER_DIRECT3D9_ACTIVE */
/* #undef CEGUI_SAMPLES_RENDERER_DIRECT3D10_ACTIVE */
/* #undef CEGUI_SAMPLES_RENDERER_DIRECT3D11_ACTIVE */
/* #undef CEGUI_SAMPLES_RENDERER_DIRECTFB_ACTIVE */
#endif // end of guard _CEGUISamplesConfig_h_
I've tried to run the sampleframework straight from the build directory
@Ident here is the callstack:
Code: Select all
> CEGUIBase-0_d.dll!std::_Tree<std::_Tmap_traits<CEGUI::String,CEGUI::String,CEGUI::StringFastLessCompare,std::allocator<std::pair<CEGUI::String const ,CEGUI::String> >,0> >::_Lbound<CEGUI::String>(const CEGUI::String & _Keyval) Line 2090 C++
CEGUIBase-0_d.dll!std::_Tree<std::_Tmap_traits<CEGUI::String,CEGUI::String,CEGUI::StringFastLessCompare,std::allocator<std::pair<CEGUI::String const ,CEGUI::String> >,0> >::lower_bound(const CEGUI::String & _Keyval) Line 1549 C++
CEGUIBase-0_d.dll!std::map<CEGUI::String,CEGUI::String,CEGUI::StringFastLessCompare,std::allocator<std::pair<CEGUI::String const ,CEGUI::String> > >::_Try_emplace<CEGUI::String const &>(const CEGUI::String & _Keyval) Line 210 C++
CEGUIBase-0_d.dll!std::map<CEGUI::String,CEGUI::String,CEGUI::StringFastLessCompare,std::allocator<std::pair<CEGUI::String const ,CEGUI::String> > >::try_emplace<>(const CEGUI::String & _Keyval) Line 230 C++
CEGUIBase-0_d.dll!std::map<CEGUI::String,CEGUI::String,CEGUI::StringFastLessCompare,std::allocator<std::pair<CEGUI::String const ,CEGUI::String> > >::operator[](const CEGUI::String & _Keyval) Line 339 C++
CEGUIBase-0_d.dll!CEGUI::DefaultResourceProvider::setResourceGroupDirectory(const CEGUI::String & resourceGroup, const CEGUI::String & directory) Line 113 C++
CEGUISampleFramework-0.8_d.exe!CEGuiBaseApplication::initialiseResourceGroupDirectories(const CEGUI::String & dataPathPrefixOverride) Line 203 C++
CEGUISampleFramework-0.8_d.exe!CEGuiBaseApplication::init(SamplesFrameworkBase * sampleApp, const CEGUI::String & logFile, const CEGUI::String & dataPathPrefixOverride) Line 124 C++
CEGUISampleFramework-0.8_d.exe!CEGuiOgreBaseApplication::init(SamplesFrameworkBase * sampleApp, const CEGUI::String & logFile, const CEGUI::String & dataPathPrefixOverride) Line 134 C++
CEGUISampleFramework-0.8_d.exe!SamplesFrameworkBase::initialise(const CEGUI::String & logFile, const CEGUI::String & dataPathPrefixOverride) Line 306 C++
CEGUISampleFramework-0.8_d.exe!SamplesFramework::initialise(const CEGUI::String & logFile, const CEGUI::String & dataPathPrefixOverride) Line 115 C++
CEGUISampleFramework-0.8_d.exe!SamplesFrameworkBase::run(const CEGUI::String & dataPathPrefixOverride) Line 142 C++
CEGUISampleFramework-0.8_d.exe!main(int __formal, char * * argv) Line 87 C++
[External Code]
[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]
Thanks!
Re: DefaultResourceProvider exception
Posted: Thu Jul 07, 2016 20:00
by YaronCT
@kiske1: I'm looking into it.
Re: DefaultResourceProvider exception
Posted: Thu Jul 07, 2016 21:25
by YaronCT
@kiske1: Can u plz also specify compiler (name, version, arch) and Ogre version?
Re: DefaultResourceProvider exception
Posted: Fri Jul 08, 2016 10:17
by kiske1
Compiler is VS2015 Community on Windows 10 pro. As for Ogre is 1.9 version
Re: DefaultResourceProvider exception
Posted: Mon Jul 11, 2016 09:15
by kiske1
@YaronCT,
I've seen your last commits, are they addressing my problem? As I was going down the same route, I'll test them as soon as possible...
Thanks for your time!
Re: DefaultResourceProvider exception
Posted: Mon Jul 11, 2016 09:41
by kiske1
Ok here it is, now the samples works!
Thank you again!
Re: DefaultResourceProvider exception [SOLVED]
Posted: Mon Jul 11, 2016 17:03
by YaronCT
@kiske1: Ok, it has been broken by me. (but I meant good, I swear!) I've indeed fixed it and pushed to the cegui branch "v0-8". There's also a bug not caused by me that prevents the sample framework to work with the Ogre renderer when u specify the path of "samples.xml" as a command line argument (which is necessary when u run it straight from the build directory without installing it, unless u copy "samples.xml" to the source directory which is a bad solution). I didn't tell u about my fix coz I wanted to fix the other bug too, but now I see it'll take more time. I'm glad it now works for u!
Re: DefaultResourceProvider exception [SOLVED]
Posted: Sat Jul 16, 2016 14:28
by YaronCT
@kiske1: If you're interested, feel free to share with us about the project u work on (in the
dedicated forum).