declare vars before loop

This commit is contained in:
Laurent Le Goff 2011-04-14 18:32:35 +02:00
parent f4760bc626
commit 89f7d996af

View file

@ -115,17 +115,18 @@ func compose(c1, c2 image.Color) image.Color {
func DrawImage(src image.Image, dest draw.Image, tr MatrixTransform, op draw.Op, filter ImageFilter) { func DrawImage(src image.Image, dest draw.Image, tr MatrixTransform, op draw.Op, filter ImageFilter) {
b := src.Bounds() bounds := src.Bounds()
x0, y0, x1, y1 := float64(b.Min.X), float64(b.Min.Y), float64(b.Max.X), float64(b.Max.Y) x0, y0, x1, y1 := float64(bounds.Min.X), float64(bounds.Min.Y), float64(bounds.Max.X), float64(bounds.Max.Y)
tr.TransformRectangle(&x0, &y0, &x1, &y1) tr.TransformRectangle(&x0, &y0, &x1, &y1)
var x, y, u, v float64 var x, y, u, v float64
var c1, c2, cr image.Color
var r, g, b, a, ia, r1, g1, b1, a1, r2, g2, b2, a2 uint32
for x = x0; x < x1; x++ { for x = x0; x < x1; x++ {
for y = y0; y < y1; y++ { for y = y0; y < y1; y++ {
u = x u = x
v = y v = y
tr.InverseTransform(&u, &v) tr.InverseTransform(&u, &v)
c1 := dest.At(int(x), int(y)) c1 = dest.At(int(x), int(y))
var c2 image.Color
switch filter { switch filter {
case LinearFilter: case LinearFilter:
c2 = src.At(int(u), int(v)) c2 = src.At(int(u), int(v))
@ -134,16 +135,15 @@ func DrawImage(src image.Image, dest draw.Image, tr MatrixTransform, op draw.Op,
case BicubicFilter: case BicubicFilter:
c2 = getColorBicubic(src, u, v) c2 = getColorBicubic(src, u, v)
} }
var cr image.Color
switch op { switch op {
case draw.Over: case draw.Over:
r1, g1, b1, a1 := c1.RGBA() r1, g1, b1, a1 = c1.RGBA()
r2, g2, b2, a2 := c2.RGBA() r2, g2, b2, a2 = c2.RGBA()
ia := M - a2 ia = M - a2
r := ((r1 * ia) / M) + r2 r = ((r1 * ia) / M) + r2
g := ((g1 * ia) / M) + g2 g = ((g1 * ia) / M) + g2
b := ((b1 * ia) / M) + b2 b = ((b1 * ia) / M) + b2
a := ((a1 * ia) / M) + a2 a = ((a1 * ia) / M) + a2
cr = image.RGBAColor{uint8(r >> 8), uint8(g >> 8), uint8(b >> 8), uint8(a >> 8)} cr = image.RGBAColor{uint8(r >> 8), uint8(g >> 8), uint8(b >> 8), uint8(a >> 8)}
default: default:
cr = c2 cr = c2