Wez Furlong
b0efba9300
improve linear f32 -> srgb8 conversion
...
This uses a combination of lookup tables and simd to reduce the
cpu utilization by about ~15% compared to the prior brute force
implementation.
2019-09-30 00:45:35 -07:00
Wez Furlong
07fcc96f5a
window: disable alignment based optimization for fill_pixel
2019-09-29 20:59:20 -07:00
Wez Furlong
1e25003cb6
speed up rgb conversion from u8 -> linear f32
2019-09-29 20:52:47 -07:00
Wez Furlong
c6fd88d8c5
add basic simd support for clearing rectangles
2019-09-29 20:24:26 -07:00
Wez Furlong
569408de66
software: handle OutOfTextureSpace condition
2019-09-29 12:42:51 -07:00
Wez Furlong
91e6bb4a5a
rustfmt
2019-09-29 12:29:34 -07:00
Wez Furlong
99579bfca2
make it possible to build async example on stable rust
...
This should make the CI a bit happier
2019-09-28 22:00:07 -07:00
Wez Furlong
52a65370fa
cargo fmt with rust 1.38
2019-09-28 21:40:40 -07:00
Wez Furlong
1c5f20f5e5
window: impl close for Windows
2019-09-28 21:16:08 -07:00
Wez Furlong
d44f380a82
window: impl close method on x11
2019-09-28 21:01:18 -07:00
Wez Furlong
d543d07c69
software: remove drop handler
2019-09-28 20:46:31 -07:00
Wez Furlong
950a7d2b22
cargo fix dyn
2019-09-28 20:29:48 -07:00
Wez Furlong
ed25cc81e6
fix an issue where closing tab 0 wouldn't repaint the new tab 0
2019-09-28 19:54:37 -07:00
Wez Furlong
7e09492606
Add close operation on macos
2019-09-28 17:46:43 -07:00
Wez Furlong
34f60dfa7f
software: add font size key assignment handling
...
This doesn't know how to resize the window at the moment, which is
different from how the opengl renderer behaves.
2019-09-28 16:00:08 -07:00
Wez Furlong
a3a54837b7
software: implement paste key assignment
2019-09-28 15:50:42 -07:00
Wez Furlong
436bdf7589
software: implement most key assignments
2019-09-28 13:46:17 -07:00
Wez Furlong
a7c4eb430d
export key map code from guicommon
2019-09-28 12:54:11 -07:00
Wez Furlong
6dac1a5cf0
software: always render emoji using its own color
...
This avoids just rendering black when dragging the selection over
the glyph
2019-09-28 10:44:29 -07:00
Wez Furlong
dd1621e693
window: fixup mouse coords on macos hidpi display
2019-09-28 10:29:47 -07:00
Wez Furlong
40d7186a9c
software: pre-scale emoji so they render more reasonably
...
Since we don't have a draw-image-and-rescale primitive, and since
we'd have to scale every time we drew the glyph, it makes sense to
cache the pre-scaled glyph in the atlas.
2019-09-28 10:20:17 -07:00
Wez Furlong
389c477b16
software: ligatures now render, but scaled emoji need work
2019-09-28 10:06:47 -07:00
Wez Furlong
2a7892e3c5
software: fill marginal areas outside cell dimensions
2019-09-28 09:19:51 -07:00
Wez Furlong
a9621170f7
window: on macos, query the dpi and improve resize/scaling handling
2019-09-28 09:01:14 -07:00
Wez Furlong
3a49b79ec6
basic timer list for x11 in software front end
2019-09-24 09:29:28 -07:00
Wez Furlong
67d6e7fd1a
window: cache window bitmap between paint calls
...
Without this, apps that only render invalidated portions of the screen
will render blank areas for the rest of the screen!
2019-09-23 08:03:23 -07:00
Wez Furlong
b0dd3a3803
fixup basic example for Point changes
2019-09-23 08:01:27 -07:00
Wez Furlong
c1c61974f8
implement timers for windows
2019-09-23 07:36:59 -07:00
Wez Furlong
4a742ea56b
(almost) fixup compilation for windows
2019-09-23 06:48:47 -07:00
Wez Furlong
190303c7d5
more explicit dyn for windows
2019-09-23 06:46:56 -07:00
Wez Furlong
8e38f34b6d
fix a couple of warnings
2019-09-22 21:02:02 -07:00
Wez Furlong
ed90a1487d
scroll wheel events on macos
2019-09-22 15:51:33 -07:00
Wez Furlong
2afb2810cc
plumb mouse events for software frontend
2019-09-22 13:43:30 -07:00
Wez Furlong
ec280a54f8
incomplete but functional key input for software frontend
2019-09-22 10:25:31 -07:00
Wez Furlong
4de30373b6
tidy up window/tab closing and quitting for software frontend
2019-09-22 08:38:35 -07:00
Wez Furlong
88d15e18af
factor our underline/strikethrough metrics for software render
2019-09-22 08:26:54 -07:00
Wez Furlong
ccb27b3422
fixup a few warnings
2019-09-22 08:21:36 -07:00
Wez Furlong
68f81e23f7
software render can now render basic glyphs
2019-09-22 08:12:52 -07:00
Wez Furlong
f17824994f
window: add basic timer functionality
...
We need this to poll the model and invalidate the gui so that it
can repaint as the child process emits output
2019-09-21 22:16:27 -07:00
Wez Furlong
a58a0be632
wire up basic cursor and background color for software render frontend
2019-09-21 17:32:19 -07:00
Wez Furlong
0d7d438270
separate Sprite and SpriteSlice impls
2019-09-21 14:25:12 -07:00
Wez Furlong
86ba590ead
fixup some missing dyn
2019-09-21 13:36:15 -07:00
Wez Furlong
fb5cbb5827
fixup x11 build for euclid point/rect changes
2019-09-21 13:33:21 -07:00
Wez Furlong
a236cf6c08
fixup for euclid + rect/point/draw_line changes
2019-09-21 13:16:23 -07:00
Wez Furlong
709990b9e7
use euclid crate for point/rect
2019-09-21 13:05:50 -07:00
Wez Furlong
c7c25025ed
upgrade euclid dep
2019-09-21 12:32:21 -07:00
Wez Furlong
3dce78bd9c
copy and adapt our opengl texture atlas code for the window crate
2019-09-21 09:00:08 -07:00
Wez Furlong
1950843de4
these rect methods should have been public
2019-09-21 08:03:14 -07:00
Wez Furlong
4e62b59628
rediscover the Rect type for x11 and consolidate
2019-09-21 08:01:31 -07:00
Wez Furlong
050dde6b4f
clean up draw_image api
2019-09-21 07:44:28 -07:00