DefaultResourceProvider exception [SOLVED]

For help with general CEGUI usage:
- Questions about the usage of CEGUI and its features, if not explained in the documentation.
- Problems with the CMAKE configuration or problems occuring during the build process/compilation.
- Errors or unexpected behaviour.

Moderators: CEGUI MVP, CEGUI Team

kiske1
Just popping in
Just popping in
Posts: 17
Joined: Fri May 20, 2016 11:53

DefaultResourceProvider exception [SOLVED]

Postby kiske1 » Wed May 25, 2016 14:03

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!
Last edited by kiske1 on Mon Jul 11, 2016 09:42, edited 1 time in total.

YaronCT
CEGUI Team
Posts: 448
Joined: Fri Jun 19, 2015 12:18
Location: Kiryat-Bialik, Israel

Re: DefaultResourceProvider exception

Postby YaronCT » Wed May 25, 2016 15:33

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?

User avatar
Ident
CEGUI Team
Posts: 1998
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: DefaultResourceProvider exception

Postby Ident » Sat May 28, 2016 12:56

In addition to what yaron said please post the callstack.
CrazyEddie: "I don't like GUIs"

kiske1
Just popping in
Just popping in
Posts: 17
Joined: Fri May 20, 2016 11:53

Re: DefaultResourceProvider exception

Postby kiske1 » Wed Jul 06, 2016 11:57

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!

YaronCT
CEGUI Team
Posts: 448
Joined: Fri Jun 19, 2015 12:18
Location: Kiryat-Bialik, Israel

Re: DefaultResourceProvider exception

Postby YaronCT » Thu Jul 07, 2016 20:00

@kiske1: I'm looking into it.

YaronCT
CEGUI Team
Posts: 448
Joined: Fri Jun 19, 2015 12:18
Location: Kiryat-Bialik, Israel

Re: DefaultResourceProvider exception

Postby YaronCT » Thu Jul 07, 2016 21:25

@kiske1: Can u plz also specify compiler (name, version, arch) and Ogre version?

kiske1
Just popping in
Just popping in
Posts: 17
Joined: Fri May 20, 2016 11:53

Re: DefaultResourceProvider exception

Postby kiske1 » Fri Jul 08, 2016 10:17

Compiler is VS2015 Community on Windows 10 pro. As for Ogre is 1.9 version

kiske1
Just popping in
Just popping in
Posts: 17
Joined: Fri May 20, 2016 11:53

Re: DefaultResourceProvider exception

Postby kiske1 » Mon Jul 11, 2016 09:15

@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!

kiske1
Just popping in
Just popping in
Posts: 17
Joined: Fri May 20, 2016 11:53

Re: DefaultResourceProvider exception

Postby kiske1 » Mon Jul 11, 2016 09:41

Ok here it is, now the samples works!

Thank you again!

YaronCT
CEGUI Team
Posts: 448
Joined: Fri Jun 19, 2015 12:18
Location: Kiryat-Bialik, Israel

Re: DefaultResourceProvider exception [SOLVED]

Postby YaronCT » Mon Jul 11, 2016 17:03

@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!

YaronCT
CEGUI Team
Posts: 448
Joined: Fri Jun 19, 2015 12:18
Location: Kiryat-Bialik, Israel

Re: DefaultResourceProvider exception [SOLVED]

Postby YaronCT » Sat Jul 16, 2016 14:28

@kiske1: If you're interested, feel free to share with us about the project u work on (in the dedicated forum).


Return to “Help”

Who is online

Users browsing this forum: No registered users and 11 guests