bool ConsoleGame::Init()
{
	//Initialise the RuntimeObjectSystem
	m_pRuntimeObjectSystem = new RuntimeObjectSystem;
	m_pCompilerLogger = new StdioLogSystem();
	if( !m_pRuntimeObjectSystem->Initialise(m_pCompilerLogger, 0) )
    {
        m_pRuntimeObjectSystem = 0;
        return false;
    }
	m_pRuntimeObjectSystem->GetObjectFactorySystem()->AddListener(this);


	// construct first object
	IObjectConstructor* pCtor = m_pRuntimeObjectSystem->GetObjectFactorySystem()->GetConstructor( "RuntimeObject01" );
	if( pCtor )
	{
		IObject* pObj = pCtor->Construct();
		pObj->GetInterface( &m_pUpdateable );
		if( 0 == m_pUpdateable )
		{
			delete pObj;
			m_pCompilerLogger->LogError("Error - no updateable interface found\n");
			return false;
		}
		m_ObjectId = pObj->GetObjectId();

	}

	return true;
}
void ConsoleGame::OnConstructorsAdded()
{
	// This could have resulted in a change of object pointer, so release old and get new one.
	if( m_pUpdateable )
	{
		IObject* pObj = m_pRuntimeObjectSystem->GetObjectFactorySystem()->GetObject( m_ObjectId );
		pObj->GetInterface( &m_pUpdateable );
		if( 0 == m_pUpdateable )
		{
			delete pObj;
			m_pCompilerLogger->LogError( "Error - no updateable interface found\n");
		}
	}
}
示例#3
0
void ofLive::setup()
{
  rCPP.Initialise(&rLOG, NULL);

# ifdef TARGET_LINUX
# ifdef NDEBUG
  rCPP.AddLibraryDir("../of/lib-linux/release-x86-64");
# else
  rCPP.AddLibraryDir("../of/lib-linux/debug-x86-64");
# endif
# endif

# ifdef TARGET_LINUX
  rCPP.AddIncludeDir("/usr/include/AL");
  rCPP.AddIncludeDir("/usr/include/cairo");
  rCPP.AddIncludeDir("/usr/include/gtk-3.0");
  rCPP.AddIncludeDir("/usr/include/atk-1.0");
  rCPP.AddIncludeDir("/usr/include/glib-2.0");
  rCPP.AddIncludeDir("/usr/lib/glib-2.0/include/");
  rCPP.AddIncludeDir("/usr/include/harfbuzz");
  rCPP.AddIncludeDir("/usr/include/pixman-1");
  rCPP.AddIncludeDir("/usr/include/libpng12");
  rCPP.AddIncludeDir("/usr/include/pango-1.0");
  rCPP.AddIncludeDir("/usr/include/freetype2");
  rCPP.AddIncludeDir("/usr/include/gio-unix-2.0");
  rCPP.AddIncludeDir("/usr/include/gstreamer-1.0");
  rCPP.AddIncludeDir("/usr/lib/gstreamer-1.0/include");
  rCPP.AddIncludeDir("/usr/lib/gstreamer-1.0/include/gst");
  rCPP.AddIncludeDir("/usr/include/gdk-pixbuf-2.0");
  rCPP.AddIncludeDir("/usr/include/at-spi2-atk/2.0");
  rCPP.AddIncludeDir("/usr/lib/x86_64-linux-gnu/glib-2.0/include");
# endif

  rCPP.AddIncludeDir("../of/src/freeimage");
  rCPP.AddIncludeDir("../of/src/freeimage/OpenEXR");
  rCPP.AddIncludeDir("../of/src/freeimage/OpenEXR/Half");
  rCPP.AddIncludeDir("../of/src/freeimage/OpenEXR/Iex");
  rCPP.AddIncludeDir("../of/src/freeimage/OpenEXR/IlmImf");
  rCPP.AddIncludeDir("../of/src/freeimage/OpenEXR/IlmThread");
  rCPP.AddIncludeDir("../of/src/freeimage/OpenEXR/Imath");
  rCPP.AddIncludeDir("../of/src/rtaudio");
  rCPP.AddIncludeDir("../of/src/rtaudio/include");
  rCPP.AddIncludeDir("../of/src/utf8cpp");
  rCPP.AddIncludeDir("../of/src/utf8cpp/include");
  rCPP.AddIncludeDir("../of/src/utf8cpp/include/utf8");
  rCPP.AddIncludeDir("../of/src/glew");
  rCPP.AddIncludeDir("../of/src/glew/include");
  rCPP.AddIncludeDir("../of/src/glfw");
  rCPP.AddIncludeDir("../of/src/glfw/include");
  rCPP.AddIncludeDir("../of/src/glfw/include/GLFW");
  rCPP.AddIncludeDir("../of/src/kissfft");
  rCPP.AddIncludeDir("../of/src/kissfft/tools");
  rCPP.AddIncludeDir("../of/src/poco");
  rCPP.AddIncludeDir("../of/src/poco/Crypto/include");
  rCPP.AddIncludeDir("../of/src/poco/Foundation/include");
  rCPP.AddIncludeDir("../of/src/poco/Net/include");
  rCPP.AddIncludeDir("../of/src/poco/NetSSL_OpenSSL/include");
  rCPP.AddIncludeDir("../of/src/poco/Util/include");
  rCPP.AddIncludeDir("../of/src/poco/XML/include");
  rCPP.AddIncludeDir("../of/src/poco/Zip/include");
  rCPP.AddIncludeDir("../of/src/rtaudio");
  rCPP.AddIncludeDir("../of/src/rtaudio/include");
  rCPP.AddIncludeDir("../of/src/libtess2");
  rCPP.AddIncludeDir("../of/src/libtess2/Include");
  rCPP.AddIncludeDir("../of/src/libtess2/Sources");
  rCPP.AddIncludeDir("../of/src/openframeworks");
  rCPP.AddIncludeDir("of/src/openframeworks");
  rCPP.AddIncludeDir("../of/src/openframeworks/3d");
  rCPP.AddIncludeDir("../of/src/openframeworks/app");
  rCPP.AddIncludeDir("../of/src/openframeworks/communication");
  rCPP.AddIncludeDir("../of/src/openframeworks/events");
  rCPP.AddIncludeDir("../of/src/openframeworks/gl");
  rCPP.AddIncludeDir("../of/src/openframeworks/graphics");
  rCPP.AddIncludeDir("../of/src/openframeworks/math");
  rCPP.AddIncludeDir("../of/src/openframeworks/sound");
  rCPP.AddIncludeDir("../of/src/openframeworks/types");
  rCPP.AddIncludeDir("../of/src/openframeworks/utils");
  rCPP.AddIncludeDir("../of/src/openframeworks/video");

  rCPP.AddIncludeDir("RuntimeCompiledCPlusPlus/Aurora");
  rCPP.AddIncludeDir("addons/ofxImGui/src");
  rCPP.AddIncludeDir("addons/ofxImGui/libs/imgui/src");
  rCPP.AddIncludeDir("../of/addons/ofxAssimpModelLoader/src");
  rCPP.AddIncludeDir("../of/addons/ofxAssimpModelLoader/libs/assimp/include/");
  rCPP.AddIncludeDir("./");

  {
    ofDirectory dir(ofFilePath::getCurrentExeDir() + "..");
    dir.listDir();
    vector<ofFile> files = dir.getFiles();
    for (ofFile& file : files)
    {
      if (file.isDirectory() &&
          file.getBaseName().substr(0,3) == "ofx")
      {
        rCPP.AddIncludeDir(&(file.path())[0]);
        rCPP.AddIncludeDir(&(file.path() + "/src")[0]);
      }
    }
  }

  rCPP.GetObjectFactorySystem()->AddListener(this);

  {
    IObject* rObject = rCPP.GetObjectFactorySystem()->GetConstructor("ofApp")->Construct();
    rObject->GetInterface(&rAPP);
    rOID = rObject->GetObjectId();
  }

  rAPP->setup();
}