skyfish-qc / pixi-miniprogram

一个可运行于微信小程序的PIXI引擎,通过模拟window环境,有些功能小程序无法模拟,就直接修改了PIXI引擎代码,最终使得PIXI引擎正常运行在小程序上
MIT License
138 stars 35 forks source link

安卓小程序里的canvas背景无法透明 #11

Closed cometwan closed 3 years ago

cometwan commented 3 years ago

canvas.getContext('webgl', { alpha: true }); 小程序官方给的代码只能在ios下背景透明,Threejs安卓&iOS都可正常transparent “gl.clear(gl.COLOR_BUFFER_BIT); gl.clearColor(0, 0, 0, 0);” 大法也试过了... 小程序 2.16.0 微信 8.0.6 android 11

cometwan commented 3 years ago

试了一下官方 android下透明bug的解决办法 canvas.getContext("webgl",{ alpha: true} 在PIXI实例init中植入即可. 各个品牌(oppo 华为)测试通过。

skyfish-qc commented 3 years ago

那个初始化时候你把transparent设置为true就可以的了, var renderer = PIXI.autoDetectRenderer({width:stageWidth, height:stageHeight,transparent:true,premultipliedAlpha:true,'view':canvas});//通过view把小程序的canvas传入

skyfish-qc commented 3 years ago

这里的transparent的参数最终是去到getContext那里的

cometwan commented 3 years ago

那个初始化时候你把transparent设置为true就可以的了, var renderer = PIXI.autoDetectRenderer({width:stageWidth, height:stageHeight,transparent:true,premultipliedAlpha:true,'view':canvas});//通过view把小程序的canvas传入

这个transparent:true 初始设置过,在各系统表现不一致,但在小程序里的设getContext("webgl",{ alpha: true}) 这里的alpha在如果只是单纯的 canvas webgl模式是一致表现为透明的。Pixijs或Threejs都需要再设置。