예제 #1
0
	//----------------------------------------------------------------------------------
	//
	//----------------------------------------------------------------------------------
	bool Core_Imp::DoEvents()
	{
		if (!m_isInitializedByExternal)
		{
			assert(m_window != nullptr);
			assert(m_keyboard != nullptr);
			assert(m_mouse != nullptr);
			assert(m_logger != nullptr);
			assert(m_joystickContainer != nullptr);
		}

		ControlFPS();
		ComputeFPS();

		if (m_isInitializedByExternal)
		{
		}
		else
		{
			m_keyboard->RefreshInputState();
			m_mouse->RefreshInputState();
			m_joystickContainer->RefreshJoysticks();
		}

		// 経過時間計算
		{
			if (deltaTimePreviousTime == 0)
			{
				deltaTimePreviousTime = GetTime();
			}

			auto delta = GetTime() - deltaTimePreviousTime;
			deltaTimePreviousTime = GetTime();
			
			if (framerateMode == FramerateMode::Constant)
			{
				deltaTime = (1.0f / (float) m_targetFPS) * timeSpan;
			}
			else if (framerateMode == FramerateMode::Variable)
			{
				deltaTime = delta / (1000.0f) * timeSpan;
			}
		}

		if (m_isInitializedByExternal)
		{
			return true;
		}

		return m_window->DoEvent();
	}
	//----------------------------------------------------------------------------------
	//
	//----------------------------------------------------------------------------------
	bool Core_Imp::DoEvents()
	{
		if (m_isInitializedByExternal) return true;

		assert(m_window != nullptr);
		assert(m_keyboard != nullptr);
		assert(m_mouse != nullptr);
		assert(m_logger != nullptr);
		assert(m_joystickContainer != nullptr);

		ControlFPS();
		ComputeFPS();

		m_keyboard->RefreshInputState();
		m_mouse->RefreshInputState();
		m_joystickContainer->RefreshJoysticks();

		return m_window->DoEvent();
	}