bool VideoManager::Startup()
{
	if (InitalizeEngine())
	{
		// Get monitor information
		primaryMon = glfwGetPrimaryMonitor();
		videoMode = glfwGetVideoMode(primaryMon);
		return true;
	}

	return false;
}
Exemple #2
0
//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;
}