0

I'm having a hard time trying to get an app to compile in Visual Studio 2013. I've solved a good amount of errors but I can't find a solution for the last one.

here it is:

void Application::setupRenderSystem() {
mState->dumpValues();

String val = mState->getStringValue("renderSystem");
RenderSystemList *renderSystems = mRoot->getAvailableRenderers();
RenderSystemList::iterator r_it;    

bool renderSystemFound = false;
for (r_it = renderSystems->begin(); r_it != renderSystems->end(); r_it++) {
    RenderSystem *tmp = *r_it;
    std::string rName(tmp->getName());

    // returns -1 if string not found
    if ((int)rName.find(val) >= 0) {
        mRoot->setRenderSystem(*r_it);
        renderSystemFound = true;
        break;
    }
}        
if (!renderSystemFound) {
    OGRE_EXCEPT(0, "Specified render system (" + val + ") not found, exiting...", "Application")
}

}

Visual Studio indicates that the line RenderSystemList *renderSystems = mRoot->getAvailableRenderers(); is the problem, especially mRoot

Here is the error I get: error C2440: 'initializing' : cannot convert from 'const Ogre::RenderSystemList' to 'Ogre::RenderSystemList *'

Georges S.
  • 35
  • 2
  • 7

2 Answers2

0

The Ogre API says:

const RenderSystemList &    getAvailableRenderers (void)

So it returns a const reference and not a pointer. Modify your code like this

const RenderSystemList &renderSystems = mRoot->getAvailableRenderers();
pokey909
  • 1,797
  • 1
  • 16
  • 22
0

The getAvailableRenderers method doesn't return a pointer to a RenderSystemList. You'd want to have the value stored in a reference to a RenderSystemList:

RenderSystemList const& renderSystems = mRoot->getAvailableRenderers();
user123
  • 8,970
  • 2
  • 31
  • 52
  • Thx. Now the problem is that `renderSystems->begin()` and `renderSystems->end()` are supposed to be pointers. Here is the error I get: **Expression must have a pointer type** – Georges S. Jul 16 '14 at 00:12
  • renderSystems is not a pointer. You use `.` instead of `->`. The `->` operator is only for pointers. – user123 Jul 16 '14 at 00:23