From 5f7ed20c2fad1cae6b84a8617f32755caf861fa7 Mon Sep 17 00:00:00 2001
From: Jaswant Panchumarti <jaswant.panchumarti@kitware.com>
Date: Wed, 5 Apr 2023 10:48:14 -0400
Subject: [PATCH] WASM-Cone: Remove hard-coded SDL2 classes

- SDL2 render window and interactor are the default object factory overrides in VTK-wasm
---
 Examples/Emscripten/Cxx/Cone/Cone.cxx         |  8 ++++----
 .../Emscripten/Cxx/MultiCone/MultiCone.cxx    | 12 +++++------
 .../Cxx/WrappedMace/WrappedMace.cxx           | 20 ++++++-------------
 .../Emscripten/Cxx/WrappedMace/index.html     |  2 +-
 4 files changed, 17 insertions(+), 25 deletions(-)

diff --git a/Examples/Emscripten/Cxx/Cone/Cone.cxx b/Examples/Emscripten/Cxx/Cone/Cone.cxx
index 92f9cfbd54d..c2e1b946e8e 100644
--- a/Examples/Emscripten/Cxx/Cone/Cone.cxx
+++ b/Examples/Emscripten/Cxx/Cone/Cone.cxx
@@ -14,9 +14,9 @@
 #include "vtkNew.h"
 #include "vtkPolyData.h"
 #include "vtkPolyDataMapper.h"
+#include "vtkRenderWindow.h"
+#include "vtkRenderWindowInteractor.h"
 #include "vtkRenderer.h"
-#include "vtkSDL2OpenGLRenderWindow.h"
-#include "vtkSDL2RenderWindowInteractor.h"
 
 //------------------------------------------------------------------------------
 // Main
@@ -26,10 +26,10 @@ int main(int argc, char* argv[])
 {
   // Create a renderer, render window, and interactor
   vtkNew<vtkRenderer> renderer;
-  vtkNew<vtkSDL2OpenGLRenderWindow> renderWindow;
+  vtkNew<vtkRenderWindow> renderWindow;
   renderWindow->SetMultiSamples(0);
   renderWindow->AddRenderer(renderer);
-  vtkNew<vtkSDL2RenderWindowInteractor> renderWindowInteractor;
+  vtkNew<vtkRenderWindowInteractor> renderWindowInteractor;
   renderWindowInteractor->SetRenderWindow(renderWindow);
 
   vtkNew<vtkInteractorStyleTrackballCamera> style;
diff --git a/Examples/Emscripten/Cxx/MultiCone/MultiCone.cxx b/Examples/Emscripten/Cxx/MultiCone/MultiCone.cxx
index f6fc7b7f259..74263820bea 100644
--- a/Examples/Emscripten/Cxx/MultiCone/MultiCone.cxx
+++ b/Examples/Emscripten/Cxx/MultiCone/MultiCone.cxx
@@ -17,17 +17,17 @@
 #include "vtkNew.h"
 #include "vtkPolyData.h"
 #include "vtkPolyDataMapper.h"
+#include "vtkRenderWindow.h"
+#include "vtkRenderWindowInteractor.h"
 #include "vtkRenderer.h"
-#include "vtkSDL2OpenGLRenderWindow.h"
-#include "vtkSDL2RenderWindowInteractor.h"
 
 //------------------------------------------------------------------------------
 // Global objects
 //------------------------------------------------------------------------------
 
 vtkRenderer* renderer = nullptr;
-vtkSDL2OpenGLRenderWindow* renderWindow = nullptr;
-vtkSDL2RenderWindowInteractor* renderWindowInteractor = nullptr;
+vtkRenderWindow* renderWindow = nullptr;
+vtkRenderWindowInteractor* renderWindowInteractor = nullptr;
 vtkInteractorStyleTrackballCamera* style = nullptr;
 
 vtkConeSource* coneSource = nullptr;
@@ -40,8 +40,8 @@ void createPipeline()
 {
   // Create a renderer, render window, and interactor
   renderer = vtkRenderer::New();
-  renderWindow = vtkSDL2OpenGLRenderWindow::New();
-  renderWindowInteractor = vtkSDL2RenderWindowInteractor::New();
+  renderWindow = vtkRenderWindow::New();
+  renderWindowInteractor = vtkRenderWindowInteractor::New();
   style = vtkInteractorStyleTrackballCamera::New();
 
   renderWindow->SetMultiSamples(0);
diff --git a/Examples/Emscripten/Cxx/WrappedMace/WrappedMace.cxx b/Examples/Emscripten/Cxx/WrappedMace/WrappedMace.cxx
index c4e2913d135..1e4f99b3dc5 100644
--- a/Examples/Emscripten/Cxx/WrappedMace/WrappedMace.cxx
+++ b/Examples/Emscripten/Cxx/WrappedMace/WrappedMace.cxx
@@ -17,8 +17,9 @@
 #include "vtkGlyph3D.h"
 #include "vtkPolyData.h"
 #include "vtkPolyDataMapper.h"
+#include "vtkRenderWindow.h"
+#include "vtkRenderWindowInteractor.h"
 #include "vtkRenderer.h"
-#include "vtkSDL2OpenGLRenderWindow.h"
 #include "vtkSDL2RenderWindowInteractor.h"
 #include "vtkSphereSource.h"
 
@@ -48,7 +49,6 @@ vtkAddDestructor(vtkProp);
 vtkAddDestructor(vtkRenderer);
 vtkAddDestructor(vtkRenderWindow);
 vtkAddDestructor(vtkRenderWindowInteractor);
-vtkAddDestructor(vtkSDL2OpenGLRenderWindow);
 vtkAddDestructor(vtkSDL2RenderWindowInteractor);
 vtkAddDestructor(vtkSphereSource);
 vtkAddDestructor(vtkViewport);
@@ -116,7 +116,10 @@ EMSCRIPTEN_BINDINGS(webtest)
     .constructor(&vtkRenderWindow::New, emscripten::allow_raw_pointers())
     .function("SetMultiSamples", &vtkRenderWindow::SetMultiSamples)
     .function("Render", &vtkRenderWindow::Render)
-    .function("AddRenderer", &vtkRenderWindow::AddRenderer, emscripten::allow_raw_pointers());
+    .function("AddRenderer", &vtkRenderWindow::AddRenderer, emscripten::allow_raw_pointers())
+    .function("SetSize",
+      emscripten::select_overload<void(vtkRenderWindow&, int, int)>(
+        [](vtkRenderWindow& self, int w, int h) { self.SetSize(w, h); }));
 
   // vtkRenderWindowInteractor ----------------------------------------
   emscripten::class_<vtkRenderWindowInteractor>("vtkRenderWindowInteractor")
@@ -124,17 +127,6 @@ EMSCRIPTEN_BINDINGS(webtest)
     .function("SetRenderWindow", &vtkRenderWindowInteractor::SetRenderWindow,
       emscripten::allow_raw_pointers());
 
-  // vtkSDL2OpenGLRenderWindow ----------------------------------------
-  emscripten::class_<vtkSDL2OpenGLRenderWindow, emscripten::base<vtkRenderWindow>>(
-    "vtkSDL2OpenGLRenderWindow")
-    .constructor(&vtkSDL2OpenGLRenderWindow::New, emscripten::allow_raw_pointers())
-    .function("Frame", &vtkSDL2OpenGLRenderWindow::Frame)
-    .function("SetSize",
-      emscripten::select_overload<void(vtkSDL2OpenGLRenderWindow&, int, int)>(
-        [](vtkSDL2OpenGLRenderWindow& self, int w, int h) {
-          self.vtkSDL2OpenGLRenderWindow::SetSize(w, h);
-        }));
-
   // vtkSDL2RenderWindowInteractor ------------------------------------
   emscripten::class_<vtkSDL2RenderWindowInteractor, emscripten::base<vtkRenderWindowInteractor>>(
     "vtkSDL2RenderWindowInteractor")
diff --git a/Examples/Emscripten/Cxx/WrappedMace/index.html b/Examples/Emscripten/Cxx/WrappedMace/index.html
index dd16f1ed889..2c0a15713ed 100644
--- a/Examples/Emscripten/Cxx/WrappedMace/index.html
+++ b/Examples/Emscripten/Cxx/WrappedMace/index.html
@@ -37,7 +37,7 @@
       document.addEventListener("keyup", eventForward, false);
       var vtk = createWrappedMaceModule(Module).then((runtime) => {
         var renderer = new Module.vtkRenderer();
-        var renWin = new Module.vtkSDL2OpenGLRenderWindow();
+        var renWin = new Module.vtkRenderWindow();
         renWin.AddRenderer(renderer);
         var iren = new Module.vtkSDL2RenderWindowInteractor();
         iren.SetRenderWindow(renWin);
-- 
GitLab