Reverse transform function, returns the point where a given texel needs to be written. The function reads as: [x',y'] = [A,B,C,D] * ([x,y] + [sX,sY] - [x_0,y_0]) + [x_0,y_0] ABCD: A/0: Horizontal scaling. 1 means no scaling at all, negative values end up in a mirrored image. B/1: Horizontal shearing. 0 means no shearing at all. C/2: Vertical shearing. 0 means no shearing at all. D/3: Vertical scaling. 1 means no scaling at all, negative values end up in a mirrored image. </ br> xy: Contains the screen coordinates. x:0 y:1 </ br> x0y0: Origin point. x_0:0/2 y_0:1/3 </ br> sXsY: Scrolling point. sX:0/2 sY:1/3
Relative rotation clockwise by given degrees. Returns the new transform points. </ br> theta: Degrees of clockwise rotation. </ br> input: Input of the transform points at 0 degrees.
Main transform function, returns the point where the pixel is needed to be read from. The function reads as: [x',y'] = [A,B,C,D] * ([x,y] + [sX,sY] - [x_0,y_0]) + [x_0,y_0] ABCD: A/0: Horizontal scaling. 1 means no scaling at all, negative values end up in a mirrored image. B/1: Horizontal shearing. 0 means no shearing at all. C/2: Vertical shearing. 0 means no shearing at all. D/3: Vertical scaling. 1 means no scaling at all, negative values end up in a mirrored image. </ br> xy: Contains the screen coordinates. x:0 y:1 </ br> x0y0: Origin point. x_0:0/2 y_0:1/3 </ br> sXsY: Scrolling point. sX:0/2 sY:1/3
Main transform function with fixed point aritmetics. Returns the point where the pixel is needed to be read from. 256 equals with 1. The function reads as: [x',y'] = ([A,B,C,D] * ([x,y] + [sX,sY] - [x_0,y_0]))>>>8 + [x_0,y_0] ABCD: A/0: Horizontal scaling. 256 means no scaling at all, negative values end up in a mirrored image. B/1: Horizontal shearing. 0 means no shearing at all. C/2: Vertical shearing. 0 means no shearing at all. D/3: Vertical scaling. 256 means no scaling at all, negative values end up in a mirrored image. </ br> xy: Contains the screen coordinates. x:0 y:1 </ br> x0y0: Origin point. x_0:0/2 y_0:1/3 </ br> sXsY: Scrolling point. sX:0/2 sY:1/3