On Tue, 1 May 2018, Ryan Joseph wrote:



On May 1, 2018, at 8:28 PM, Michael Van Canneyt <mich...@freepascal.org> wrote:

Check the canvas demo (demo/rtl/democanvas2d.pas)

something like this?

var
 canvas: TJSElement; // What type should this be?
 gl: TJSWebGLRenderingContext;
begin
 canvas := document.createElement('canvas');
 document.body.appendChild(canvas);
 gl := canvas.getContext('webgl');

You must do
  gl := TJSWebGLRenderingContext(canvas.getContext('webgl'));

because getContext can return various classes depending on the argument.

 canvas.width := newWidth;
 canvas.height := newHeight;
 gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);

Not sure about the type which createElement returns that has the getContext 
method.

createElement returns guaranteed TJSElement, but normally it will be 
TJSHTMLCanvasElement
for your call.

So
  canvas: TJSHTMLCanvasElement;

begin
  canvas:=TJSHTMLCanvasElement(document.createElement('canvas'));


Do you need document.body.appendChild also? Sorry it’s been a long time since I 
used JS to do even simple things. Never knew it well.

Yes, you need that too to insert the new element in the DOM tree.

Michael.
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to