def Surface.transformBlit(src, dst, angle, xscale, yscale,
px, py, qx, qy, flags)
transformed = src.transformSurface(src.colorkey, angle,
xscale, yscale, flags)
transformed.setColorKey(src.flags & (SDL::SRCCOLORKEY|SDL::RLEACCEL),
src.colorkey )
transformed.setAlpha(src.flags & (SDL::SRCALPHA|SDL::RLEACCEL),
src.alpha )
rad = Math::PI*angle / 180.0
x = px - src.w/2.0 ; y = py - src.h/2.0
x *= xscale ; y *= yscale
dst_x = x*Math.cos(rad)-y*Math.sin(rad)
dst_y = x*Math.sin(rad)+y*Math.cos(rad)
dst_x += transformed.w / 2
dst_y += transformed.h / 2
Surface.blit(transformed, 0, 0, 0, 0, dst, qx-dst_x, qy-dst_y)
end