You will need to do more than just change the x and y coordinates of the corners if you want it to have proper perspetive. Changing a square into a trapezium will simply squeeze the rows horizontally but will not alter the vertical position of the rows, and any vertical stretching will be applied uniformly across the image with no sense of perspective. You would have to draw your source image with a fake perspective stretch and then apply the corner coords.
OR - you would actually define a Z coordinate for each corner and have the routine use a persective projection to place the quad in real 3d space - then you wouldn't have to supply corner coordinates for every corner, you could just say `put a quad with x width and y height centered at coords x,y,z with x,y,z rotation.
OR - you would actually define a Z coordinate for each corner and have the routine use a persective projection to place the quad in real 3d space - then you wouldn't have to supply corner coordinates for every corner, you could just say `put a quad with x width and y height centered at coords x,y,z with x,y,z rotation.