Nigel Tao
851ded9660
image: remove superfluous if condition.
...
DrawMask already returns early if r.Empty().
R=r
CC=golang-dev
https://golang.org/cl/4703041
2011-07-12 17:02:55 +10:00
Nigel Tao
caaa6764fa
image: re-organize draw.go.
...
There are no behavioral changes, only some copy-and-pastes.
Before, drawFillOver was next to drawCopyOver.
After, drawFillOver is next to drawFillSrc, which is more similar to
drawFillOver than drawCopyOver is.
Similarly, drawCopyOver is now next to drawCopySrc, etc.
R=r
CC=golang-dev
https://golang.org/cl/4695045
2011-07-12 16:56:29 +10:00
Nigel Tao
8bd5089513
image: change Pix from []FooColor to []uint8.
...
Some benchmark numbers below. The image/draw fast-paths show dramatic
improvement, the generic slow-paths show a smaller slow-down.
BEFORE
png.BenchmarkEncodePaletted 200 8203800 ns/op 37.45 MB/s
png.BenchmarkEncodeRGBOpaque 100 26940440 ns/op 45.61 MB/s
png.BenchmarkEncodeRGBA 20 73821000 ns/op 16.65 MB/s
jpeg.BenchmarkEncodeRGBOpaque 50 35598640 ns/op 34.52 MB/s
draw.BenchmarkFillOver 500 4024226 ns/op
draw.BenchmarkFillSrc 10000 152736 ns/op
draw.BenchmarkCopyOver 500 3452824 ns/op
draw.BenchmarkCopySrc 50000 73218 ns/op
draw.BenchmarkNRGBAOver 500 3941234 ns/op
draw.BenchmarkNRGBASrc 1000 2484400 ns/op
draw.BenchmarkYCbCr 1000 2609005 ns/op
draw.BenchmarkGlyphOver 2000 1169575 ns/op
draw.BenchmarkRGBA 200 9031390 ns/op
draw.BenchmarkGenericOver 50 34636620 ns/op
draw.BenchmarkGenericMaskOver 100 16561150 ns/op
draw.BenchmarkGenericSrc 100 13873760 ns/op
draw.BenchmarkGenericMaskSrc 100 25198860 ns/op
AFTER
png.BenchmarkEncodePaletted 200 8206600 ns/op 37.43 MB/s
png.BenchmarkEncodeRGBOpaque 100 26129530 ns/op 47.03 MB/s
png.BenchmarkEncodeRGBA 20 75776750 ns/op 16.22 MB/s
jpeg.BenchmarkEncodeRGBOpaque 50 37192940 ns/op 33.04 MB/s
draw.BenchmarkFillOver 500 3008134 ns/op
draw.BenchmarkFillSrc 10000 154214 ns/op
draw.BenchmarkCopyOver 1000 2169988 ns/op
draw.BenchmarkCopySrc 50000 73095 ns/op
draw.BenchmarkNRGBAOver 1000 2491079 ns/op
draw.BenchmarkNRGBASrc 2000 1361244 ns/op
draw.BenchmarkYCbCr 1000 2554269 ns/op
draw.BenchmarkGlyphOver 2000 1042225 ns/op
draw.BenchmarkRGBA 100 10233340 ns/op
draw.BenchmarkGenericOver 50 38421560 ns/op
draw.BenchmarkGenericMaskOver 100 17521190 ns/op
draw.BenchmarkGenericSrc 100 16351200 ns/op
draw.BenchmarkGenericMaskSrc 100 26538190 ns/op
R=r
CC=golang-dev
https://golang.org/cl/4675076
2011-07-12 16:39:38 +10:00
Nigel Tao
6ec6f1ef62
image/draw: add benchmarks.
...
R=r
CC=golang-dev
https://golang.org/cl/4695043
2011-07-12 16:17:02 +10:00
Nigel Tao
87d9e7e166
image: change Pix[0] to mean top-left corner of an image's Rect instead
...
of the origin.
image/png and image/jpeg benchmarks show no significant changes.
The image/draw changes suggest to me that making a gofix for this is not
feasible. People are just going to have to make manual fixes.
R=r
CC=golang-dev
https://golang.org/cl/4681044
2011-07-10 14:29:47 +10:00
Nigel Tao
b39afde805
image/draw: add draw tests where the destination image doesn't start
...
at (0, 0).
Also refactor the test to use the SubImage method rather than monkeying
with an image's Pix and Rect fields.
R=r
CC=golang-dev
https://golang.org/cl/4678045
2011-07-08 09:54:21 +10:00
Nigel Tao
104f57ad39
image: add a test for filling sub-images.
...
R=r
CC=golang-dev
https://golang.org/cl/4626091
2011-07-05 14:42:31 +10:00
Nigel Tao
9555ea7a5b
image/draw: add an Op argument to Draw.
...
R=r
CC=golang-dev
https://golang.org/cl/4622041
2011-06-16 11:45:16 +10:00
Nigel Tao
b47a38dedb
image/draw: move exp/draw to image/draw and exp/gui.
...
R=r
CC=golang-dev
https://golang.org/cl/4515191
2011-06-05 14:27:38 +10:00