bool VideoManager::Startup() { if (InitalizeEngine()) { // Get monitor information primaryMon = glfwGetPrimaryMonitor(); videoMode = glfwGetVideoMode(primaryMon); return true; } return false; }
//Main Thread int main(int argc, char** argv) { InitalizeEngine(); InitalizeNetwork(); window = new FireCore::Graphics::Window("Graphics Context -FireCore <Opengl 4.5>", 800, 800); memoryManager = new FireCore::Managers::MemoryManager(); fileManager = new FireCore::Managers::FileManager(memoryManager); renderer = new FireCore::Managers::Renderer(window); sceneManager = new FireCore::Managers::SceneManager(fileManager, renderer,window); /// Load Scenes sceneManager->AddScene(new FireCore::World::Debug()); sceneManager->AddScene(new FireCore::World::LoginScreen()); sceneManager->AddScene(new FireCore::World::Game()); sceneManager->AddScene(new FireCore::World::Graph()); sceneManager->Initialise(); //Threads and loops #if defined DEBUG CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)AdminScene, NULL, NULL, NULL); #endif CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)MessageThread, NULL, NULL, NULL); double lastTime = 0; ImGui_ImplGlfwGL3_Init(window->getWindow(), true); while (true) { double currentTime = glfwGetTime(); double deltaTime = float(currentTime - lastTime); window->Clear(); sceneManager->Update(deltaTime); ImGui_ImplGlfwGL3_NewFrame(); if (ImGui::BeginMainMenuBar()) { if (ImGui::BeginMenu("Levels")) { if (ImGui::MenuItem("Forest", "Index : 0 ")) { sceneManager->ChangeLevel(0); } ImGui::Separator(); if (ImGui::MenuItem("Login Screen", "Index : 1 ")) { sceneManager->ChangeLevel(1); } ImGui::Separator(); if (ImGui::MenuItem("Quarry", "Index : 2 ")) { sceneManager->ChangeLevel(2); } ImGui::Separator(); if (ImGui::MenuItem("Graph Example", "Index : 3 ")) { sceneManager->ChangeLevel(3); } ImGui::Separator(); if (ImGui::MenuItem("Exit", "")) { exit(1); } ImGui::EndMenu(); } if (ImGui::BeginMenu("Edit")) { if (ImGui::MenuItem("Edit Object..", NULL, &Edit_Mode)) { if (Edit_Mode){ EditorWindow(&Edit_Mode, renderer->GetSelectedObject()); } } ImGui::Separator(); if (ImGui::MenuItem("Save...")) { std::cout << "Saving file not yet implimented noob..." << std::endl; } ImGui::EndMenu(); } if (ImGui::BeginMenu("Chat")) { if (ImGui::MenuItem("Chat Console", NULL, &Chat_Enabled)) { if (Chat_Enabled){ NetworkChat(&Chat_Enabled); } } ImGui::EndMenu(); } if (ImGui::BeginMenu("Debug")) { if (ImGui::MenuItem("Colliders", NULL, &Collider_Debug)){ renderer->SetDebug(Collider_Debug); } ImGui::Separator(); if (ImGui::MenuItem("Camera -> Tracked", NULL, &Camera_TRACKED)){ Camera_FPS = false; Camera_FIXED = false; renderer->GetCamera()->SetType(FireCore::Graphics::CameraType::Tracked); } if (ImGui::MenuItem("Camera -> FPS", NULL, &Camera_FPS)){ Camera_TRACKED = false; Camera_FIXED = false; renderer->GetCamera()->SetType(FireCore::Graphics::CameraType::FPS); } if (ImGui::MenuItem("Camera -> Fixed", NULL, &Camera_FIXED)){ Camera_FPS = false; Camera_TRACKED = false; renderer->GetCamera()->SetType(FireCore::Graphics::CameraType::Fixed); } ImGui::EndMenu(); } ImGui::EndMainMenuBar(); } if (Chat_Enabled){ NetworkChat(&Chat_Enabled); } if (Edit_Mode){ EditorWindow(&Edit_Mode,renderer->GetSelectedObject()); } ImGui::Render(); window->Update(); lastTime = currentTime; } return 0; }