diff Applications/Samples/SampleApplicationBase.h @ 237:b4642964c355 am

SimpleViewer demo running both with SDL and Wasm
author am@osimis.io
date Wed, 20 Jun 2018 09:03:48 +0200
parents ce4405d98b92
children 092db46c6291
line wrap: on
line diff
--- a/Applications/Samples/SampleApplicationBase.h	Tue Jun 19 16:06:32 2018 +0200
+++ b/Applications/Samples/SampleApplicationBase.h	Wed Jun 20 09:03:48 2018 +0200
@@ -21,7 +21,11 @@
 
 #pragma once
 
+#if ORTHANC_ENABLE_SDL==1
 #include "../../Applications/Sdl/BasicSdlApplication.h"
+#else
+#include "../../Applications/Wasm/BasicWasmApplication.h"
+#endif
 #include "../../Framework/Viewport/WidgetViewport.h"
 #include "SampleApplicationContext.h"
 
@@ -30,12 +34,12 @@
   namespace Samples
   {
 
-#ifdef ORTHANC_ENABLE_SDL
+#if ORTHANC_ENABLE_SDL==1
     class SampleSdlApplicationBase : public BasicSdlApplication {
     protected:
       std::unique_ptr<SampleApplicationContext> context_;
     public:
-      BasicApplicationContext& CreateApplicationContext(Orthanc::WebServiceParameters& orthanc, WidgetViewport* centralViewport) {
+      virtual BasicApplicationContext& CreateApplicationContext(Orthanc::WebServiceParameters& orthanc, WidgetViewport* centralViewport) {
         context_.reset(new SampleApplicationContext(orthanc, centralViewport));
 
         return *context_;
@@ -44,6 +48,18 @@
 
     typedef SampleSdlApplicationBase SampleApplicationBase_;
 #else
+    class SampleWasmApplicationBase : public BasicWasmApplication {
+    protected:
+      std::unique_ptr<SampleApplicationContext> context_;
+    public:
+      virtual BasicApplicationContext& CreateApplicationContext(IWebService& orthancWebService, std::shared_ptr<WidgetViewport> centralViewport) {
+        context_.reset(new SampleApplicationContext(orthancWebService));
+        return *context_;
+      }
+
+    };
+
+    typedef SampleWasmApplicationBase SampleApplicationBase_;
 
 #endif