예제 #1
0
//----------------------------------------------------------------------------------
//
//----------------------------------------------------------------------------------
void SetGLEnable(bool value)
{
#if _WIN32
	if (value)
	{
		glfwMakeOpenGLEnabled();
	}
	else
	{
		glfwMakeOpenGLDisabled();
	}
#endif
}
	//----------------------------------------------------------------------------------
	//
	//----------------------------------------------------------------------------------
	bool Core_Imp::Initialize(const achar* title, int32_t width, int32_t height, bool isFullScreen, bool isOpenGLMode, bool isMultithreadingMode)
	{
		if (m_window != nullptr) return false;
		if (m_keyboard != nullptr) return false;
		if (m_mouse != nullptr) return false;
		if (m_joystickContainer != nullptr) return false;
		if (m_logger != nullptr) return false;
		if (m_profiler != nullptr) return false;

		m_isInitializedByExternal = false;

#if _WIN32
		if (isOpenGLMode)
		{
			glfwMakeOpenGLEnabled();
		}
		else
		{
			glfwMakeOpenGLDisabled();
		}
#else
		if (!isOpenGLMode)
		{
			return false;
		}
#endif

		m_logger = Log_Imp::Create(ToAString("Log.html").c_str(), title);

		m_window = Window_Imp::Create(width, height, title);
		m_keyboard = Keyboard_Imp::Create(m_window);
		m_mouse = Mouse_Imp::Create(m_window);
		m_joystickContainer = JoystickContainer_Imp::Create();

		m_graphics = Graphics_Imp::Create(m_window, isOpenGLMode, m_logger, isMultithreadingMode);
		if (m_graphics == nullptr) return false;

		m_sound = new Sound_Imp();

		m_objectSystemFactory = new ObjectSystemFactory_Imp(m_graphics, m_logger, m_window->GetSize());
		m_profiler = Profiler_Imp::Create();
		m_profilerViewer = ProfilerViewer_Imp::Create(m_profiler, m_graphics, m_logger, m_window->GetSize());

		m_animationSyatem = new AnimationSystem_Imp();

		m_logger->WriteLineStrongly(L"コア初期化成功");

		return true;
	}
	//----------------------------------------------------------------------------------
	//
	//----------------------------------------------------------------------------------
	bool Core_Imp::InitializeByExternalWindow(void* handle1, void* handle2, int32_t width, int32_t height, bool isOpenGLMode, bool isMultithreadingMode)
	{
		if (m_window != nullptr) return false;
		if (m_keyboard != nullptr) return false;
		if (m_mouse != nullptr) return false;
		if (m_joystickContainer != nullptr) return false;
		if (m_logger != nullptr) return false;

		m_isInitializedByExternal = true;

#if _WIN32
		if (isOpenGLMode)
		{
			glfwMakeOpenGLEnabled();
		}
		else
		{
			glfwMakeOpenGLDisabled();
		}
#else
		if (!isOpenGLMode)
		{
			return false;
		}
#endif

		m_logger = Log_Imp::Create(ToAString("Log.html").c_str(), ToAString(L"").c_str());

		m_graphics = Graphics_Imp::Create(handle1, handle2, width, height, false, m_logger, isMultithreadingMode);
		if (m_graphics == nullptr) return false;

		m_sound = new Sound_Imp();

		m_objectSystemFactory = new ObjectSystemFactory_Imp(m_graphics, m_logger, Vector2DI(width,height));

		m_profiler = Profiler_Imp::Create();
		m_profilerViewer = ProfilerViewer_Imp::Create(m_profiler, m_graphics, m_logger, Vector2DI(width, height));

		m_animationSyatem = new AnimationSystem_Imp();

		m_logger->WriteLineStrongly(L"コア初期化成功");

		return true;
	}
예제 #4
0
	//----------------------------------------------------------------------------------
	//
	//----------------------------------------------------------------------------------
	bool Core_Imp::InitializeByExternalWindow(void* handle1, void* handle2, int32_t width, int32_t height, CoreOption option)
	{
		if (m_window != nullptr) return false;
		if (m_keyboard != nullptr) return false;
		if (m_mouse != nullptr) return false;
		if (m_joystickContainer != nullptr) return false;
		if (m_file != nullptr) return false;
		if (m_logger != nullptr) return false;

		m_isInitializedByExternal = true;

#if _WIN32
		if (option.GraphicsDevice == GraphicsDeviceType::OpenGL)
		{
			glfwMakeOpenGLEnabled();
		}
		else
		{
			glfwMakeOpenGLDisabled();
		}
#else
		if (option.GraphicsDevice != GraphicsDeviceType::OpenGL)
		{
			return false;
		}
#endif

		m_file = File_Imp::Create();
		m_logger = Log_Imp::Create(ToAString("Log.html").c_str(), ToAString(L"").c_str());

		m_graphics = Graphics_Imp::Create(handle1, handle2, width, height, option.GraphicsDevice, m_logger,m_file, option.IsReloadingEnabled, option.IsFullScreen);
		if (m_graphics == nullptr) return false;

		m_sound = new Sound_Imp(m_file, m_logger, option.IsReloadingEnabled);

		m_objectSystemFactory = new ObjectSystemFactory_Imp(this, m_graphics, m_logger, Vector2DI(width, height));

		m_profiler = Profiler_Imp::Create();
		m_layerProfiler = LayerProfiler_Imp::Create();
		m_profilerViewer = ProfilerViewer_Imp::Create(this, m_profiler, m_layerProfiler, m_graphics, m_logger, Vector2DI(width, height));

		m_animationSyatem = new AnimationSystem_Imp();

		m_windowSize = Vector2DI(width, height);
		layerRenderer = new LayerRenderer(m_graphics);
		layerRenderer->SetWindowSize(m_windowSize);

		{
			asd::Vector2DF lpos[4];
			lpos[0].X = 0;
			lpos[0].Y = 0;
			lpos[1].X = (float)m_windowSize.X;
			lpos[1].Y = 0;
			lpos[2].X = (float)m_windowSize.X;
			lpos[2].Y = (float)m_windowSize.Y;
			lpos[3].X = 0;
			lpos[3].Y = (float)m_windowSize.Y;
			layerRenderer->SetLayerPosition(lpos);
		}
		
		m_logger->WriteHeading(L"システム");

		WriteSystemSpecToLog(m_logger);
		m_logger->WriteLineStrongly(L"コア初期化成功");

		return true;
	}