2D affine matrix utilities. Column-major 9-element Float32Array, matching WebGL2RenderingContext.uniformMatrix3fv byte order so we can pass the array directly without a transpose flag.
WebGL2RenderingContext.uniformMatrix3fv
Layout (column-major): [m00, m10, 0, m01, m11, 0, tx, ty, 1]
apply(m, x, y) returns [m * (x, y, 1)] = [m00*x + m01*y + tx, m10*x + m11*y + ty].
apply(m, x, y)
[m * (x, y, 1)] = [m00*x + m01*y + tx, m10*x + m11*y + ty]
2D affine matrix utilities. Column-major 9-element Float32Array, matching
WebGL2RenderingContext.uniformMatrix3fvbyte order so we can pass the array directly without a transpose flag.Layout (column-major): [m00, m10, 0, m01, m11, 0, tx, ty, 1]
apply(m, x, y)returns[m * (x, y, 1)] = [m00*x + m01*y + tx, m10*x + m11*y + ty].