I met a bug in Phaser 3:
CanvasTexture’s setPixel(or getPixel) doesn’t work.
Here is the code:
'use strict';
var Scene = require('phaser').Scene;
class BootScene extends Scene{
constructor(){
super({ key: 'BootScene' });
}
preload(){
}
create(){
var Sprite = require('phaser').GameObjects.Sprite;
var __CT__ = this.textures.createCanvas('ct', 25, 25);
for(let i = 0 ; i < 25 ; i++){
for(let j = 0 ; j < 25 ; j++){
console.log(` ~ SETTIN 255-128-64`);
__CT__.setPixel(i, j, 255, 128, 64);
let _pxl = __CT__.getPixel(i, j);
console.log(` ~ GETTIN ${_pxl.r}-${_pxl.g}-${_pxl.b}`);
}
}
__CT__.refresh();
var s2 = new Sprite(this, 200, 200, 'ct');
this.add.existing(s2);
s2.setDisplaySize(200, 100);
}
}
module.exports = BootScene;
Here what I see in Safari:
Screenshot - fa8b60d7663a7b16852490065f894923 - Gyazo (nothing)
What I see in Brave:
Screenshot - 9be908c484b49bae75e0e242cdf0e2df - Gyazo (rectangle)
And in both browsers I see that getPixel returns nothing:
Is it planned to be fixed? Or what should I do now to avoid this bug?
versions:
phaser: 3.52.0
safari: 14.0.1 (16610.2.11.51.8)