void BaseManager::destroy() { destroyScene(); destroyPointerManager(); destroyInput(); destroyGui(); // очищаем сцену if (mSceneManager) { mSceneManager->clearScene(); mSceneManager->destroyAllCameras(); mSceneManager = nullptr; mCamera = nullptr; } if (mWindow) { mWindow->destroy(); mWindow = nullptr; } if (mRoot) { Ogre::RenderWindow* window = mRoot->getAutoCreatedWindow(); if (window) window->removeAllViewports(); delete mRoot; mRoot = nullptr; } }
void BasisManager::destroyBasisManager() // очищаем все параметры каркаса приложения { destroyGui(); // очищаем сцену if (mSceneMgr) { mSceneMgr->clearScene(); mSceneMgr->destroyAllCameras(); mSceneMgr = 0; } destroyInput(); // удаляем ввод if (mWindow) { mWindow->destroy(); mWindow = 0; } if (mRoot) { Ogre::RenderWindow * mWindow = mRoot->getAutoCreatedWindow(); if (mWindow) mWindow->removeAllViewports(); delete mRoot; mRoot = 0; } }
void BaseManager::destroy() { destroyScene(); destroyPointerManager(); destroyInput(); destroyGui(); destroyRender(); if (mpHGE) { mpHGE->System_Shutdown(); mpHGE->Release(); } /* if (hWnd) { DestroyWindow(hWnd); hWnd = 0; } UnregisterClass(WND_CLASS_NAME, hInstance); */ }
void callbackFromMainApplicationThread(int call_id) { switch(call_id) { case CREATE_GUI: createGui(); break; case DESTROY_GUI: destroyGui(); break; } }
void BaseManager::shutdown() { destroyScene(); destroyPointerManager(); destroyInput(); destroyGui(); //destroyRender(); }
void BaseManager::destroy() { destroyScene(); destroyPointerManager(); destroyInput(); destroyGui(); destroyRender(); }
void BaseManager::destroy() { destroyScene(); destroyPointerManager(); destroyInput(); destroyGui(); destroyRender(); SDL_GL_DeleteContext(mContext); IMG_Quit(); SDL_Quit(); }
void BaseManager::destroy() { destroyScene(); destroyPointerManager(); destroyInput(); destroyGui(); destroyRender(); if (hWnd) { DestroyWindow(hWnd); hWnd = 0; } UnregisterClass(WND_CLASS_NAME, hInstance); }
void BaseManager::shutdown() { mPreLuaScript.clear(); mPreLuaLocation.clear(); mPreLoad.clear(); destroyScene(); destroyPointerManager(); destroyInput(); destroyGui(); mSceneManager->destroyQuery( mSceneQuery ); mSceneQuery = nullptr; destroySceneManager(); //清除内部帧监听器 //必须在destroyScene等后面被施放 delete mInputFilter; mInputFilter = nullptr; if (mRoot) { Ogre::RenderWindow* window = mRoot->getAutoCreatedWindow(); if (window) window->removeAllViewports(); OGRE_DELETE mRoot; mRoot = nullptr; } if( mCoutSource ){ //删除mCoutSource,不要过早删除它。 delete mCoutSource; mCoutSource = nullptr; } }
void MyGUIRenderClick::destroy() { destroyGui(); }
int Application::run(Application* self) { m_self = self; if (!framework::Utils::exists("data/gui")) { Logger::toLog("Error: could not find gui directory. Probably working directory has not been set correctly (especially if you are running from IDE).\n"); return EXIT_FAILURE; } init(); m_isRunning = true; glfwSetErrorCallback(&Application::errorCallback); if (!glfwInit()) { Logger::toLog("Error: glfwInit failed"); return EXIT_FAILURE; } glfwWindowHint(GLFW_VISIBLE, GL_TRUE); glfwWindowHint(GLFW_RESIZABLE, GL_FALSE); glfwWindowHint(GLFW_RED_BITS, 8); glfwWindowHint(GLFW_GREEN_BITS, 8); glfwWindowHint(GLFW_BLUE_BITS, 8); glfwWindowHint(GLFW_ALPHA_BITS, 0); glfwWindowHint(GLFW_DEPTH_BITS, 32); glfwWindowHint(GLFW_STENCIL_BITS, 0); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, m_info.majorVersion); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, m_info.minorVersion); #ifdef _DEBUG glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, GL_TRUE); #endif glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); glfwWindowHint(GLFW_SAMPLES, m_info.samples); glfwWindowHint(GLFW_STEREO, m_info.flags.stereo ? GL_TRUE : GL_FALSE); // create window m_window = glfwCreateWindow(m_info.windowWidth, m_info.windowHeight, m_info.title.c_str(), m_info.flags.fullscreen ? glfwGetPrimaryMonitor() : NULL, NULL); if (!m_window) { glfwTerminate(); return EXIT_FAILURE; } glfwSetWindowSizeCallback(m_window, &Application::_setWindowSize); glfwSetKeyCallback(m_window, &Application::_onKey); glfwSetCharCallback(m_window, &Application::_onChar); glfwSetMouseButtonCallback(m_window, &Application::_onMouse); glfwSetCursorPosCallback(m_window, &Application::_onCursor); glfwSetScrollCallback(m_window, &Application::_onScroll); glfwSetInputMode(m_window, GLFW_CURSOR, m_info.flags.cursor ? GLFW_CURSOR_NORMAL : GLFW_CURSOR_HIDDEN); // center position GLFWmonitor* primary = glfwGetPrimaryMonitor(); const GLFWvidmode* mode = glfwGetVideoMode(primary); int posx = (mode->width - m_info.windowWidth) >> 1; int posy = (mode->height - m_info.windowHeight) >> 1; glfwSetWindowPos(m_window, posx, posy); // set vsync glfwMakeContextCurrent(m_window); glfwSwapInterval((int)m_info.flags.vsync); // init GL3w gl3wInit(); std::vector<int> multisamplingLevels; if (!checkOpenGLVersion() || !checkDeviceCapabilities(multisamplingLevels)) { glfwDestroyWindow(m_window); glfwTerminate(); return EXIT_FAILURE; } #ifdef _DEBUG Logger::toLogWithFormat("Video adapter: %s - %s, OpenGL: %s\n", (const char*)glGetString(GL_VENDOR), (const char*)glGetString(GL_RENDERER), (const char*)glGetString(GL_VERSION)); #endif if (m_info.flags.debug) { if (gl3wIsSupported(4, 3)) { glDebugMessageCallback(debugCallback, this); glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS); } else if (IsExtensionSupported("GL_ARB_debug_output")) { glDebugMessageCallbackARB(debugCallback, this); glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB); } } initGui(); if (!StandardGpuPrograms::init()) { glfwDestroyWindow(m_window); glfwTerminate(); return EXIT_FAILURE; } initAxes(); startup(m_rootWindow); do { glfwMakeContextCurrent(m_window); Texture::beginFrame(); if (fabs(m_lastTime) < 1e-7) { render(0); Texture::endFrame(); renderGui(0); m_lastTime = glfwGetTime(); } else { double curTime = glfwGetTime(); double delta = curTime - m_lastTime; // fps counter measureFps(delta); // rendering render(delta); Texture::endFrame(); renderGui(delta); m_lastTime = curTime; } glfwSwapBuffers(m_window); glfwPollEvents(); if (glfwWindowShouldClose(m_window)) { m_isRunning = GL_FALSE; } m_isRunning &= (glfwGetKey(m_window, GLFW_KEY_ESCAPE) == GLFW_RELEASE); } while(m_isRunning); shutdown(); destroyAllDestroyable(); destroyGui(); glfwDestroyWindow(m_window); glfwTerminate(); return EXIT_SUCCESS; }