diff --git a/src/Magnum/Platform/Test/CMakeLists.txt b/src/Magnum/Platform/Test/CMakeLists.txt index 54e8de364..ce365eb00 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 @@ -52,35 +54,21 @@ if(WITH_EMSCRIPTENAPPLICATION) ${CMAKE_CURRENT_SOURCE_DIR}/EmscriptenApplicationTest.html $/PlatformEmscriptenApplicationTest.html) - add_executable(PlatformEmscriptenApplicationCustomCanvasTest EmscriptenApplicationTest.cpp) - target_link_libraries(PlatformEmscriptenApplicationCustomCanvasTest PRIVATE MagnumEmscriptenApplication MagnumGL) - set_target_properties(PlatformEmscriptenApplicationCustomCanvasTest PROPERTIES FOLDER "Magnum/Platform/Test") - target_link_libraries(PlatformEmscriptenApplicationCustomCanvasTest PRIVATE "-s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=0") - add_custom_command(TARGET PlatformEmscriptenApplicationCustomCanvasTest POST_BUILD + 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") + target_link_libraries(PlatformMultipleEmscriptenApplicationTest PRIVATE "--pre-js ${CMAKE_CURRENT_SOURCE_DIR}/../EmscriptenApplication.js") + target_link_libraries(PlatformMultipleEmscriptenApplicationTest PRIVATE "--pre-js ${CMAKE_CURRENT_SOURCE_DIR}/MultipleEmscriptenApplicationTestPre.js") + 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 - ${CMAKE_CURRENT_SOURCE_DIR}/PatchWebApplicationCssCustomCanvas.cmake - $ - COMMAND ${CMAKE_COMMAND} -P PatchWebApplicationCssCustomCanvas.cmake + $ COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/EmscriptenApplicationCustomCanvasTest.html - $/PlatformEmscriptenApplicationCustomCanvasTest.html - WORKING_DIRECTORY $) - - 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=1,0,1,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}/../EmscriptenApplication.js - $ - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/MultipleEmscriptenApplicationTest.html - $/PlatformMultipleEmscriptenApplicationTest.html) + ${CMAKE_CURRENT_SOURCE_DIR}/MultipleEmscriptenApplicationTest.html + $/PlatformMultipleEmscriptenApplicationTest.html) endif() if(WITH_GLFWAPPLICATION) diff --git a/src/Magnum/Platform/Test/EmscriptenApplicationCustomCanvasTest.html b/src/Magnum/Platform/Test/EmscriptenApplicationCustomCanvasTest.html deleted file mode 100644 index 020475b66..000000000 --- a/src/Magnum/Platform/Test/EmscriptenApplicationCustomCanvasTest.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - - Magnum EmscriptenApplication Custom Canvas Test - - - - -

Magnum EmscriptenApplication Custom Canvas Test

-
-
- -
Initialization...
-
- - - - -
- - -
- - diff --git a/src/Magnum/Platform/Test/EmscriptenApplicationTest.html b/src/Magnum/Platform/Test/EmscriptenApplicationTest.html index 5acdbfe99..78b3b7b47 100644 --- a/src/Magnum/Platform/Test/EmscriptenApplicationTest.html +++ b/src/Magnum/Platform/Test/EmscriptenApplicationTest.html @@ -14,14 +14,14 @@
Initialization...
- + diff --git a/src/Magnum/Platform/Test/MultipleEmscriptenApplicationTest.html b/src/Magnum/Platform/Test/MultipleEmscriptenApplicationTest.html index 0a599bce9..d226ab9ae 100644 --- a/src/Magnum/Platform/Test/MultipleEmscriptenApplicationTest.html +++ b/src/Magnum/Platform/Test/MultipleEmscriptenApplicationTest.html @@ -3,46 +3,52 @@ Magnum Multiple EmscriptenApplication Test +

Magnum Multiple EmscriptenApplication Test

-
-
- - -
Initialization...
-
- +
+
+ +
Initialization...
+
+
+
+
+
+ +
Initialization...
+
- + +
diff --git a/src/Magnum/Platform/Test/MultipleEmscriptenApplicationTestPre.js b/src/Magnum/Platform/Test/MultipleEmscriptenApplicationTestPre.js new file mode 100644 index 000000000..bed5b4b22 --- /dev/null +++ b/src/Magnum/Platform/Test/MultipleEmscriptenApplicationTestPre.js @@ -0,0 +1,8 @@ +Module.canvas = document.getElementById('canvas1'); +Module.status = document.getElementById('status1'); +Module.statusDescription = document.getElementById('status-description1'); + +Module.keyboardListeningElement = Module.canvas; +Module.canvas.addEventListener('mousedown', function(event) { + event.target.focus(); +}); diff --git a/src/Magnum/Platform/Test/PatchWebApplicationCssCustomCanvas.cmake b/src/Magnum/Platform/Test/PatchWebApplicationCssCustomCanvas.cmake deleted file mode 100644 index be47740c4..000000000 --- a/src/Magnum/Platform/Test/PatchWebApplicationCssCustomCanvas.cmake +++ /dev/null @@ -1,3 +0,0 @@ -file(READ ${CMAKE_CURRENT_LIST_DIR}/WebApplication.css CONTENT) -string(REPLACE "#canvas" "#canvas2" CONTENT "${CONTENT}") -file(WRITE ${CMAKE_CURRENT_LIST_DIR}/WebApplicationCustomCanvas.css "${CONTENT}")