bool Root::init(bool fullscr, int w, int h) { LOG_INFO("loading root"); windowWidth = w; windowHeight = h; fullscreen = fullscr; if(!initGLFW()) return false; if(!initGLEW()) return false; // set GL stuff glEnable(GL_DEPTH_TEST); glEnable(GL_CULL_FACE); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); //Call these in the right order: Models need Textures TextureManager::shared().initialize(); //MaterialManager::shared().initialize(); ModelManager::shared().initialize(); overlay = new Overlay(); if(!overlay->init()) return false; Interface* interf = new Interface; if(!interf->init()) { LOG_INFO("Could not initialize interface"); return false; } addFrameListener(interf); Console* console = new Console; if(!console->init()) { LOG_INFO("Could not initialize console"); return false; } addFrameListener(console); addInputListener(console); LOG_INFO("Root initialized"); return true; }
int Root::initialize() { if( initialized ){ Logger::getSingleton().log(Logger::WARNING, "Root object already initialized"); return 1; } //TODO: Get window width/height from setting file if( !window ){ sf::ContextSettings Settings; Settings.depthBits = 24; // Request a 24 bits depth buffer Settings.stencilBits = 8; // Request a 8 bits stencil buffer Settings.antialiasingLevel = 2; // Request 2 levels of antialiasing //window = new sf::Window(sf::VideoMode(1024, 768, 32), "OpenGL Window", sf::Style::Close, Settings); window = new sf::Window(sf::VideoMode::getDesktopMode(), "Motor Project", sf::Style::Close, Settings); } if( !renderer->initialize(window->getSize().x, window->getSize().y) ){ cleanup(); return 0; } timer->initialize(); textureManager->initialize(); materialManager->initialize(); meshManager->initialize(); modelManager->initialize(); currentScene = new Scene; addFrameListener(currentScene); if( !currentScene->initialize() ){ cleanup(); return 0; } renderer->setTerrain(currentScene->getTerrain()); renderer->checkErrors(); Logger::getSingleton().log(Logger::INFO, "Motor initialized"); initialized = true; return 1; }
Scene* Root::makeDefaultScene() { if(!scene) delete scene; scene = new Scene; if( !scene->isInitialized() ) { LOG_ERROR("Unable to initialize scene"); delete scene; scene = 0; return 0; } else addFrameListener(scene); LOG_INFO("Made scene"); return scene; }