Commit Graph

349 Commits

Author SHA1 Message Date
K. Lange 352bef7882 jpeg: fix bad rounding of image sizes to 8x8 cells 2019-01-02 19:48:02 +09:00
K. Lange 08576160f3 graphics: fix box blur to work with strides 2018-12-26 21:30:11 +09:00
K. Lange b325df2cbc graphics: subregion should inherit clips 2018-12-26 21:29:45 +09:00
K. Lange 92e0203075 esh: parser fix up for single-character variables 2018-12-26 20:20:04 +09:00
K. Lange ae55558935 esh: add $# and fix syntax support 2018-12-26 20:05:22 +09:00
K. Lange 0e76932477 graphics: fix gradient pattern blue channel 2018-12-23 17:15:49 +09:00
K. Lange 536d25567b graphics: actually probably faster without those branches 2018-12-20 21:39:37 +09:00
K. Lange 805c43f059 graphics: fix missing continue in sse alphablit 2018-12-20 21:29:59 +09:00
K. Lange 29b7881d13 jpeg: use sse intrinsincs 2018-12-20 21:07:35 +09:00
K. Lange de26980af2 jpeg: even faster with more premultiplications 2018-12-20 19:01:49 +09:00
K. Lange 245fa0a092 jpeg: further precomputations 2018-12-20 18:54:13 +09:00
K. Lange fab3091cc1 jpeg: use a precalculated cosine table, which is about twice as fast 2018-12-18 19:33:21 +09:00
K. Lange 54e9044161 libc: add more toaru-specific syscall wrappers 2018-12-10 18:47:18 +09:00
K. Lange 0293e83c3b libs: add README describing what each is for 2018-12-07 17:31:25 +09:00
K. Lange 20f3d83e92 yutani: track keyboard modifiers with mouse events 2018-12-07 11:05:21 +09:00
K. Lange dfb176abe5 libc: sin: lerp table lookup 2018-12-06 18:31:18 +09:00
K. Lange bac479e309 jpeg: close file when finished 2018-12-05 20:29:50 +09:00
K. Lange 950c15ccf4 jpeg: try to document what the jpeg decoder does 2018-12-05 20:00:29 +09:00
K. Lange 6f33b2ff97 jpeg: malloc-less implementation 2018-12-05 18:12:11 +09:00
K. Lange 75514b83fd jpeg: that was MIT 2018-12-05 13:05:55 +09:00
K. Lange e2a27ab74c jpeg: don't trace 2018-12-05 13:01:59 +09:00
K. Lange d0d5861e0a jpeg: new jpeg library 2018-12-05 13:00:36 +09:00
K. Lange 1ff5f56225 rline_exp: \r before \n to ensure we scroll 2018-12-03 11:50:52 +09:00
K. Lange 625bdb6f96 terminal: fix some bad cursor visibility 2018-12-03 11:31:16 +09:00
K. Lange 5a6655e442 sdf: fixup alphablending 2018-12-02 22:22:06 +09:00
K. Lange 8f865eeb4a rline_exp: ensure everything is drawn before returning 2018-12-01 21:35:11 +09:00
K. Lange 7259cff253 graphics: none of this is really helping anything 2018-12-01 17:42:49 +09:00
K. Lange 6d8c1f8d7a graphics: bilinear filter needs some serious speed improvement 2018-12-01 17:36:07 +09:00
K. Lange 415655f9ac graphics: fix up some bad alpha blending in certain sprite rendering functions 2018-12-01 17:12:49 +09:00
K. Lange c6dfe69bba decorations: restore the original font size for decorations 2018-11-30 21:50:42 +09:00
K. Lange 6fb381247a graphics: subregions 2018-11-28 20:39:57 +09:00
K. Lange a6a5bc60f5 graphics: vertical gradient pattern in graphics lib 2018-11-24 22:22:55 +09:00
K. Lange 3dc166607d button: allow for disabled buttons 2018-11-24 14:10:49 +09:00
K. Lange e8fad60a10 button: icon buttons should also shift when pressed 2018-11-24 13:22:31 +09:00
K. Lange 8c2ba2641e button: fix rendering issue and support icons buttons 2018-11-24 13:18:57 +09:00
K. Lange ba8a2bf1a9 graphics: try for some optimizations 2018-11-23 15:32:51 +09:00
K. Lange 1473151fa7 button: start working on widget libraries (this should probably be a ttk widget library...) 2018-11-22 10:43:30 +09:00
K. Lange f8791b157e graphics: fix potential bad free of sprite->masks 2018-11-19 21:03:54 +09:00
K. Lange d96bc4f2cb sdf: expose stroke options 2018-11-19 21:03:35 +09:00
K. Lange 77a665c0d5 graphics: new functions; fix premultiply in rounded rectangle 2018-11-19 20:08:49 +09:00
K. Lange 08518780f3 graphics: add rounded rectangle with pattern function 2018-11-18 13:20:26 +09:00
K. Lange d1ff49e70b sdf: add oblique, bold oblique fonts 2018-11-14 17:16:11 +09:00
K. Lange 0f683d32de markup: wip markup parser and rendering 2018-11-12 20:24:42 +09:00
K. Lange 72aaed2eef msk: allow for and properly merge multiple remote manifests 2018-11-12 09:26:30 +09:00
K. Lange 2accf6e314 rline_exp: handle reduced terminal size better 2018-11-06 17:33:50 +09:00
K. Lange 6c88956fa4 job control 2018-10-26 20:34:15 +09:00
K. Lange c76722a4c4 rline_exp: slightly more reasonable shell cmd hl 2018-10-17 12:55:41 +09:00
K. Lange 4d5e977a24 rline_exp: indicate when input field overflows to the left 2018-10-12 17:10:58 +09:00
K. Lange f7eb386d81 decorations: single pixel exposed edges on tiled windows 2018-10-11 09:53:55 +09:00
K. Lange 9703594bf3 decor-fancy: remove the 1-px border around tiled decorations
I want to add some additional hints to the decorator so that
tiled windows can have a border on their exposed side, eg.
a left-tiled window will have a border on the right. Then
the compositor will size them to account for adding that one
pixel border - which is kinda specific to this design, but
I think it'll work out okay. Other decoration themes will
either have to follow suit, or I can have the decorator
advertise how it wants it decoration bounds to work in regards
to a tiled window.
2018-10-11 08:31:28 +09:00
K. Lange d6fe16c406 rline_exp: disable highlighting of space at eol
it just doesn't look good with tab completion adding spaces
2018-10-10 21:36:16 +09:00
K. Lange 994150501a rline_exp: fix bad signs causing crashes with unicode history, tab complete 2018-10-10 11:01:56 +09:00
K. Lange 1870bdbdc2 rline_exp: ^K, ^U, visual indicator for ^V 2018-10-05 22:46:56 +09:00
K. Lange 3721644339 rline_exp: VINTR should raise, use right key 2018-10-05 22:21:10 +09:00
K. Lange 719d27166d Allow compositor to load Cairo backend later at runtime 2018-10-02 18:58:03 +09:00
K. Lange 8ac5ee4fb9 free context passed to rline functions in rline_exp 2018-09-30 18:42:08 +09:00
K. Lange 2cde2456f3 Lazy redraw in rline_exp means pasting in shell is fast 2018-09-29 14:03:57 +09:00
K. Lange f2024aa274 Properly support strides 2018-09-29 01:13:47 +09:00
K. Lange aaa8b4f81e Freetype in decorations 2018-09-24 15:06:42 +09:00
K. Lange 1d53039483 freetype text needs some horizontal padding 2018-09-24 12:29:16 +09:00
K. Lange c77e71a277 Freetype support for menus 2018-09-24 12:22:00 +09:00
K. Lange 24517f53fa make sure right prompt gets drawn when drawing oversized line 2018-09-21 19:12:12 +09:00
K. Lange 0c4bd30242 Experimental slow sprite rotation 2018-09-17 20:35:40 +09:00
K. Lange 05ac83f96a sh syntax backslash escapes [bim+rline_exp] 2018-09-17 16:39:31 +09:00
K. Lange 75c26ed850 As should rline when doing rev search 2018-09-17 13:21:37 +09:00
K. Lange c678b6562d Fix up some libs to work better under linux 2018-09-17 12:58:38 +09:00
K. Lange 8b849a8f4f rline doesn't use _xlog 2018-09-17 12:23:57 +09:00
K. Lange f5bf985dc4 Change partial line indicator to left-facing arrow 2018-09-17 12:21:51 +09:00
K. Lange cc4baaff0d Steal an idea from fish to handle output without a trailing linefeed 2018-09-17 07:01:15 +09:00
K. Lange 06a7ca8cd9 Add anti-aliased line drawer (slow, but effective) 2018-09-15 19:52:25 +09:00
K. Lange 85db6525a8 hacked up support for python syntax highlighting in rline_exp 2018-09-15 17:52:01 +09:00
K. Lange 2b4e787b6f Tweak ansi theme colors for rline_exp 2018-09-14 22:48:06 +09:00
K. Lange f769259cbe Add ^V and tab widths to rline_exp 2018-09-14 20:06:46 +09:00
K. Lange 44cdeaef06 Fix odd history scrolling with oversized lines 2018-09-14 12:39:18 +09:00
K. Lange 1b030089e7 Fix rendering glitch when resizing terminal in rline_exp 2018-09-14 09:28:37 +09:00
K. Lange 6d98aa6494 Fixup heading comments 2018-09-13 18:44:30 +09:00
K. Lange d9dcb94059 Cleanup and document rline_exp 2018-09-13 18:42:19 +09:00
K. Lange a3d55b1b88 Patch in rline_reverse_search for rline_exp 2018-09-13 14:42:42 +09:00
K. Lange b97bc4ff0a Support history in experimental line editor 2018-09-13 14:31:33 +09:00
K. Lange b25aa946e5 Improvements to experimental line editor 2018-09-13 12:54:00 +09:00
K. Lange b7c642c273 Experimental rline replacement with syntax highlighting 2018-09-12 22:50:22 +09:00
K. Lange 21b3fdf242 Fix sse blitting when bounds are weird 2018-09-12 13:38:58 +09:00
K. Lange c161bce0ac Render fullscreen windows without shadow gap 2018-09-12 13:22:34 +09:00
K. Lange 14a63ba154 Advertise fullscreen-ness of windows and collect it automatically as a decorator flag 2018-09-12 13:22:25 +09:00
K. Lange 6e6675dd0a Restructure decorations so bounds can be window-specific (for fullscreen) 2018-09-12 12:53:08 +09:00
K. Lange d5aab96199 Rudimentary (incomplete) alternate screen support 2018-08-28 20:08:58 +09:00
K. Lange 2e50a84bc7 Allow NULL callbacks for rline 2018-08-28 09:28:53 +09:00
K. Lange ead924b110 support home/end from normal escape sequence 2018-08-16 12:01:09 +09:00
K. Lange f97222ff03 Cleanup docs for yutani client lib 2018-08-15 14:50:20 +09:00
K. Lange 8680e66f65 Library copyright/vim tags cleanup 2018-08-15 10:23:41 +09:00
K. Lange 5b5462fb72 Library cleanup 2018-08-14 17:24:25 +09:00
K. Lange 44c8f093f0 draw_rectangle 2018-08-12 20:03:27 +09:00
K. Lange fbfecde4be Allow windows to be dragged by menu bars 2018-08-07 19:18:22 +09:00
K. Lange ae6532607a Add libc wrappers for some syscalls, remove unused syscall.h imports 2018-08-02 13:13:27 +09:00
K. Lange 3f39c0ad61 Remove term-set and support for special terminal font escapes 2018-08-02 11:16:08 +09:00
K. Lange ee03956a86 Fix bad submenu hilight 2018-08-02 04:06:37 +09:00
K. Lange ccf29a98d9 Handle ^[[1,5D from vte, though not well 2018-08-01 09:44:26 +09:00
K. Lange 30e2c8d940 Fix some handling of failed display server connections 2018-08-01 09:20:57 +09:00
K. Lange 03d6199af7 Decorator can handle checking for menus 2018-07-24 09:20:11 +09:00
K. Lange b0a154a07e Fix up submenu hilighting 2018-07-23 19:32:58 +09:00
K. Lange 5f7b7c9f38 Render windows as focused when they have menus, like we used to in python 2018-07-22 01:24:22 +09:00
K. Lange 1686884fb5 rounded rectangle colors were in wrong order 2018-07-21 23:42:21 +09:00
K. Lange 62cc35da3f Make sure to use alpha from color in sdf text 2018-07-21 23:03:21 +09:00
K. Lange 5ae01e206d Fix premultiplying on rounded rectangles 2018-07-21 23:00:26 +09:00
K. Lange b26104c156 Keyboard interaction between menubar entries 2018-07-21 18:32:00 +09:00
K. Lange 0e45293ced Merge menubar into menu 2018-07-21 17:56:10 +09:00
K. Lange 255b750b62 Add method to update menu entry title 2018-07-20 23:08:12 +09:00
K. Lange 1830bd63ac escape should close all menus 2018-07-20 22:37:31 +09:00
K. Lange 9efc3c1bf3 Quickly switch focus back to previous menu on keyboard action 2018-07-20 22:32:06 +09:00
K. Lange 95ad690212 Minor keyboard menu control adjustment 2018-07-20 22:24:05 +09:00
K. Lange 43829e163a Add initial keyboard support for menus 2018-07-20 22:15:46 +09:00
K. Lange 7cd46127a9 Add imperfect, but sufficient, rounded rectangle routine 2018-07-20 21:26:01 +09:00
K. Lange 89d107374c provide dlfcn in libc 2018-07-19 19:04:17 +09:00
K. Lange 416ae2d1a3 Move internal yutani stuff to a separate header 2018-06-23 18:51:48 +09:00
K. Lange 1381116048 Add submenu tick 2018-06-20 11:17:27 +09:00
K. Lange cba3b2e804 Fix arbitrary submenus and add 'Set Zoom...' to terminal 2018-06-18 22:04:08 +09:00
K. Lange 5ae86c9213 incomplete textregion library 2018-06-09 17:32:24 +09:00
K. Lange 3c0a8c8e1d minor tweaks 2018-06-09 16:42:41 +09:00
K. Lange 52e395427e Change background color of fallback decoration theme 2018-06-09 16:40:11 +09:00
K. Lange 74e4ee5f56 Add basic numpad support 2018-06-08 15:11:41 +09:00
K. Lange f710c872b8 make menu bar less picky about clicks 2018-05-22 18:42:05 +09:00
K. Lange 49850c0067 Try not to put menus off screen 2018-05-21 19:52:00 +09:00
K. Lange d6afa06c80 Menu bar in a separate library 2018-05-20 16:47:35 +09:00
K. Lange 8442d4494c Expose more methods from menu library 2018-05-20 12:37:22 +09:00
K. Lange eacdd97287 Handle nested menus extending past display width 2018-05-20 11:22:15 +09:00
K. Lange 50b21b080d Cleanup and fixes 2018-05-19 19:43:00 +09:00
K. Lange 910973bec7 *experimental* nested menus support 2018-05-19 19:05:27 +09:00
K. Lange 16200d76f1 Allow apps to opt out of a maximize button 2018-05-19 16:05:17 +09:00
K. Lange 4ff96e4bdf Store large clipboard selections in a file 2018-05-15 14:54:22 +09:00
K. Lange ee1aeb89b2 Clipboard in compositor 2018-05-15 14:39:07 +09:00
K. Lange d03c02e6ae Bound SDF text rendering properly 2018-05-11 22:59:12 +09:00
K. Lange ffa4bd7360 Add login, sudo, user session, auth lib, etc. 2018-05-10 22:33:32 +09:00
K. Lange b6d6d8900e include pthread in libc 2018-05-09 21:26:45 +09:00
K. Lange da909e4f79 Add confreader library 2018-05-08 23:04:49 +09:00
K. Lange 8ccbcb001c Allow switching rendering mode in terminal on the fly 2018-05-08 17:16:58 +09:00
K. Lange 4c873f9fde Remove traces from sdf 2018-05-08 17:05:57 +09:00
K. Lange d67021d7b8 Store SDF fonts in shared memory regions 2018-05-08 17:03:13 +09:00
K. Lange 4818a8cc43 Add more monospace font options and support 8-bit grayscale bitmaps 2018-05-08 15:41:12 +09:00
K. Lange db4337f17b Improvements to SDF impl., and support in terminal 2018-05-08 11:27:44 +09:00
K. Lange 4beac973ef Store kerning overrides for SDF fonts in a config file 2018-05-07 17:49:06 +09:00
K. Lange 5cf95b4fc0 Fix alpha handling resulting in no images with 24-bit bmp 2018-05-04 13:16:22 +09:00
K. Lange 557f578574 Don't use my given name in copyright headers; update everything to 2018 because why not 2018-05-01 17:12:56 +09:00
K. Lange 037f055549 Send WINDOW_CLOSE instead of SESSION_END on Alt+F4 and handle that as a close signal 2018-04-27 22:38:36 +09:00
K. Lange 8516e44a20 Remove debug prints from decorations 2018-04-27 22:25:05 +09:00
K. Lange f8d2b8d3a3 Experimental decorator menu stuff 2018-04-27 22:14:08 +09:00
K. Lange 5129394b07 Handle more stuff automatically in yutani 2018-04-27 22:13:42 +09:00
K. Lange 0e65e6559c Menu library improvements 2018-04-27 21:30:51 +09:00
K. Lange b1c86b448d Automatically track window movement in the client 2018-04-27 21:30:21 +09:00
K. Lange 4ac2f3d4a2 Fix separators crashing on click because they had no activate method 2018-04-25 21:44:17 +09:00
K. Lange 5004ea8c5d Fix icon cache using wrong data for 48x48 icons 2018-04-25 19:51:50 +09:00
K. Lange 0037a2e84a Remove unused header 2018-04-25 17:42:14 +09:00
K. Lange 95542acded Remove the old API and don't make the new one static inline 2018-04-25 17:41:30 +09:00
K. Lange 0c4b4e3344 Have yutani messages built on the stack instead of malloc/free 2018-04-25 17:30:28 +09:00
K. Lange 8e07883088 Enable and resolve several warnings 2018-04-25 14:03:29 +09:00
K. Lange 2de4d9bae2 Menu windows shouldn't zoom in, only fade 2018-04-24 21:41:19 +09:00
K. Lange 216239f601 Adapt menu library into panel 2018-04-24 21:32:39 +09:00
K. Lange 86134cca5d At least attempt to handle focus loss 2018-04-24 21:19:06 +09:00
K. Lange 34d1a58be7 Menus as a library (WIP) 2018-04-24 20:58:41 +09:00
K. Lange e1d67ec921 new graphics method interp_colors 2018-04-24 20:27:15 +09:00
K. Lange a7cd9eb54b Icon cache library 2018-04-24 20:25:42 +09:00
K. Lange 5dd763780a Unify list, tree, hashmap implementations with userspace/kernel 2018-04-24 19:28:50 +09:00
K. Lange 3552b72cdc Remove guassian blur (third-party code) 2018-04-21 21:50:59 +09:00
K. Lange 0b2b0dc299 Kerning adjustments 2018-04-21 20:55:19 +09:00
K. Lange 07fd0519dd Add text back to the simple decoration theme using SDF 2018-04-21 20:15:30 +09:00
K. Lange 96e3db9089 Lock on creating caches so we work better across threads 2018-04-21 20:14:11 +09:00
K. Lange 556ff8e343 Add maximize as an action
- Remove the deprecated timer request API.
- Add a new "Special Request" API for things like "maximize" / "minimize"
  etc. that takes an optional window ID. Expects no response, useful for
  one-off triggers like this.
- Add maximize button to fancy decoration theme and general support in
  decoration library.
2018-04-21 19:24:55 +09:00
K. Lange f9196a3181 Cache scaled SDF mipmaps for faster rendering 2018-04-21 17:24:55 +09:00
K. Lange 629a4f373f text passed to sdf should be const 2018-04-21 16:28:57 +09:00
K. Lange 64f2fa083e Why are we not premultiplying our ARGB bitmaps... 2018-04-21 16:28:38 +09:00
K. Lange 58e0184bb2 I should stop individually comitting these 2018-04-18 18:35:56 +09:00
K. Lange 04901894ae better kerning on '.' 2018-04-18 18:17:28 +09:00
K. Lange 091f35f2e2 More text adjustment 2018-04-18 18:14:28 +09:00
K. Lange 2b4b4a771b More kerning adjustments 2018-04-18 18:09:44 +09:00
K. Lange 5aead12a89 Support multiple fonts 2018-04-18 18:05:19 +09:00
K. Lange 93b57bea2c More kerning adjustments 2018-04-18 15:19:34 +09:00
K. Lange d362110648 Avoid awkward clipping by always overrunning a bit 2018-04-18 15:17:36 +09:00
K. Lange 636a3b1693 Fix up some kerning, use this in the panel 2018-04-18 15:15:11 +09:00
K. Lange a8ddac6ff2 use SDF in decorations 2018-04-18 14:53:04 +09:00
K. Lange 2b3c21be22 lib improvements 2018-04-18 14:36:28 +09:00
K. Lange 4ebeee76db wip sdf font renderer 2018-04-18 13:27:37 +09:00
K. Lange 592541ef7f Decoration themes should be no different from other libraries 2018-04-17 22:39:39 +09:00
K. Lange 7561589610 Port old (C) panel 2018-04-17 20:03:19 +09:00
K. Lange 4458dede7f fix fencepost in clipping 2018-04-17 19:01:51 +09:00
K. Lange 6b4f25a38e Fixup graphics clipping with bad bounds 2018-04-17 18:52:57 +09:00
K. Lange 9335951644 super silly clip implementation 2018-03-29 22:43:38 +09:00
K. Lange 9f6c409d2d First SSE2-accelerated alpha blit 2018-03-29 21:34:08 +09:00
K. Lange 1355502e6c Reorganize headers 2018-03-19 11:38:11 +09:00
K. Lange 2405387ad9 Relocate dlfcn.h 2018-03-17 17:57:04 +09:00
K. Lange d56c9801ab More efficient screen blitting 2018-03-17 13:04:02 +09:00
K. Lange 690a47836a Fix kernel-used includes and libraries 2018-03-16 18:27:01 +09:00
K. Lange 7c6cd9c531 Add VGA terminal 2018-03-04 22:50:53 +09:00
K. Lange adb38a1a8a extern all the things 2018-03-01 23:15:37 +09:00
K. Lange 476fbb5ad1 Draw more text 2018-03-01 15:10:57 +09:00
K. Lange 6af9cff0ff fixup clips 2018-03-01 12:53:18 +09:00
K. Lange 0cbfde23da naïve row-based clipping 2018-03-01 12:34:58 +09:00
K. Lange 06997fe709 Fix incorrect color ordering on 32-bit argb bitmap 2018-02-25 21:51:52 +09:00
K. Lange 877a123088 add tree, not used yet 2018-02-25 18:25:05 +09:00
K. Lange 8cd1bd4b8a just gobs of stuff 2018-02-25 17:14:43 +09:00
K. Lange a1f60853ed init 2018-02-25 14:13:54 +09:00