Wez Furlong
f2fce18586
window: use wgl for opengl on windows
2019-10-24 19:12:18 -07:00
Wez Furlong
5135c724e6
window: fixup windows build for egl changes
2019-10-24 17:48:49 -07:00
Wez Furlong
7c2afce851
implement EGL based render for termwindow/opengl mode on linux
2019-10-24 17:43:37 -07:00
Wez Furlong
0e95f00a52
window: remove debug print on x11
2019-10-24 16:03:32 -07:00
Wez Furlong
6a96b7ddea
window: take a stabe at EGL for linux/windows
...
This doesn't initialize it at all properly yet, but is groundwork
for completing that work in a later commit
2019-10-24 15:54:41 -07:00
Wez Furlong
f57b5deb80
allow compiling on win and linux
2019-10-24 10:37:40 -07:00
Wez Furlong
c6ce005b2a
make new opengl frontend basically work on macos
...
It doesn't yet handle underlines or strikethrough.
Notably, live resizing now works, which is nice!
2019-10-24 08:27:11 -07:00
Wez Furlong
41e392fc79
we can now init opengl but not render it
2019-10-10 08:15:00 -07:00
Wez Furlong
999e651b17
window: impl Texture2d for SrgbTexture2d
2019-10-07 08:34:54 -07:00
Wez Furlong
2a19850350
add opengl frontend that sits on top of the window code
...
This uses the same plumbing as the software frontend, but tries
to enable opengl.
None of the opengl rendering is plumbed through here yet, so this
is currently functionally identical to the software renderer.
2019-10-07 07:51:49 -07:00
Wez Furlong
378e7b326f
only use simd if the region is wide enough
...
Refs: https://github.com/wez/wezterm/issues/40
2019-10-07 07:41:11 -07:00
Wez Furlong
89a0046f5a
window: A basic opengl capability
2019-10-07 07:17:57 -07:00
Wez Furlong
85311373a5
clippy
2019-10-01 22:20:52 -07:00
Wez Furlong
29095f8560
software: remove a little bit of overhead from draw_image
2019-09-30 08:36:23 -07:00
Wez Furlong
b2212c3105
software: improve alpha blending for draw_line
2019-09-30 08:17:47 -07:00
Wez Furlong
b5e07005b7
software: fix aligment check
2019-09-30 07:52:31 -07:00
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
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
950a7d2b22
cargo fix dyn
2019-09-28 20:29:48 -07:00
Wez Furlong
7e09492606
Add close operation on macos
2019-09-28 17:46:43 -07:00
Wez Furlong
dd1621e693
window: fixup mouse coords on macos hidpi display
2019-09-28 10:29:47 -07:00
Wez Furlong
389c477b16
software: ligatures now render, but scaled emoji need work
2019-09-28 10:06:47 -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
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
ec280a54f8
incomplete but functional key input for software frontend
2019-09-22 10:25:31 -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
0d7d438270
separate Sprite and SpriteSlice impls
2019-09-21 14:25:12 -07:00
Wez Furlong
fb5cbb5827
fixup x11 build for euclid point/rect changes
2019-09-21 13:33:21 -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
Wez Furlong
896586809f
add Rect::bottom_right
2019-09-21 07:31:44 -07:00
Wez Furlong
6d902d8a39
introduce a Rect type
2019-09-21 00:19:31 -07:00