diff Framework/Viewport/SdlViewport.cpp @ 1045:6a9300ecfa13

tests for context loss are now restricted to WebAssembly
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 09 Oct 2019 17:17:56 +0200
parents a7351ad54960
children 32b403a47b19
line wrap: on
line diff
--- a/Framework/Viewport/SdlViewport.cpp	Wed Oct 09 15:58:39 2019 +0200
+++ b/Framework/Viewport/SdlViewport.cpp	Wed Oct 09 17:17:56 2019 +0200
@@ -47,107 +47,15 @@
     compositor_.reset(new OpenGLCompositor(context_, GetScene()));
   }
 
-
-  void* SdlOpenGLViewport::DebugGetInternalContext() const
-  {
-    return context_.DebugGetInternalContext();
-  }
-
-  bool SdlOpenGLViewport::IsContextLost() {
-    return context_.IsContextLost();
-  }
-
-  bool SdlOpenGLViewport::OpenGLContextLost()
-  {
-    throw Orthanc::OrthancException(Orthanc::ErrorCode_NotImplemented);
-  }
-
-  bool SdlOpenGLViewport::OpenGLContextRestored()
-  {
-    throw Orthanc::OrthancException(Orthanc::ErrorCode_NotImplemented);
-  }
-
-  void SdlOpenGLViewport::DisableCompositor()
-  {
-    compositor_.reset(NULL);
-  }
-
-  void SdlOpenGLViewport::RestoreCompositor()
-  {
-    // the context must have been restored!
-    ORTHANC_ASSERT(!context_.IsContextLost());
-
-    if (compositor_.get() == NULL)
-    {
-      compositor_.reset(new OpenGLCompositor(context_, GetScene()));
-    }
-    else
-    {
-      std::string windowTitle(SDL_GetWindowTitle(GetWindow().GetObject()));
-      LOG(WARNING) << "RestoreCompositor() called for \"" << windowTitle << "\" while it was NOT lost! Nothing done.";
-    }
-  }
-
-  // extern bool Debug_MustContextBeRestored(std::string title);
-  // extern void Debug_Context_ClearRestoreFlag(std::string title);
-  // extern void Debug_Context_ClearKillFlag(std::string title);
-
-  bool Debug_SdlOpenGLViewport_Refresh_BP = false;
-
   void SdlOpenGLViewport::Refresh()
   {
-    // <DEBUG CODE USED FOR CONTEXT LOSS RESTORING>
-    // try to restore the context if requested
-    // Debug_Context_ClearRestoreFlag
-    // Debug_SdlOpenGLViewport_Refresh_BP = true;
-    // try
-    // {
-    //   if (Debug_MustContextBeRestored(GetCanvasIdentifier()))
-    //   {
-    //     // to prevent a bug where the context is both labelled as "to be lost" and "to be restored"
-    //     // (occurs when one is hammering away at the keyboard like there's no tomorrow)
-    //     Debug_Context_ClearKillFlag(GetCanvasIdentifier());
-    //     // this is called manually for loss/restore simulation
-    //     context_.RestoreLostContext();
-    //     RestoreCompositor();
-    //     Debug_Context_ClearRestoreFlag(GetCanvasIdentifier());
-    //   }
-    // }
-    // catch (const OpenGLContextLostException& e)
-    // {
-    //   LOG(ERROR) << "OpenGLContextLostException in SdlOpenGLViewport::Refresh() part 1";
-    // }
-    // Debug_SdlOpenGLViewport_Refresh_BP = false;
-    // </DEBUG CODE USED FOR CONTEXT LOSS RESTORING>
-
-    try
+    if (GetCompositor())
     {
-      // the compositor COULD be dead!
-      if (GetCompositor())
-        GetCompositor()->Refresh();
-    }
-    catch (const OpenGLContextLostException& e)
-    {
-      // we need to wait for the "context restored" callback
-      LOG(WARNING) << "Context " << std::hex << e.context_ << " is lost! Compositor will be disabled.";
-      DisableCompositor();
-
-      // <DEBUG CODE USED FOR CONTEXT LOSS RESTORING>
-      // in case this was externally triggered...
-      //Debug_Context_ClearKillFlag(GetCanvasIdentifier());
-      // </DEBUG CODE USED FOR CONTEXT LOSS RESTORING>
-    }
-    catch (...)
-    {
-      // something else nasty happened
-      throw;
+      GetCompositor()->Refresh();
     }
   }
 
 
-
-
-
   SdlCairoViewport::SdlCairoViewport(const char* title,
                                      unsigned int width,
                                      unsigned int height,
@@ -159,16 +67,6 @@
     UpdateSdlSurfaceSize(width, height);
   }
 
-  void SdlCairoViewport::DisableCompositor()
-  {
-    throw Orthanc::OrthancException(Orthanc::ErrorCode_NotImplemented);
-  }
-  
-  void SdlCairoViewport::RestoreCompositor()
-  {
-    throw Orthanc::OrthancException(Orthanc::ErrorCode_NotImplemented);
-  }
-
   SdlCairoViewport::~SdlCairoViewport()
   {
     if (sdlSurface_)