view: use a matrix to determine canvas transform