From 110e45d0ea75e5c53677b1c99581cba216e33719 Mon Sep 17 00:00:00 2001 From: Pablo Escobar Date: Thu, 5 Nov 2020 22:26:03 +0100 Subject: [PATCH] Platform: add test for multiple applications on one page. --- src/Magnum/Platform/Test/CMakeLists.txt | 17 ++++++ .../Test/EmscriptenApplicationTest.cpp | 4 ++ .../MultipleEmscriptenApplicationTest.html | 56 +++++++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 src/Magnum/Platform/Test/MultipleEmscriptenApplicationTest.html diff --git a/src/Magnum/Platform/Test/CMakeLists.txt b/src/Magnum/Platform/Test/CMakeLists.txt index 7fa2dfc4e..74bc57f2f 100644 --- a/src/Magnum/Platform/Test/CMakeLists.txt +++ b/src/Magnum/Platform/Test/CMakeLists.txt @@ -43,6 +43,8 @@ if(WITH_EMSCRIPTENAPPLICATION) add_executable(PlatformEmscriptenApplicationTest EmscriptenApplicationTest.cpp) target_link_libraries(PlatformEmscriptenApplicationTest PRIVATE MagnumEmscriptenApplication MagnumGL) set_target_properties(PlatformEmscriptenApplicationTest PROPERTIES FOLDER "Magnum/Platform/Test") + # Test that the canvas and keylistener can be found with both the old and the new Emscripten target behaviors + target_link_libraries(PlatformEmscriptenApplicationTest PRIVATE "-s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=0") add_custom_command(TARGET PlatformEmscriptenApplicationTest POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/../WebApplication.css @@ -51,6 +53,21 @@ if(WITH_EMSCRIPTENAPPLICATION) COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/EmscriptenApplicationTest.html $/PlatformEmscriptenApplicationTest.html) + + add_executable(PlatformMultipleEmscriptenApplicationTest EmscriptenApplicationTest.cpp) + target_link_libraries(PlatformMultipleEmscriptenApplicationTest PRIVATE MagnumEmscriptenApplication MagnumGL) + set_target_properties(PlatformMultipleEmscriptenApplicationTest PROPERTIES FOLDER "Magnum/Platform/Test") + target_compile_definitions(PlatformMultipleEmscriptenApplicationTest PRIVATE CUSTOM_CLEAR_COLOR=0.2,0,0.2,1) + target_link_libraries(PlatformMultipleEmscriptenApplicationTest PRIVATE "-s MODULARIZE -s EXPORT_NAME=createModule") + target_link_libraries(PlatformMultipleEmscriptenApplicationTest PRIVATE "-s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=1") + add_custom_command(TARGET PlatformMultipleEmscriptenApplicationTest POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_CURRENT_SOURCE_DIR}/../WebApplication.css + ${CMAKE_CURRENT_SOURCE_DIR}/../EmscriptenApplication.js + $ + COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_CURRENT_SOURCE_DIR}/MultipleEmscriptenApplicationTest.html + $/PlatformMultipleEmscriptenApplicationTest.html) endif() if(WITH_GLFWAPPLICATION) diff --git a/src/Magnum/Platform/Test/EmscriptenApplicationTest.cpp b/src/Magnum/Platform/Test/EmscriptenApplicationTest.cpp index 4ad684d6e..1fd052a07 100644 --- a/src/Magnum/Platform/Test/EmscriptenApplicationTest.cpp +++ b/src/Magnum/Platform/Test/EmscriptenApplicationTest.cpp @@ -31,6 +31,7 @@ #include "Magnum/GL/Renderer.h" #include "Magnum/GL/DefaultFramebuffer.h" #include "Magnum/GL/Mesh.h" +#include "Magnum/Math/Color.h" namespace Magnum { namespace Platform { namespace Test { @@ -40,6 +41,9 @@ struct EmscriptenApplicationTest: Platform::Application { virtual void drawEvent() override { Debug() << "draw event"; + #ifdef CUSTOM_CLEAR_COLOR + GL::Renderer::setClearColor({ CUSTOM_CLEAR_COLOR }); + #endif GL::defaultFramebuffer.clear(GL::FramebufferClear::Color); swapBuffers(); diff --git a/src/Magnum/Platform/Test/MultipleEmscriptenApplicationTest.html b/src/Magnum/Platform/Test/MultipleEmscriptenApplicationTest.html new file mode 100644 index 000000000..c6a7b5099 --- /dev/null +++ b/src/Magnum/Platform/Test/MultipleEmscriptenApplicationTest.html @@ -0,0 +1,56 @@ + + + + + Magnum Multiple EmscriptenApplication Test + + + + + +

Magnum Multiple EmscriptenApplication Test

+
+
+ +
Initialization...
+
+ + +
+
+
+
+ +
Initialization...
+
+ + +
+
+ +