#include "../../../shared_cpp/WebglContext.h" #include "../../../shared_cpp/Renderer2d.h" #include "../../../shared_cpp/types.h" #include "../../../shared_cpp/mathlib.h" #include "../../../shared_cpp/MainLoop.h" #include #include #include #include "SpringRectangle.h" WebglContext context; Renderer2d renderer; MainLoop mainLoop; SoftbodyRectangle rectangle; void load(); EM_BOOL onPlayClicked(int eventType, const EmscriptenMouseEvent* mouseEvent, void* userData); EM_BOOL onStopClicked(int eventType, const EmscriptenMouseEvent* mouseEvent, void* userData); void unload(); void update(float32 deltaTimeSeconds, void* userData); int main() { emscripten_set_click_callback("#gl_canvas_play", NULL, false, onPlayClicked); emscripten_set_click_callback("#gl_canvas_stop", NULL, false, onStopClicked); return 0; } EM_BOOL onPlayClicked(int eventType, const EmscriptenMouseEvent* mouseEvent, void* userData) { printf("Play clicked\n"); load(); return true; } EM_BOOL onStopClicked(int eventType, const EmscriptenMouseEvent* mouseEvent, void* userData) { printf("Stop clicked\n"); unload(); return true; } void load() { context.init("#gl_canvas"); renderer.load(&context); rectangle.load(&renderer); mainLoop.run(update); } void update(float32 deltaTimeSeconds, void* userData) { // -- Update rectangle.update(deltaTimeSeconds); // -- Render renderer.render(); rectangle.render(&renderer); } void unload() { mainLoop.stop(); renderer.unload(); context.destroy(); rectangle.unload(); } // // Interactions with DOM handled here // extern "C" { }