Jump to content

Is it possible to draw a Texture to a BitmapData?


staff0rd
 Share

Recommended Posts

I'm finding that if a texture was created via generateTexture(), or, if a group or sprite contains a texture that was generated by generateTexture(), then calls to BitmapData.copy() fail at this line;

ctx.drawImage(this._image, this._pos.x + x, this._pos.y + y, this._size.x, this._size.y, -newWidth * this._anchor.x, -newHeight * this._anchor.y, newWidth, newHeight);

With the following error;

Quote

Uncaught TypeError: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The provided value is not of type '(HTMLImageElement or HTMLVideoElement or HTMLCanvasElement or ImageBitmap)'

Some code to reproduce this is as follows;

var sprite = this.game.add.sprite(0, 0, "someimage");
var group = this.game.add.group();
group.add(sprite);

var texture1 = sprite.generateTexture();
var texture2 = group.generateTexture();

var bmd = this.game.add.bitmapData(this.game.width, this.game.height);
bmd.draw(texture1); // fails
bmd.draw(texture2); // fails

 

Link to comment
Share on other sites

BitmapData.draw can't draw PIXI.RenderTexture objects (it's not part of the method signature, or in the docs), which is what generateTexture returns.

Edited by rich
Changed Texture to RenderTexture (same end result though)
Link to comment
Share on other sites

But BitmapData.draw accepts a sprite per the signature/docs, and the following still fails with this;

var sprite = this.game.add.sprite(0, 0, "someimage");
var sprite2 = this.game.add.sprite(100, 100, sprite.generateTexture());
var bmd = this.game.add.bitmapData(this.game.width, this.game.height);
bmd.draw(sprite2);

 

 

Link to comment
Share on other sites

I note that BitmapData.drawGroup fails in the same manner.

If anyone has any ideas on how I can otherwise solve this i'm keen.  Basically I want to be able to add to the cache an image that was created by combining the output of one or more generateTextures().  Doesn't have to be BitmapData if that doesn't work with textures, but I'm not sure what else there is...

Link to comment
Share on other sites

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...