1
0
mirror of https://github.com/golang/go synced 2024-10-04 21:11:22 -06:00
Commit Graph

30 Commits

Author SHA1 Message Date
Nigel Tao
715425bf6f exp/draw/x11: implement the mapping from keycodes to keysyms.
R=rsc
CC=golang-dev, rog
https://golang.org/cl/1739042
2010-06-29 10:54:41 +10:00
Nigel Tao
44a17e9df7 exp/draw: small draw.drawGlyphOver optimization.
Make dpix variable names consistent.

R=rsc
CC=golang-dev
https://golang.org/cl/1563041
2010-06-14 16:49:43 +10:00
Nigel Tao
37fba90bc7 Fixes #836.
R=gri
CC=golang-dev
https://golang.org/cl/1548042
2010-06-04 17:30:39 -07:00
Nigel Tao
2006667931 draw.Draw fast paths for the Over operator.
Time (us) to draw a 200x200 src onto an image.RGBA dst with the Over
operator. Each case was measured three separate times, and the sorted
times are reported.

Fill case (where src is an image.ColorImage):
Before:
7438, 7511, 7526
After:
3073, 3087, 3102

Copy case (where src is an image.RGBA):
Before:
9506, 9510, 9563
After:
5262, 5300, 5344

R=rsc
CC=golang-dev
https://golang.org/cl/1532041
2010-06-03 17:19:00 -07:00
Nigel Tao
2bb59fd71a Make image.Color.RGBA return 16 bit color instead of 32 bit color.
R=rsc
CC=golang-dev
https://golang.org/cl/1388041
2010-05-28 12:59:21 -07:00
Roger Peppe
1fda1323d4 Add Rectangle.Eq and Point.In.
Fix Rectangle.Clip.
It could return a non-canonical rectangle if its arguments
did not overlap.
e.g. Rect(0, 0, 10, 10).Clip(Rect(0, 20, 10, 30)) -> Rect(0, 20, 10, 10)

R=rsc, r
CC=golang-dev, golang-dev
https://golang.org/cl/1290041
2010-05-27 17:19:47 -07:00
Nigel Tao
0c662f60a5 Optimize exp/draw/x11 flusher inner loop.
On my laptop, time to prepare and write 800x600 pixels over the
socket falls from 125-ish ms to 80-ish ms.

Thanks to Roger Peppe for the suggestion.

R=r
CC=golang-dev
https://golang.org/cl/1228044
2010-05-24 19:32:42 -07:00
Nigel Tao
c95e11db56 Fix typo in exp/draw/x11.
R=rsc
CC=golang-dev
https://golang.org/cl/1282041
2010-05-24 15:07:47 -07:00
Nigel Tao
2d8aee45b8 Make draw/x11 treat $DISPLAY the same way x-go-bindings does.
This ought to make draw/x11 work on a Mac.

R=rsc
CC=golang-dev
https://golang.org/cl/1265042
2010-05-24 11:44:09 -07:00
Robert Griesemer
72fd5c80f8 go/printer, gofmt: fix printing of labels,
apply gofmt to src, misc

Fixes #752.

R=rsc
CC=golang-dev
https://golang.org/cl/1240044
2010-05-21 20:25:08 -07:00
Roger Peppe
798140693e Fix Rectangle.Canon()
R=rsc, r, gri
CC=golang-dev
https://golang.org/cl/1239043
2010-05-20 14:33:50 -07:00
Nigel Tao
efda3aba10 Fast-ish path for drawing onto an image.RGBA destination.
Time to draw.Draw a 200x200 image fell from 18.4ms (and 1 malloc) to
5.6ms (and 0 mallocs). It's still relatively slow since it assumes
nothing about the src or mask images, but it does remove the malloc.
There are existing faster, more specialized paths for copies, fills
and image glyph masks.

Also added a "compare to a slow but obviously correct implementation"
check to draw_test.go.

R=rsc, r
CC=golang-dev
https://golang.org/cl/1223044
2010-05-20 13:57:18 -07:00
Nigel Tao
916426ea76 drawGlyphOver optimization.
Timings (as for change 1122043) go from 49ms to 48ms ish. It's
mostly lost in the noise, but it probably doesn't hurt.

R=r
CC=golang-dev
https://golang.org/cl/1179041
2010-05-11 13:35:16 +10:00
Nigel Tao
d7a6d22852 exp/draw fast path for glyph images.
To draw.Draw a 32x32 image.Alpha 10000 times,
Before: 633ms with 10000 mallocs
After: 49ms with 0 mallocs

These times are just blitting an image.Alpha, and do not include
rasterizing a glyph's vector contours to an image.Alpha.

The "generic" test case in draw_test.go tests this fast path.

R=rsc
CC=golang-dev
https://golang.org/cl/1122043
2010-05-10 10:32:08 +10:00
Nigel Tao
20ba090978 Make exp/draw/x11 respect $XAUTHORITY.
R=rsc, cw, nigeltao_golang
CC=golang-dev
https://golang.org/cl/1134041
2010-05-06 18:41:42 +10:00
Nigel Tao
3dc04f4a22 Add Src and Over draw operators.
R=r, rsc
CC=golang-dev
https://golang.org/cl/207096
2010-02-17 14:34:51 +11:00
Nigel Tao
fc8e3d4004 exp/draw test.
R=rsc
CC=golang-dev
https://golang.org/cl/203062
2010-02-11 13:38:16 +11:00
Nigel Tao
48cdb63baa draw.Draw fast paths for a nil mask (and RGBA dst).
Averaged times (in microseconds) for drawing an 800x600 rectangle
are listed below. The summary is: around a 100x improvement.

draw.Draw call times were typically linear in the number of pixels
touched (i.e. drawing an 800x600 rectangle took 100x as much time as
drawing an 80x60 rectangle).

Before this change, there was only the general-but-slow code path.
When drawing any src with a 50%-opaque mask: 237300 us
When drawing any src with a nil mask: 50100 us

After this change, the 50%-opaque mask case is unchanged.
For an *image.RGBA dst and nil mask and...
...a uniform color (i.e. an image.ColorImage) src: 282 us
...another *image.RGBA src: 615 us.

For the curious, an intermediate implementation detected the special
cases but used simple nested for loops instead of the built-in copy
function. The respective times (compared to 282 and 615 for the
final implementation, or 50100 for the original) were 3110 and 3573.

Times were measured with 8g/8l on my laptop. I haven't tried gccgo
or other architectures.

R=r, rsc
CC=golang-dev
https://golang.org/cl/201048
2010-02-06 15:57:19 +11:00
Nigel Tao
4e2035bdc2 In draw.Draw, separate the source-point and mask-point.
This lets you draw text (i.e. with mask = a font image) with
sources that aren't uniform colors.

R=r, rsc
CC=golang-dev
https://golang.org/cl/193067
2010-02-04 21:21:32 +11:00
Nigel Tao
8cf627ad57 Fix s/Width/Height/ typo in draw.go.
Fixes #531.

R=r
CC=golang-dev
https://golang.org/cl/189078
2010-01-15 11:58:24 +11:00
Robert Griesemer
1c72959999 1) Change default gofmt default settings for
parsing and printing to new syntax.

                  Use -oldparser to parse the old syntax,
                  use -oldprinter to print the old syntax.

               2) Change default gofmt formatting settings
                  to use tabs for indentation only and to use
                  spaces for alignment. This will make the code
                  alignment insensitive to an editor's tabwidth.

                  Use -spaces=false to use tabs for alignment.

               3) Manually changed src/exp/parser/parser_test.go
                  so that it doesn't try to parse the parser's
                  source files using the old syntax (they have
                  new syntax now).

               4) gofmt -w src misc test/bench

	       2nd set of files.

R=rsc
CC=golang-dev
https://golang.org/cl/179067
2009-12-15 15:27:16 -08:00
Sergio Luis O. B. Correia
46892656c7 crypto/md4, exp/draw/x11: fix makefile to build when GOROOT has whitespaces
this is the exact same thing issue #115 is about. fix makefiles to use relative
path to work in the case we have whitespaces as part of GOROOT.

R=rsc
https://golang.org/cl/162055
2009-11-29 18:14:49 -08:00
Nigel Tao
f65427a8be Initial exp/draw/x11 implementation.
This provides an experimental X11 backend for the exp/draw interface.
It does not aim to provide a complete implementation of the X11 client protocol.

This works for me (Ubuntu Hardy 8.04, GOARCH=386). Your mileage my vary.

R=r, rsc, r1
CC=golang-dev
https://golang.org/cl/156109
2009-11-25 18:31:34 +11:00
Sergio Luis O. B. Correia
6fc820729e go: makes it build for the case $GOROOT has whitespaces
the bash scripts and makefiles for building go didn't take into account
the fact $GOROOT / $GOBIN could both be directories containing whitespaces,
and was not possible to build it in such a situation.

this commit adjusts the various makefiles/scripts to make it aware of that
possibility, and now it builds successfully when using a path with whitespaces
as well.

Fixes #115.

R=rsc, dsymonds1
https://golang.org/cl/157067
2009-11-23 17:32:51 -08:00
Adam Langley
454c621d91 exp/draw: correct Makefile.
Thanks to Allister Macleod

Fixes #112.

R=rsc
CC=golang-dev
https://golang.org/cl/152102
2009-11-12 13:55:20 -08:00
Robert Griesemer
baba292998 - replaced gofmt expression formatting algorithm with
rsc's algorithm
	- applied gofmt -w misc src
	- partial CL (remaining files in other CLs)

R=rsc, r
http://go/go-review/1026036
2009-11-09 21:13:17 -08:00
Robert Griesemer
40621d5c0d remove semis after statements in one-statement statement lists
R=rsc, r
http://go/go-review/1025029
2009-11-09 12:07:39 -08:00
Robert Griesemer
368f8cbc75 - fine-tuning of one-line func heuristic (nodes.go)
- enabled for function declarations (not just function literals)
- applied gofmt -w $GOROOT/src
(look for instance at src/pkg/debug/elf/elf.go)

R=r, rsc
CC=go-dev
http://go/go-review/1026006
2009-11-06 14:24:38 -08:00
Robert Griesemer
2a89915485 gofmt-ify draw
R=rsc
http://go/go-review/1017055
2009-11-05 14:42:28 -08:00
Russ Cox
c058e20a18 move draw to exp
R=r
DELTA=942  (471 added, 471 deleted, 0 changed)
OCL=35733
CL=35740
2009-10-14 17:15:56 -07:00