message: Fixes multi-Renderer async problem
diff: @@ -197,8 +197,10 @@ export default class ImageResource extends BaseImageResource
  {
  baseTexture.premultiplyAlpha = this.premultiplyAlpha;
  - if (this.createBitmap)
  + if (!this.createBitmap)
  {
  + return super.upload(renderer, baseTexture, glTexture);
  + }
  if (!this.bitmap)
  {
  // yeah, ignore the output
  @@ -212,6 +214,23 @@ export default class ImageResource extends BaseImageResource
  super.upload(renderer, baseTexture, glTexture, this.bitmap);
  if (!this.preserveBitmap)
  + {
  + // checks if there are other renderers that possibly need this bitmap
  +
  + let flag = true;
  +
  + for (const key in baseTexture._glTextures)
  + {
  + const otherTex = baseTexture._glTextures[key];
  +
  + if (otherTex !== glTexture && otherTex.dirtyId !== baseTexture.dirtyId)
  + {
  + flag = false;
  + break;
  + }
  + }
  +
  + if (flag)
  {
  if (this.bitmap.close)
  {
  @@ -221,10 +240,6 @@ export default class ImageResource extends BaseImageResource
  this.bitmap = null;
  }
  }
  - else
  - {
  - super.upload(renderer, baseTexture, glTexture);
  - }
  return true;
  }
  