]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/client/renderingengine.cpp
refacto: hide mesh_cache inside the rendering engine
[dragonfireclient.git] / src / client / renderingengine.cpp
index 4f59bbae3dc49f4bbaf162497c2da7cae2503e51..da902247714a52beb21b4e678a19ac162330208e 100644 (file)
@@ -225,6 +225,20 @@ bool RenderingEngine::print_video_modes()
        return videomode_list != NULL;
 }
 
+void RenderingEngine::removeMesh(const irr::scene::IMesh* mesh)
+{
+       m_device->getSceneManager()->getMeshCache()->removeMesh(mesh);
+}
+
+void RenderingEngine::cleanupMeshCache()
+{
+       auto mesh_cache = m_device->getSceneManager()->getMeshCache();
+       while (mesh_cache->getMeshCount() != 0) {
+               if (scene::IAnimatedMesh *mesh = mesh_cache->getMeshByIndex(0))
+                       mesh_cache->removeMesh(mesh);
+       }
+}
+
 bool RenderingEngine::setupTopLevelWindow(const std::string &name)
 {
        // FIXME: It would make more sense for there to be a switch of some
@@ -335,6 +349,10 @@ static bool getWindowHandle(irr::video::IVideoDriver *driver, HWND &hWnd)
        case video::EDT_DIRECT3D9:
                hWnd = reinterpret_cast<HWND>(exposedData.D3D9.HWnd);
                break;
+#if ENABLE_GLES
+       case video::EDT_OGLES1:
+       case video::EDT_OGLES2:
+#endif
        case video::EDT_OPENGL:
                hWnd = reinterpret_cast<HWND>(exposedData.OpenGLWin32.HWnd);
                break;