|
@@ -3,8 +3,8 @@ program fresnelhost;
|
|
|
{$mode objfpc}
|
|
|
|
|
|
uses
|
|
|
- BrowserConsole, BrowserApp, JS, Classes, SysUtils, Web, wasihostapp, wasienv, fresnel.pas2js.wasmapi,
|
|
|
- wasizenfs, libzenfs, libzenfsdom, types;
|
|
|
+ BrowserConsole, BrowserApp, JS, Classes, SysUtils, Web, wasihostapp, wasienv, fresnel.web.pas2js.wasmapi,
|
|
|
+ wasizenfs, libzenfs, libzenfsdom, types, wasm.pas2js.timer ;
|
|
|
|
|
|
var
|
|
|
wasmFilename : string; external name 'wasmFilename';
|
|
@@ -15,7 +15,8 @@ type
|
|
|
|
|
|
TFresnelHostApplication = class(TBrowserWASIHostApplication)
|
|
|
Private
|
|
|
- FFresnelAPI : TWasmFresnelApi;
|
|
|
+ FFresnelAPI : TWasmFresnelWebApi;
|
|
|
+ FTimerAPI : TWasmTimerAPI;
|
|
|
FS :TWASIZenFS;
|
|
|
procedure DoShowConsole(Event: TJSEvent);
|
|
|
procedure OnAfterStart(Sender: TObject; aDescriptor: TWebAssemblyStartDescriptor);
|
|
@@ -24,16 +25,14 @@ type
|
|
|
procedure DoRun; override;
|
|
|
procedure RunWasm ; async;
|
|
|
function LoadFiles: Integer; async;
|
|
|
- Property FresnelAPI : TWasmFresnelApi Read FFresnelAPI;
|
|
|
+ Property FresnelAPI : TWasmFresnelWebApi Read FFresnelAPI;
|
|
|
end;
|
|
|
|
|
|
{ TFresnelHostApplication }
|
|
|
|
|
|
procedure TFresnelHostApplication.OnAfterStart(Sender: TObject; aDescriptor: TWebAssemblyStartDescriptor);
|
|
|
begin
|
|
|
- Writeln('Start process loop');
|
|
|
- FFresnelApi.ProcessMessages;
|
|
|
- Writeln('Started process loop');
|
|
|
+ Writeln('Wasm initialized, control now goes to Javascript event loop');
|
|
|
end;
|
|
|
|
|
|
procedure TFresnelHostApplication.DoShowConsole(Event: TJSEvent);
|
|
@@ -45,9 +44,12 @@ end;
|
|
|
constructor TFresnelHostApplication.Create(aOwner: TComponent);
|
|
|
begin
|
|
|
inherited Create(aOwner);
|
|
|
- FFresnelApi:=TWasmFresnelApi.Create(WasiEnvironment);
|
|
|
+ FFresnelApi:=TWasmFresnelWebApi.Create(WasiEnvironment);
|
|
|
FFresnelAPI.LogAPICalls:=False;
|
|
|
- FFresnelAPI.CanvasParent:=TJSHTMLElement(document.getElementById('desktop'));
|
|
|
+ FFresnelAPI.UseWordColors:=True;
|
|
|
+ FFresnelAPI.WindowsParentRoot:=TJSHTMLElement(document.getElementById('desktop'));
|
|
|
+ FFresnelAPI.UseKeyMap:=True;
|
|
|
+ FTimerAPI:=TWasmTimerAPI.Create(WasiEnvironment);
|
|
|
RunEntryFunction:='_initialize';
|
|
|
GetHTMLElement('cbconsole').AddEventListener('click',@DoShowConsole);
|
|
|
end;
|
|
@@ -62,7 +64,7 @@ function TFresnelHostApplication.LoadFiles: Integer;
|
|
|
|
|
|
const
|
|
|
Files : TStringDynArray =
|
|
|
- ('image.png','style1.css','style2.css');
|
|
|
+ ('style1.css','style2.css');
|
|
|
var
|
|
|
Res: TPreLoadFilesResult;
|
|
|
I : Integer;
|