4919 Commits

Author SHA1 Message Date
K. Lange
b4dd0797c8 Demonstration of 'glass window' effect
This branch demonstrates a possible implementation of a
blurred window effect without making major changes to the
underlying rendering mechanism of the compositor.

By exploiting the graphics engine's use of scanline-based
clipping, we can reliably perform horizontal blurs on the
existing backbuffer when rendering each frame, before we
render the "blurry" window.

This approach is missing several things:
 - Ideally, another mask channel is needed to specify which
   parts of the window should be blurred, rather than trying
   to co-opt the window shape derived from the alpha channel.
 - The blur amount should vary based on the alpha transparency
   of the window object, especially during transitions. It is
   unclear how to do this well alongside transformations.
 - The horizontal-only blur is visually lacking, and ideally
   we would want a full box blur for the best effect, but
   no feasible approach to this with our rendering model has
   been deduced to this point.

If more research is to be done in this area, redesigning the
rendering approach may be the next step.

There are a few other approaches that could be used:
 - We could restrict the renderer to one (or two...) blurred
   windows - particularly, the focused window at the top of
   the main display stack. This would allow us to keep a
   secondary backbuffer with only the lower windows at each
   render stage, which could always be sourced for the blur.
   If we do this twice, once for the top main window and once
   for the panel level, we could produce solid effects, but
   it requires shoveling a lot of extra pixel data around.
 - We could try to cheat the clipping and redraw a bit extra
   around blurred windows, but this gets complicated...

Ultimately, a GPU-accelerated pixel shader implementation that
can operate on the full scene with each frame is likely the
only way that an acceptable blur effect can be achieved.
2021-07-28 17:53:31 +09:00
K. Lange
3c20f010b9 text: spot fix for clipped text shadows 2021-07-27 12:59:33 +09:00
K. Lange
b293e989de markup: Initial work on new marked up text rendering library 2021-07-27 10:53:12 +09:00
K. Lange
d81da78dc0 markup: fix bad malloc 2021-07-27 09:53:06 +09:00
K. Lange
93031098f7 about: accept resize messages 2021-07-27 07:30:54 +09:00
K. Lange
558ec0993e panel: slide the panel up faster on ctrl-f11 2021-07-26 21:05:27 +09:00
K. Lange
a96c7b3f2b panel: cleanup and fix display of window items 2021-07-26 20:55:17 +09:00
K. Lange
fe456850d8 panel: Dynamically size the date widget 2021-07-26 20:24:41 +09:00
K. Lange
37f98c787f panel: improve design of calendar popup 2021-07-26 19:42:56 +09:00
K. Lange
7e06ca8889 dhclient: Try a few times... 2021-07-26 14:39:12 +09:00
K. Lange
817b92837a weather-tool: Handle bad location-data by trying to get it again 2021-07-26 14:29:15 +09:00
K. Lange
65529edfb4 weather-tool: Use lat/lon when querying by guessed location 2021-07-25 21:03:10 +09:00
K. Lange
decf3517c6 panel: try some smarter popup placement 2021-07-25 20:38:33 +09:00
K. Lange
14027e83dc weather-tool: Use a geoip service to get location
Since OpenWeather doesn't provide this with their API,
we query ip-api.com, which has a free geoip location service
and we can even restrict the data pulled in from it so we're
not storing more sensitive data than just a city. Seems to
work okay in Japan, but I'll try it from other locations...
2021-07-25 18:06:59 +09:00
K. Lange
fd7f8f103b weather-tool: remove unused legacy conf file 2021-07-25 17:48:35 +09:00
K. Lange
93aaa045ed kuroko: sync with upstream 2021-07-23 07:28:00 +09:00
K. Lange
8080400b22 kuroko: bind text library in _yutani module 2021-07-22 20:43:01 +09:00
K. Lange
ed73227536 text: Replace bitmap font with a baked version of Deja Vu Sans Mono, mostly for metrics reasons 2021-07-22 17:18:08 +09:00
K. Lange
22a6c0ca3a text: Add some macros so we can more easily swap out the bitmap font 2021-07-22 17:06:43 +09:00
K. Lange
17473a289f splash-log: reset display on resolution change 2021-07-21 05:48:32 +09:00
K. Lange
5636d6e045 text: offset horizontal scanlines slightly to not bleed bottoms of glyphs into next pixel 2021-07-20 09:32:06 +09:00
K. Lange
f57679e0b4 v1.99.3 v1.99.3 2021-07-19 20:10:12 +09:00
K. Lange
6b308e5fc1 i965: Send mode change signal? 2021-07-19 19:50:41 +09:00
K. Lange
a100df9679 splash-log: handle display mode change 2021-07-19 19:43:57 +09:00
K. Lange
670978932c text: read fonts with short glyf table offsets 2021-07-19 18:38:19 +09:00
K. Lange
d824a97fea tutorial: remove reference to old irc network 2021-07-19 14:55:10 +09:00
K. Lange
f087b63431 panel: And improve the popup while we're at it 2021-07-19 14:43:02 +09:00
K. Lange
be1976964d panel: And make more room for long month names 2021-07-19 14:18:33 +09:00
K. Lange
8999c066cb panel: Use full month name in date widget 2021-07-19 14:12:57 +09:00
K. Lange
5798aaa056 menu: space out menu bars nicer 2021-07-19 13:49:30 +09:00
K. Lange
0b83e2b6d8 compositor: stop dragging windows on esc 2021-07-19 11:42:01 +09:00
K. Lange
d406a6948f modules: track loaded sizes so we can free modules later 2021-07-19 10:28:26 +09:00
K. Lange
ae7cdb00c2 vmware: detect vmware by its PCI Express chipset 2021-07-18 06:20:36 +09:00
K. Lange
9ad39394e4 modules: list modules in /proc/modules 2021-07-17 20:18:02 +09:00
K. Lange
236c8bacb3 modules: Reimplement loadable kernel modules 2021-07-17 18:55:54 +09:00
K. Lange
b5d33500a6 text: fix overly trusting bounds calculation 2021-07-16 19:51:23 +09:00
K. Lange
a7d3c93bdf file-browser: fix inner radius of focused text input box 2021-07-16 11:33:27 +09:00
K. Lange
4a2fa62b6a terminal: fix text width for DejaVu Sans Mono 2021-07-16 11:33:11 +09:00
K. Lange
a5e20d7e14 kuroko: pull in version number update 2021-07-15 10:11:31 +09:00
K. Lange
848d156622 imgviewer: include filename in window title 2021-07-15 09:41:06 +09:00
K. Lange
357fd05273 font-preview: Include font name in window title 2021-07-15 09:37:04 +09:00
K Lange
f47284ce7e text: support type 4 cmaps, old Microsoft fonts 2021-07-14 21:46:40 +09:00
K. Lange
e154c0d5a1 file-browser: add a few more keyboard shortcuts 2021-07-14 20:28:21 +09:00
K. Lange
6a7dee791b file-browser: realign and blink the cursor in the input box 2021-07-14 20:04:29 +09:00
K. Lange
a0938b51fd base: minor cleanup of /usr/share 2021-07-14 19:26:29 +09:00
K. Lange
4b849fd884 lspci: Add more device descriptions from my ThinkPad 2021-07-14 19:11:43 +09:00
K. Lange
3176b6147d graphics: Match nearest-neighbor signature to bilinear for easier swapping 2021-07-14 10:57:12 +09:00
K. Lange
fa969a7f0a graphics: short-circuit out of bounds lookups in bilinear interpolator 2021-07-14 10:50:44 +09:00
K. Lange
8e4640e1d7 xhci: start on controller driver 2021-07-14 10:44:46 +09:00
K Lange
1f5e3bb8be graphics: improved bilinear interpolator 2021-07-14 09:59:31 +09:00