///////////////////////////////////////////////////////////// /// Lance l'application /// //////////////////////////////////////////////////////////// void Game::Run() { InitializeEngineSettings(); //#if BGFX_CONFIG_MULTITHREADED MakeWindow(); IRenderer::Get().Initialize(m_EngineSettings); OnWindowResized(m_EngineSettings.WindowWidth, m_EngineSettings.WindowHeight); //s_renderThread.init(renderThreadFunc, this); RenderThreadloop(); //s_renderThread.shutdown(); }
void SFMLWorld::RunWorld(void) { window = new sf::RenderWindow(sf::VideoMode(windowWidth, windowHeight), "World window"); Clock cl = Clock(); totalElapsedSeconds = 0.0f; worldOver = false; float elapsed; sf::Event windowEvent; InitializeWorld(); cl.restart(); while (window->isOpen() && !worldOver) { //Handle window events first. while (window->pollEvent(windowEvent)) { if (windowEvent.type == sf::Event::Closed) { OnCloseWindow(); } else if (windowEvent.type == sf::Event::Resized) { OnWindowResized(windowEvent.size.width, windowEvent.size.height); } else { OnOtherWindowEvent(windowEvent); } } //Get elapsed time. elapsed = cl.getElapsedTime().asSeconds(); totalElapsedSeconds += elapsed; cl.restart(); //Call functions. if (elapsed > 0.0f) { UpdateWorld(elapsed); RenderWorld(elapsed); } } OnWorldEnd(); }
bool CBaseControl::DispatchOwnEvent(sf::Event const & event) { switch (event.type) { case sf::Event::MouseButtonPressed: return OnMousePressed(event.mouseButton); case sf::Event::MouseButtonReleased: return OnMouseReleased(event.mouseButton); case sf::Event::Resized: return OnWindowResized(event.size); case sf::Event::MouseMoved: return OnMouseMoved(event.mouseMove); default: return false; } }
void Game::HandleWindowEvents() { sf::Event event; bool handled = false; m_Input.Update(); #ifndef EDITOR //CEGUI::GUIContext &GUIContext = CEGUI::System::getSingleton().getDefaultGUIContext(); #endif // #ifndef EDITOR ImGuiIO& io = ImGui::GetIO(); while (m_pWindow->pollEvent(event)) { m_Input.OnEvent(event); switch (event.type) { case sf::Event::Closed: Exit(); break; case sf::Event::Resized: OnWindowResized(event.size.width, event.size.height); break; case sf::Event::KeyPressed: io.KeysDown[event.key.code] = 1; switch (event.key.code) { case sf::Keyboard::Quote: m_Console.VisibilityToggle(); break; case sf::Keyboard::F1: m_DebugOptions.ShowLogInGame = !m_DebugOptions.ShowLogInGame; break; default: #ifndef EDITOR //handled = GUIContext.injectKeyDown(convertKeyCodeToCEGUIKey(event.key.code)); #endif // #ifndef EDITOR break; } break; #ifndef EDITOR case sf::Event::KeyReleased: //handled = GUIContext.injectKeyUp(convertKeyCodeToCEGUIKey(event.key.code)); io.KeysDown[event.key.code] = 0; break; case sf::Event::TextEntered: //Console::Instance().SendChar(static_cast<char>(event.text.unicode)); //handled = GUIContext.injectChar(static_cast<char>(event.text.unicode)); io.AddInputCharacter(event.text.unicode); break; case sf::Event::MouseButtonPressed: switch (event.mouseButton.button) { case sf::Mouse::Left: //handled = GUIContext.injectMouseButtonDown(CEGUI::LeftButton); io.MouseDown[0] = true; break; case sf::Mouse::Right: //handled = GUIContext.injectMouseButtonDown(CEGUI::RightButton); io.MouseDown[1] = true; break; case sf::Mouse::Middle: //handled = GUIContext.injectMouseButtonDown(CEGUI::MiddleButton); io.MouseDown[2] = true; break; case sf::Mouse::XButton1: //handled = GUIContext.injectMouseButtonDown(CEGUI::X1Button); break; case sf::Mouse::XButton2: //handled = GUIContext.injectMouseButtonDown(CEGUI::X2Button); break; } break; case sf::Event::MouseButtonReleased: switch (event.mouseButton.button) { case sf::Mouse::Left: //handled = GUIContext.injectMouseButtonUp(CEGUI::LeftButton); io.MouseDown[0] = false; break; case sf::Mouse::Right: //handled = GUIContext.injectMouseButtonUp(CEGUI::RightButton); io.MouseDown[1] = false; break; case sf::Mouse::Middle: //handled = GUIContext.injectMouseButtonUp(CEGUI::MiddleButton); io.MouseDown[2] = false; break; case sf::Mouse::XButton1: //handled = GUIContext.injectMouseButtonUp(CEGUI::X1Button); break; case sf::Mouse::XButton2: //handled = GUIContext.injectMouseButtonUp(CEGUI::X2Button); break; } break; case sf::Event::MouseMoved: // handled = GUIContext.injectMousePosition( // static_cast<float>(event.mouseMove.x), // static_cast<float>(event.mouseMove.y)); io.MousePos.x = static_cast<float>(event.mouseMove.x); io.MousePos.y = static_cast<float>(event.mouseMove.y); case sf::Event::MouseWheelMoved: //handled = GUIContext.injectMouseWheelChange(static_cast<float>(event.mouseWheel.delta)); io.MouseWheel += static_cast<float>(event.mouseWheel.delta); break; #endif // #ifndef EDITOR } } }
void SFMLWorld::RunWorld(void) { contextSettings = GenerateContext(); window = new sf::RenderWindow(GetModeToUse(windowWidth, windowHeight), GetWindowTitle().c_str(), GetSFStyleFlags(), contextSettings); Clock cl = Clock(); totalElapsedSeconds = 0.0f; worldOver = false; float elapsed; sf::Event windowEvent; InitializeWorld(); windowHasFocus = true; cl.restart(); while (window->isOpen() && !worldOver) { //Handle window events first. while (window->pollEvent(windowEvent)) { if (windowEvent.type == sf::Event::Closed) { OnCloseWindow(); } else if (windowEvent.type == sf::Event::Resized) { OnWindowResized(windowEvent.size.width, windowEvent.size.height); } else if (windowEvent.type == sf::Event::LostFocus) { windowHasFocus = false; OnWindowLostFocus(); } else if (windowEvent.type == sf::Event::GainedFocus) { windowHasFocus = true; OnWindowGainedFocus(); } else { OnOtherWindowEvent(windowEvent); } } //Get elapsed time. elapsed = cl.getElapsedTime().asSeconds(); cl.restart(); totalElapsedSeconds += elapsed; //Update various managers. Input.Update(elapsed, totalElapsedSeconds); Timers.UpdateTimers(elapsed); //Update and render. if (elapsed > 0.0f) { UpdateWorld(elapsed); RenderWorld(elapsed); } } OnWorldEnd(); delete window; window = 0; }
void EventHandler::OnEvent (sf::Event* event) { switch (event->type) { case sf::Event::Closed: //Window closed: OnClosed(); break; case sf::Event::Resized: //Window resized: OnWindowResized (event->size); case sf::Event::GainedFocus: //Window gained focus: OnGainedFocus(); break; case sf::Event::LostFocus: //Window lost focus: OnLostFocus(); break; break; case sf::Event::TextEntered: //Text entered: OnTextEntered (event->text); break; case sf::Event::KeyPressed: //Key pressed: OnKeyPressed (event->key); break; case sf::Event::KeyReleased: //Key released: OnKeyReleased (event->key); break; case sf::Event::MouseWheelMoved: //Mouse wheel moved: OnMouseWheelMoved (event->mouseWheel); break; case sf::Event::MouseButtonPressed: //Mouse button pressed: OnMouseButtonPressed (event->mouseButton); break; case sf::Event::MouseButtonReleased: //Mouse button released: OnMouseButtonReleased(event->mouseButton); break; case sf::Event::MouseMoved: //Mouse moved: OnMouseMoved (event->mouseMove); break; case sf::Event::MouseEntered: //Mouse entered Window bounds: OnMouseEntered(); break; case sf::Event::MouseLeft: //Mouse left Window bounds: OnMouseLeft(); break; case sf::Event::JoystickButtonPressed: //Joystick button pressed: OnJoystickButtonPressed (event->joystickButton); break; case sf::Event::JoystickButtonReleased: //Joystick button released: OnJoystickButtonReleased(event->joystickButton); break; case sf::Event::JoystickMoved: //Joystick moved: OnJoystickMoved(event->joystickMove); break; case sf::Event::JoystickConnected: //Joystick connected: OnJoystickConnected (event->joystickConnect); break; case sf::Event::JoystickDisconnected: //Joystick disconnected: OnJoystickDisconnected (event->joystickConnect); break; } }