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.. :D

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).