本人不懂openGL,研究了半天没明白怎么让倾斜的渐变色变成垂直的。感觉核心代码应该在这里:
_updateVertexData (matrix) {
let verts = this._vData,
uintV = this._uintVData;
let w = this.node.width,
h = this.node.height,
appx = w * this.node.anchorX,
appy = h * this.node.anchorY;
let a = matrix.m00, b = matrix.m01, c = matrix.m04, d = matrix.m05,
tx = matrix.m12, ty = matrix.m13;
let x, y, i = 0;
// bl
x = -appx;
y = -appy;
verts[i++] = x * a + y * c + tx;
verts[i++] = x * b + y * d + ty;
// color._val is rgba packed into uint32
uintV[i++] = this.blColor._val;
// br
x = w - appx;
y = -appy;
verts[i++] = x * a + y * c + tx;
verts[i++] = x * b + y * d + ty;
uintV[i++] = this.brColor._val;
// tl
x = -appx;
y = h - appy;
verts[i++] = x * a + y * c + tx;
verts[i++] = x * b + y * d + ty;
uintV[i++] = this.tlColor._val;
// tr
x = w - appx;
y = h - appy;
verts[i++] = x * a + y * c + tx;
verts[i++] = x * b + y * d + ty;
uintV[i++] = this.trColor._val;
this._vb.update(0, verts);
},
哪位大佬指点下谢谢!
