//---------------------------------------------------------------------------------- // //---------------------------------------------------------------------------------- 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; }
//---------------------------------------------------------------------------------- // //---------------------------------------------------------------------------------- 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; }