Sure. drawImageRect lets you draw a specific portion (sub-rectangle) of an image (this is the
source rectangle), and stretch/squish that to fit into a different (
destination) rectangle on the surface. In the (first) version that only takes a single rectangle, the
source is assumed to be the entire image, and the rectangle you specify is the
destination. So the result is to always stretch the whole image to fit whatever rectangle you specify - that's why you have a full copy of the image covering the stretched top-left region in your sample.
When you specify two rectangles, the first one is the source, and the second one is the destination. So for your second call, you're taking just an 80x120 portion of the image (that image happens to be 128x128 - this is why it's cut-off), then drawing that to a rectangle that's 40x60 (and offset to 50,50). Does that make sense?
-Brian