3 #include "WasmOcctView.h"
6 #include <Message_Messenger.hxx>
7 #include <Message_PrinterSystemLog.hxx>
8 #include <OSD_MemInfo.hxx>
9 #include <OSD_Parallel.hxx>
11 #include <emscripten.h>
12 #include <emscripten/html5.h>
14 //! Dummy main loop callback for a single shot.
15 extern "C" void onMainLoop()
17 // do nothing here - viewer updates are handled on demand
18 emscripten_cancel_main_loop();
21 EMSCRIPTEN_KEEPALIVE int main()
23 Message::DefaultMessenger()->Printers().First()->SetTraceLevel (Message_Trace);
24 Handle(Message_PrinterSystemLog) aJSConsolePrinter = new Message_PrinterSystemLog ("webgl-sample", Message_Trace);
25 Message::DefaultMessenger()->AddPrinter (aJSConsolePrinter); // open JavaScript console within the Browser to see this output
26 Message::DefaultMessenger()->Send (TCollection_AsciiString("NbLogicalProcessors: ") + OSD_Parallel::NbLogicalProcessors(), Message_Trace);
28 // setup a dummy single-shot main loop callback just to shut up a useless Emscripten error message on calling eglSwapInterval()
29 emscripten_set_main_loop (onMainLoop, -1, 0);
31 WasmOcctView& aViewer = WasmOcctView::Instance();
33 Message::DefaultMessenger()->Send (OSD_MemInfo::PrintInfo(), Message_Trace);