Elias Naur
8700a8ffc3
ui/key,ui/pointer: rename HandlerOp to InputOp
...
"Input" is more specific and reads better than "handler".
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-26 18:07:48 +01:00
Elias Naur
a112a580a7
ui/app(internal/gpu: remove unused parameters
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-25 23:58:19 +01:00
Daniel Martí
2542c55e9d
all: fix some issues spotted by static analysis
...
First, vet was upset by two incorrect fmt verbs. One was an extra %x,
when there was just one argument, so remove it. Another was a %p with a
non-pointer. It's a struct, so for now simply use %#v.
Second, staticcheck found some unused or unnecessary bits of code;
remove the obvious ones.
Finally, staticcheck also complained about some error strings which were
capitalized or had periods. Adjust those, which also makes all error
messages more consistent.
Signed-off-by: Daniel Martí <mvdan@mvdan.cc >
2019-08-25 22:41:05 +01:00
Elias Naur
c3f30188a5
all: delete unused variables
...
Found by Daniel Martí.
Fixes gio#24
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-24 18:25:37 +01:00
Elias Naur
9520a9278f
ui/app/internal/gpu: set the default material to black
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-22 11:25:11 +02:00
Elias Naur
340fff9814
ui/key: rename ChordEvent to just Event
...
Event is like pointer.Event and we don't want the stuttering of
key.KeyEvent.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-11 12:50:40 +02:00
Elias Naur
2a0b0077da
ui/app: (wasm) add checks for required extensions
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-10 00:49:28 +02:00
Elias Naur
dd35a48a61
ui/paint: rename the draw package
...
The draw package name clashes with the standard library draw package.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-07 20:11:53 +02:00
Elias Naur
6e26c92c75
all: remove exported Decode methods on operations
...
Add decode functions to the packages that need them instead. For
TransformOp that is used in multiple packages, add the decode
function to the internal ops package.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-07 17:21:34 +02:00
Elias Naur
4d66669a9e
app/internal/gpu: rename opClip to clipOp
...
To better match ClipOp, which was renamed from OpClip.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-07 17:21:34 +02:00
Elias Naur
eaa4efe5af
all: add missing licence headers
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-07 17:21:34 +02:00
Elias Naur
b3517a365e
ui,internal/ops,internal/opconst: move OpsReader to internal ops package
...
To avoid import cycles, move the op constants to its own package,
internal/opconst.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-07 17:21:26 +02:00
Elias Naur
fe20cde393
ui: rename TransformOp.Mul to Multiply and split InvTransform
...
Multiply is a bit longer but more clear. InvTransform was really
two operations: Invert and Transform.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-07 14:47:14 +02:00
Larry Clapp
a14e818299
draw: Fix spelling of Bezier
...
Sometimes it was "bezier", sometimes "beziér". Capitalize and put
accent on first e. https://en.wikipedia.org/wiki/Bézier_curve
Signed-off-by: Larry Clapp <larry@theclapp.org >
2019-08-05 19:18:10 +02:00
Elias Naur
73b1e64209
ui/input: change Queue to return Events one at a time
...
By returning all events, widgets that might return early from its
event loop might throw away subsequent events. Instead of requiring
those widgets to store the event list, convert input.Queue to step
through the available events one at a time.
Functional revert of 1735d5ced8 .
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-01 18:56:49 +02:00
Elias Naur
bfece0beba
ui: change area ops to use rectangles, not sizes
...
And then use the more general rectangles to add a buffer around
text.Editor click and scroll area.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-01 10:06:19 +02:00
Elias Naur
5f2adf9b2f
ui: get rid of Inf
...
It's not worth the special cases. Use a large value where needed
(layout.List, text.Editor...) instead.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-07-29 12:12:51 +02:00
Elias Naur
5e1f078b12
ui: merge Transform into TransformOp
...
The separate Transform type is not worth its weight.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-07-29 02:50:55 -07:00
Elias Naur
d178167c3b
ui/app/internal/gpu: add workaround for render corruption
...
Fixes gio#13
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-07-29 02:50:50 -07:00
Elias Naur
c1128e7f8a
ui/app/internal/gpu: only apply clear optimization for rect clips
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-07-24 20:16:38 -07:00
Elias Naur
9e0e4af8c6
ui/app,ui/key: move TextInputState from key to internal package
...
Clients have no need for the TextInputState type.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-07-21 13:12:24 +02:00
Elias Naur
3f7735ccdf
ui/app/internal/input: redraw if focus events was added
...
The key queue might generate focus events. Schedule a redraw if so.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-07-21 12:50:53 +02:00
Elias Naur
c94315119b
ui/app/internal/input: only drop handlers completely when inactive
...
Delete a redundant loop; dropHandlers already does the required work.
Fixes pointer event issues found after pointer events with no side
effects no longer trigger redraws.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-07-18 21:06:06 +02:00
Elias Naur
d9d8df989d
ui/app: rename Window.Redraw to Invalidate to match ui.InvalidateOp
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-07-18 18:45:46 +02:00
Elias Naur
84fb7279eb
ui/draw: rename ImageOp.Img to Src
...
To match widget.Image.Src field name.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-07-18 15:58:11 +02:00
Elias Naur
46cee54dd6
io/app/internal/input: go fmt
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-07-12 20:47:29 +02:00
Elias Naur
2296393471
ui/system: move package ui/input/system
...
Just like the pointer and key packages.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-07-12 15:54:41 +02:00
Elias Naur
86533ae683
ui/input/system: introduce package for system events
...
And add ProfileOp and ProfileEvent for registering and receiving
profile data.
Remove the Profiling field and Timings method from app.Window.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-07-12 15:31:29 +02:00
Elias Naur
032e9a380e
ui/app,ui/internal/input: move InvalidateOp summary to Router
...
In preparation for extracting more op types in Router.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-07-12 15:11:20 +02:00
Elias Naur
ba18817400
ui/app/internal/input: add tracking up updates to handlerEvents
...
In preparation for only redrawing when new events are available.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-07-12 14:34:24 +02:00
Elias Naur
cbdda4e9c5
ui/input: move Router and input queues to internal package
...
Now that only app.Window needs the Router, make it unavailable for
clients.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-07-12 13:51:00 +02:00
Elias Naur
3a6fda129a
ui: shorten OpReader.Decode for loops
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-07-12 11:44:50 +02:00
Elias Naur
38ec6a8831
ui/draw: rename ColorOp.Col to Color
2019-07-05 17:14:57 +02:00
Elias Naur
33fc35f58d
ui/draw: switch to color.RGBA for colors
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-07-02 14:56:48 +02:00
Elias Naur
7aa7bb3be4
ui: rename ops to have Op suffixed, not prefixed
...
Match Go's FooError name pattern.
While we're here, rename RedrawOp to InvalidateOp.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-06-21 17:01:45 +02:00
Elias Naur
1f809234b8
ui/app/internal/gpu: replace look up texture with calculation
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-06-10 01:18:23 +02:00
Elias Naur
eddc0c948e
ui/app/internal/gpu: fix stenciling on the iOS simulator
...
It seems that the iOS simulator can return NaN from texture2D, so
even though width == 0, the resulting cover is not.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-06-09 22:21:25 +02:00
Elias Naur
0138544242
ui/app/internal/gl: fix GetProgramInfoLog and GetShaderInfoLog
...
I should read the manual more carefully.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-06-09 21:19:50 +02:00
Elias Naur
bd005a09e3
ui/app/internal/gpu: upload path data to GPU before re-use
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-06-08 18:30:04 +02:00
Elias Naur
86f6765e64
ui/app/internal/gl: avoid allocations when passing handles to C
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-06-02 22:51:33 +02:00
Elias Naur
659a85aae0
ui/app/internal/gpu: add specialized path cache to avoid key allocations
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-06-02 22:45:44 +02:00
Elias Naur
1e38eec0ab
ui: build paths as ops
...
Instead of allocating and constructing a clip path, store path data
directly in op lists. Use separate op lists for cached text layout
paths.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-06-02 22:18:04 +02:00
Elias Naur
0d2cffe196
ui: let OpsReader keep track of references
...
Instead of exposing the entire reference slice, return the relevant
references from Next.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-06-02 19:17:53 +02:00
Elias Naur
5966aab77e
ui: move ops reader to ui package
...
To prepare support for cached OpBlock to refer to other Ops lists.
The exposure of OpsReader is alleviated by the removal of the Refs
and Data accessors for Ops.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-06-02 19:17:53 +02:00
Elias Naur
7ae8fdaae7
ui/app/internal/gpu: track image and color in a state stack
...
Just like the other drawing state, the current image or color must
be tracked in a stack.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-06-01 18:43:51 +02:00
Elias Naur
00a87f542d
ui: introduce OpColor, a specialized OpImage for uniform colors
...
To avoid allocating an image.Image for OpImage.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-06-01 13:01:51 +02:00
Elias Naur
0061c73a89
ui: split OpImage into OpImage and OpDraw
...
In preparation for an OpColor (and future OpGradient and similar).
Label and Editor no longer take an explicit source image. They
draw with the current image.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-06-01 12:44:49 +02:00
Elias Naur
a1c0693eeb
ui/app: add Lock/Unlock to Context for macOS
...
Without locking, asynchronous OpenGL rendering crashes on macOS.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-05-24 14:01:26 +02:00
Elias Naur
c3ea85801c
ui/app: (wasm) replace TypedArrayOf with the CopyBytes* API
...
syscall/js.TypedArrayOf is going away in Go 1.13 and is replaced by
the CopyBytesToGo, CopyBytesToJS.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-05-24 12:30:34 +02:00
Elias Naur
edec032ae6
ui/app: (wasm) re-use javascript buffer
...
Now that syscall/js.TypedArrayOf is going away in Go 1.13 (sse
https://golang.org/issue/31980 ), copying byte slices to JS before
use is necessary. To avoid garbage, re-use a single buffer for all
transfers.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-05-23 10:16:49 +02:00