소스 검색

* Some fixes needed for updates in Fresnel

Michael Van Canneyt 1 주 전
부모
커밋
abacc1002a
2개의 변경된 파일59개의 추가작업 그리고 43개의 파일을 삭제
  1. 8 42
      packages/rtl/src/web.pas
  2. 51 1
      packages/rtl/src/weborworker.pas

+ 8 - 42
packages/rtl/src/web.pas

@@ -135,6 +135,10 @@ Type
   TJSOffscreenCanvasRenderingContext2D = BrowserApi.WebOrWorker.TJSOffscreenCanvasRenderingContext2D;
   TJSHTMLOffscreenCanvasElement = BrowserApi.WebOrWorker.TJSHTMLOffscreenCanvas;
   TJSHTMLOffscreenCanvas = BrowserApi.WebOrWorker.TJSHTMLOffscreenCanvas;
+  TJSBlobInit = BrowserApi.WebOrWorker.TJSBlobInit;
+  TJSImageBitmapOptions = BrowserApi.WebOrWorker.TJSImageBitmapOptions;
+  TJSDOMException = BrowserApi.WebOrWorker.TJSDOMException;
+  TJSFileReader = BrowserApi.WebOrWorker.TJSFileReader;
 {$ELSE}
   TJSServiceWorker = weborworker.TJSServiceWorker;
   TJSServiceWorkerRegistration = weborworker.TJSServiceWorkerRegistration;
@@ -216,6 +220,10 @@ Type
   TJSOffscreenCanvasRenderingContext2D = weborworker.TJSOffscreenCanvasRenderingContext2D;
   TJSHTMLOffscreenCanvasElement = weborworker.TJSHTMLOffscreenCanvas;
   TJSHTMLOffscreenCanvas = weborworker.TJSHTMLOffscreenCanvas;
+  TJSBlobInit = weborworker.TJSBlobInit;
+  TJSImageBitmapOptions = weborworker.TJSImageBitmapOptions;
+  TJSDOMException = weborworker.TJSDOMException;
+  TJSFileReader = weborworker.TJSFileReader;
 {$ENDIF}
   TJSMessagePortArray = TJSMessagePortDynArray;
   TEventListenerEvent = TJSEvent;
@@ -2659,49 +2667,7 @@ Type
   end;
   Type
 
-  { TJSDOMException }
 
-  TJSDOMException = class external name 'DOMException' (TJSObject)
-  private
-    FCode: Integer; external name 'code';
-    FMessage: String; external name 'message';
-    FName: string; external name 'name';
-  Public
-    Property code : Integer Read FCode;
-    Property Message : String Read FMessage;
-    Property name : string Read FName;
-  end;
-
-  { TJSFileReader }
-
-  TJSFileReader = class external name 'FileReader' (TJSEventTarget)
-  private
-    FError: TJSDOMException; external name 'error';
-    fReadyState: Integer; external name 'readyState';
-    FResult: JSValue; external name 'result';
-  Public
-    Const EMPTY : Integer;
-    Const LOADING : Integer;
-    Const DONE : Integer;
-  Public
-    onabort : TJSEventHandler;
-    onerror : TJSEventHandler;
-    onload : TJSEventHandler;
-    onloadstart : TJSEventHandler;
-    onloadend : TJSEventHandler;
-    onprogress : TJSEventHandler;
-  Public
-    constructor new;
-    Procedure abort;
-    procedure readAsArrayBuffer(Blob: TJSBlob);
-    procedure readAsBinaryString(Blob: TJSBlob);
-    procedure readAsDataURL(Blob: TJSBlob);
-    procedure readAsText(Blob: TJSBlob; encoding : string);
-    procedure readAsText(Blob: TJSBlob);
-    property Error : TJSDOMException read FError;
-    Property readyState : Integer Read fReadyState;
-    property Result : JSValue Read FResult;
-  end;
 
 
   TJSCanvasRenderingContext2D = class external name 'CanvasRenderingContext2D' (TJSBaseCanvasRenderingContext2D)

+ 51 - 1
packages/rtl/src/weborworker.pas

@@ -1793,7 +1793,10 @@ type
     property canvas : TJSHTMLOffscreenCanvas Read FCanvas;
   end;
 
-
+  TJSConvertToBlobOptions = class external name 'Object' (TJSObject)
+    type_ : string; external name 'type';
+    quality : double;
+  end;
 
   TJSHTMLOffscreenCanvas = Class external name 'OffscreenCanvas' (TJSObject)
   Public
@@ -1804,6 +1807,8 @@ type
     Function getContextAs2DContext(contextType : string; contextAttributes : TJSObject) : TJSOffscreenCanvasRenderingContext2D; external name 'getContext'; reintroduce;
     Function getContextAsImageBitmapContext(contextType : string) : TJSImageBitmapCanvasRenderingContext; external name 'getContext'; reintroduce;
     function transferToImageBitmap: TJSImageBitmap;
+    function convertToBlob() : TJSPromise;
+    function convertToBlob(options : TJSConvertToBlobOptions) : TJSPromise;
     height : Integer;
     width : Integer;
   end;
@@ -1873,6 +1878,51 @@ type
   
   TJSScriptContext = (jscUnknown,jscMainBrowserThread,jscWebWorker,jscServiceWorker);
 
+  { TJSDOMException }
+
+  TJSDOMException = class external name 'DOMException' (TJSObject)
+  private
+    FCode: Integer; external name 'code';
+    FMessage: String; external name 'message';
+    FName: string; external name 'name';
+  Public
+    Property code : Integer Read FCode;
+    Property Message : String Read FMessage;
+    Property name : string Read FName;
+  end;
+
+  { TJSFileReader }
+
+  TJSFileReader = class external name 'FileReader' (TJSEventTarget)
+  private
+    FError: TJSDOMException; external name 'error';
+    fReadyState: Integer; external name 'readyState';
+    FResult: JSValue; external name 'result';
+  Public
+    Const EMPTY : Integer;
+    Const LOADING : Integer;
+    Const DONE : Integer;
+  Public
+    onabort : TJSEventHandler;
+    onerror : TJSEventHandler;
+    onload : TJSEventHandler;
+    onloadstart : TJSEventHandler;
+    onloadend : TJSEventHandler;
+    onprogress : TJSEventHandler;
+  Public
+    constructor new;
+    Procedure abort;
+    procedure readAsArrayBuffer(Blob: TJSBlob);
+    procedure readAsBinaryString(Blob: TJSBlob);
+    procedure readAsDataURL(Blob: TJSBlob);
+    procedure readAsText(Blob: TJSBlob; encoding : string);
+    procedure readAsText(Blob: TJSBlob);
+    property Error : TJSDOMException read FError;
+    Property readyState : Integer Read fReadyState;
+    property Result : JSValue Read FResult;
+  end;
+
+
 
 function isMainBrowserThread: boolean;
 function isWebWorker : boolean;