Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions platform/emscripten/Rtt_EmscriptenContext.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -579,7 +579,7 @@ namespace Rtt
#if defined(EMSCRIPTEN)

// iOS Web Audio Unlocker
int CoronaAppContext::mouseupCallback(int eventType, const EmscriptenMouseEvent *mouseEvent, void * userData)
bool CoronaAppContext::mouseupCallback(int eventType, const EmscriptenMouseEvent *mouseEvent, void * userData)
{
CoronaAppContext* ctx = (CoronaAppContext*) userData;
jsContextUnlockAudio();
Expand All @@ -592,37 +592,37 @@ namespace Rtt
isFirstTime = false;
ctx->requestFullscreen(EMSCRIPTEN_FULLSCREEN_SCALE_ASPECT, EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE_STDDEF, EMSCRIPTEN_FULLSCREEN_FILTERING_DEFAULT);
}
return 0;
return false;
}

int CoronaAppContext::touchCallback(int eventType, const EmscriptenTouchEvent *touchEvent, void *userData)
bool CoronaAppContext::touchCallback(int eventType, const EmscriptenTouchEvent *touchEvent, void *userData)
{
return mouseupCallback(0, 0, 0);
}

int CoronaAppContext::blurCallback(int eventType, const EmscriptenFocusEvent *focusEvent, void *userData)
bool CoronaAppContext::blurCallback(int eventType, const EmscriptenFocusEvent *focusEvent, void *userData)
{
// check event target, ingnore all events except #window
if (*focusEvent->id == 0) // event from #window ?
{
CoronaAppContext* ctx = (CoronaAppContext*) userData;
ctx->pause();
}
return 0;
return false;
}

int CoronaAppContext::focusCallback(int eventType, const EmscriptenFocusEvent *focusEvent, void *userData)
bool CoronaAppContext::focusCallback(int eventType, const EmscriptenFocusEvent *focusEvent, void *userData)
{
// check event target, ingnore all events except #window
if (*focusEvent->id == 0) // event from #window ?
{
CoronaAppContext* ctx = (CoronaAppContext*) userData;
ctx->resume();
}
return 0;
return false;
}

int CoronaAppContext::resizeCallback(int eventType, const EmscriptenUiEvent *uiEvent, void *userData)
bool CoronaAppContext::resizeCallback(int eventType, const EmscriptenUiEvent *uiEvent, void *userData)
{
SDL_Event sdlevent;
sdlevent.type = SDL_WINDOWEVENT;
Expand All @@ -631,7 +631,7 @@ namespace Rtt
sdlevent.window.windowID = 0;
sdlevent.window.event = SDL_WINDOWEVENT_RESIZED;
SDL_PushEvent(&sdlevent);
return 0;
return false;
}

const char* CoronaAppContext::beforeunloadCallback(int eventType, const void *reserved, void *userData)
Expand Down
10 changes: 5 additions & 5 deletions platform/emscripten/Rtt_EmscriptenContext.h
Original file line number Diff line number Diff line change
Expand Up @@ -141,11 +141,11 @@ namespace Rtt
int getFPS() const { return fRuntime ? fRuntime->GetFPS() : 30; }

#if defined(EMSCRIPTEN)
static int resizeCallback(int eventType, const EmscriptenUiEvent *uiEvent, void *userData);
static int mouseupCallback(int eventType, const EmscriptenMouseEvent *mouseEvent, void * userData);
static int touchCallback(int eventType, const EmscriptenTouchEvent *touchEvent, void *userData);
static int blurCallback(int eventType, const EmscriptenFocusEvent *focusEvent, void *userData);
static int focusCallback(int eventType, const EmscriptenFocusEvent *focusEvent, void *userData);
static bool resizeCallback(int eventType, const EmscriptenUiEvent *uiEvent, void *userData);
static bool mouseupCallback(int eventType, const EmscriptenMouseEvent *mouseEvent, void * userData);
static bool touchCallback(int eventType, const EmscriptenTouchEvent *touchEvent, void *userData);
static bool blurCallback(int eventType, const EmscriptenFocusEvent *focusEvent, void *userData);
static bool focusCallback(int eventType, const EmscriptenFocusEvent *focusEvent, void *userData);
static const char* beforeunloadCallback(int eventType, const void *reserved, void *userData);
#endif

Expand Down
5 changes: 2 additions & 3 deletions platform/emscripten/gmake/build_app.sh
Original file line number Diff line number Diff line change
Expand Up @@ -124,11 +124,10 @@ pushd $path > /dev/null

echo " "
echo "Building HTML:"
echo '\t' emcc obj/"$CONFIG"/libratatouille.a obj/"$CONFIG"/librtt.a $CC_FLAGS obj/"$CONFIG"/libBox2D.a $CC_FLAGS obj/"$CONFIG"/liblua.a $CC_FLAGS obj/"$CONFIG"/libpng.a $CC_FLAGS obj/"$CONFIG"/libjpeg.a $CC_FLAGS obj/"$CONFIG"/libz.a $CC_FLAGS obj/"$CONFIG"/liblfs.a $CC_FLAGS obj/"$CONFIG"/liblpeg.a $CC_FLAGS obj/"$CONFIG"/libRenderer.a -s EXTRA_EXPORTED_RUNTIME_METHODS='["ccall", "cwrap"]' -O3 -s USE_SDL=2 -s ALLOW_MEMORY_GROWTH=1 -s INITIAL_MEMORY=128MB --js-library ../Rtt_PlatformWebAudioPlayer.js --js-library ../Rtt_EmscriptenPlatform.js --js-library ../Rtt_EmscriptenVideo.js --preload-file "$TMP_DIR"@/ -o "$OUTPUT_HTML"
emcc obj/"$CONFIG"/libratatouille.a obj/"$CONFIG"/librtt.a $CC_FLAGS obj/"$CONFIG"/libBox2D.a $CC_FLAGS obj/"$CONFIG"/liblua.a $CC_FLAGS obj/"$CONFIG"/libpng.a $CC_FLAGS obj/"$CONFIG"/libjpeg.a $CC_FLAGS obj/"$CONFIG"/libz.a $CC_FLAGS obj/"$CONFIG"/liblfs.a $CC_FLAGS obj/"$CONFIG"/liblpeg.a $CC_FLAGS obj/"$CONFIG"/libRenderer.a -s EXTRA_EXPORTED_RUNTIME_METHODS='["ccall", "cwrap"]' -O3 -s USE_SDL=2 -s ALLOW_MEMORY_GROWTH=1 -s INITIAL_MEMORY=128MB --js-library ../Rtt_PlatformWebAudioPlayer.js --js-library ../Rtt_EmscriptenPlatform.js --js-library ../Rtt_EmscriptenVideo.js -lidbfs.js --preload-file "$TMP_DIR"@/ -o "$OUTPUT_HTML"
echo '\t' emcc obj/"$CONFIG"/libratatouille.a obj/"$CONFIG"/librtt.a $CC_FLAGS obj/"$CONFIG"/libBox2D.a $CC_FLAGS obj/"$CONFIG"/liblua.a $CC_FLAGS obj/"$CONFIG"/libpng.a $CC_FLAGS obj/"$CONFIG"/libjpeg.a $CC_FLAGS obj/"$CONFIG"/libz.a $CC_FLAGS obj/"$CONFIG"/liblfs.a $CC_FLAGS obj/"$CONFIG"/liblpeg.a $CC_FLAGS obj/"$CONFIG"/libRenderer.a -s EXPORTED_RUNTIME_METHODS=['ccall','cwrap','addFunction','removeFunction','UTF8ToString'] -s EXPORTED_FUNCTIONS=['_main','_malloc','_free'] -s LEGACY_RUNTIME=1 -O3 -msimd128 -s USE_SDL=2 -s FORCE_FILESYSTEM=1 -s STACK_SIZE=1MB -s ALLOW_MEMORY_GROWTH=1 -s INITIAL_HEAP=128MB --js-library ../Rtt_PlatformWebAudioPlayer.js --js-library ../Rtt_EmscriptenPlatform.js --js-library ../Rtt_EmscriptenVideo.js --preload-file "$TMP_DIR"@/ -o "$OUTPUT_HTML"
emcc obj/"$CONFIG"/libratatouille.a obj/"$CONFIG"/librtt.a $CC_FLAGS obj/"$CONFIG"/libBox2D.a $CC_FLAGS obj/"$CONFIG"/liblua.a $CC_FLAGS obj/"$CONFIG"/libpng.a $CC_FLAGS obj/"$CONFIG"/libjpeg.a $CC_FLAGS obj/"$CONFIG"/libz.a $CC_FLAGS obj/"$CONFIG"/liblfs.a $CC_FLAGS obj/"$CONFIG"/liblpeg.a $CC_FLAGS obj/"$CONFIG"/libRenderer.a -s EXPORTED_RUNTIME_METHODS=['ccall','cwrap','addFunction','removeFunction','UTF8ToString'] -s EXPORTED_FUNCTIONS=['_main','_malloc','_free'] -s LEGACY_RUNTIME=1 -O3 -msimd128 -s USE_SDL=2 -s FORCE_FILESYSTEM=1 -s STACK_SIZE=1MB -s ALLOW_MEMORY_GROWTH=1 -s INITIAL_HEAP=128MB --js-library ../Rtt_PlatformWebAudioPlayer.js --js-library ../Rtt_EmscriptenPlatform.js --js-library ../Rtt_EmscriptenVideo.js -lidbfs.js --preload-file "$TMP_DIR"@/ -o "$OUTPUT_HTML"
checkError


echo "SUCCESS! Run with command:"
echo '\t' emrun $OUTPUT_HTML

Expand Down
32 changes: 18 additions & 14 deletions platform/resources/webPackageApp.lua
Original file line number Diff line number Diff line change
Expand Up @@ -714,19 +714,19 @@ function webPackageApp( options )

--generate new loadPackaghe for .js

local loadPackage = 'loadPackage({"files":[';
local loadPackage = 'loadPackage({files:[';
local pos = 0

log('.data file map (size/name)');
local totalDataSize = 0;
for i = 1, #dataFiles do
-- {"audio":0,"start":0,"crunched":0,"end":5,"filename":"/main.lua"}
loadPackage = loadPackage .. '{"audio":0,';
loadPackage = loadPackage .. '"start":' .. pos .. ',';
loadPackage = loadPackage .. '{audio:0,';
loadPackage = loadPackage .. 'start:' .. pos .. ',';
pos = pos + dataFiles[i].size
loadPackage = loadPackage .. '"crunched":0,';
loadPackage = loadPackage .. '"end":' .. pos .. ',';
loadPackage = loadPackage .. '"filename":"' .. dataFiles[i].name ..'"}';
loadPackage = loadPackage .. 'crunched:0,';
loadPackage = loadPackage .. 'end:' .. pos .. ',';
loadPackage = loadPackage .. 'filename:"' .. dataFiles[i].name ..'"}';
if i == #dataFiles then loadPackage = loadPackage .. ']' else loadPackage = loadPackage .. "," end

-- print log
Expand All @@ -740,10 +740,10 @@ function webPackageApp( options )
log('Total data file size = ' .. totalDataSize .. ' = ' .. math.floor(totalDataSize / 1024) .. 'KB = ' .. math.floor(totalDataSize / 1024 / 1024) .. 'MB');

-- ,"remote_package_size":5,"package_uuid":"134361ad-01a4-42aa-aea6-5b48c05818f7"})
loadPackage = loadPackage .. ',"remote_package_size":' .. pos;
loadPackage = loadPackage .. ',remote_package_size:' .. pos;

-- fixme UUID
loadPackage = loadPackage .. ',"package_uuid":"134361ad-01a4-42aa-aea6-5b48c05818f7"})';
loadPackage = loadPackage .. ',package_uuid:"134361ad-01a4-42aa-aea6-5b48c05818f7"})';
--log3('loadPackage:', loadPackage);

--generate new FS_createPath for .js
Expand All @@ -770,12 +770,16 @@ function webPackageApp( options )
fi:close()

-- seek loadPackage({"files":[{"audio":0,"start":0,"crunched":0,"end":359,"filename":"/main.lua"},{"audio":0,"start":359,"crunched":0,"end":718,"filename":"/zzz/main.lua"}],"remote_package_size":718,"package_uuid":"be67bd33-1e30-46ab-85c8-ab4d3f06cf1d"})
local count
src, count = src:gsub('loadPackage%b()', loadPackage, 1)
if count < 1 then
return 'Source .js file does not contain loadPackage(...)';
end

local count = 0
src = src:gsub("loadPackage%b()", function(m)
count = count + 1
if count == 2 then
return loadPackage
else
return m
end
end)

-- seek Module["FS_createPath"]("/","CORONA_FOLDER_PLACEHOLDER",true,true);
src, count = src:gsub("Module%['FS_createPath']%b();", createPaths, 1)
if count < 1 then
Expand Down