Commit Graph

  • 0801786d51 Cache text shaping results per row Mitchell Hashimoto 2022-09-12 12:01:26 -07:00
  • b694afa425 update TODO Mitchell Hashimoto 2022-09-12 11:39:20 -07:00
  • 662b656218 implement LRU row GPU cell caching Mitchell Hashimoto 2022-09-12 11:24:34 -07:00
  • 3e27120e8c lru resize Mitchell Hashimoto 2022-09-12 11:01:22 -07:00
  • 4f6c67fe9d add LRU Mitchell Hashimoto 2022-09-12 10:21:18 -07:00
  • 8995e74e23 rows are dirty when initialized Mitchell Hashimoto 2022-09-10 11:01:40 -07:00
  • 08b7a866b6 Screen dirty tracking Mitchell Hashimoto 2022-09-10 10:59:57 -07:00
  • d7d372124b update to stage3 zig with -fstage1 Mitchell Hashimoto 2022-09-08 13:31:18 -07:00
  • 97aef76501 avoid large shaper buffer allocation on every frame Mitchell Hashimoto 2022-09-07 20:27:36 -07:00
  • 98dff5a163 better handling of combination characters Mitchell Hashimoto 2022-09-07 20:10:06 -07:00
  • d42c99b6be Merge pull request #12 from mitchellh/ligs Mitchell Hashimoto 2022-09-07 16:18:58 -07:00
  • 8d90292cb2 remove font conversion stuff Mitchell Hashimoto 2022-09-07 16:17:41 -07:00
  • d951e40553 update TODO Mitchell Hashimoto 2022-09-07 16:15:38 -07:00
  • 54d47e8390 update TODO Mitchell Hashimoto 2022-09-07 16:10:27 -07:00
  • 278d9ad9d6 add tracing Mitchell Hashimoto 2022-09-07 16:10:16 -07:00
  • 90e4d12f79 only scale fonts to height Mitchell Hashimoto 2022-09-07 15:59:23 -07:00
  • c1bb6450b0 fix some emoji sizing Mitchell Hashimoto 2022-09-07 14:41:37 -07:00
  • 85dff335f1 much more accurate run splits and cell widths in runs Mitchell Hashimoto 2022-09-07 10:30:40 -07:00
  • 3f1942223b only test presentation VS15/16 if directly adjacent to codepoint Mitchell Hashimoto 2022-09-06 14:26:43 -07:00
  • da7843e8b4 test shaping a long emoji Mitchell Hashimoto 2022-09-06 14:25:29 -07:00
  • 3754de3b95 test very long emoji Mitchell Hashimoto 2022-09-06 14:21:07 -07:00
  • f40eb3663a kind of handle VS15/16 better, its not blank anymore, but its wrong Mitchell Hashimoto 2022-09-06 13:56:20 -07:00
  • e326bc4921 fonts are presentation format aware (text vs emoji) Mitchell Hashimoto 2022-09-06 13:30:29 -07:00
  • 302889bfb3 font don't include convert Mitchell Hashimoto 2022-09-05 22:53:29 -07:00
  • 0d2c03c21c Font face handles zero-width glyphs (weird but happens) Mitchell Hashimoto 2022-09-05 22:53:00 -07:00
  • 90d250a3ba Rebase Mitchell Hashimoto 2022-09-05 11:41:40 -07:00
  • 480d262bc1 Calculate grid_width properly, use that instead of wide mask in shader Mitchell Hashimoto 2022-08-30 10:06:26 -07:00
  • 3231b84927 Ligatures Mitchell Hashimoto 2022-08-29 21:51:33 -07:00
  • d839257c04 Merge pull request #11 from mitchellh/graphemes Mitchell Hashimoto 2022-09-05 11:36:38 -07:00
  • 9e8d00f140 attach zero-width joiners to cells Mitchell Hashimoto 2022-09-05 11:32:14 -07:00
  • 8ef31aaaf9 Disable Mitchell Hashimoto 2022-09-05 11:22:29 -07:00
  • 802f230fa2 handle graphemes with more than 1 joiner Mitchell Hashimoto 2022-09-05 10:35:22 -07:00
  • 47242ad12a test writing graphemes Mitchell Hashimoto 2022-09-05 10:29:52 -07:00
  • 7ceff79ea9 various methods on Row are grapheme-aware and tested Mitchell Hashimoto 2022-09-05 09:47:35 -07:00
  • b3ec7028fb detect and attach grapheme to grapheme data Mitchell Hashimoto 2022-09-04 21:57:07 -07:00
  • a605ff07e1 setup flags, storage for graphemes Mitchell Hashimoto 2022-09-04 11:17:41 -07:00
  • eb0913d1b4 update TODO Mitchell Hashimoto 2022-09-04 09:47:49 -07:00
  • e6564dfd11 fix some resize crashes Mitchell Hashimoto 2022-09-04 09:43:20 -07:00
  • f417659368 on resize, if rows increasing, handle that first Mitchell Hashimoto 2022-09-03 22:33:20 -07:00
  • ac9f9b29d6 bump render to 144hz, slowest 120hz Mitchell Hashimoto 2022-09-03 22:17:25 -07:00
  • 1d5edb25b5 New Screen Storage Mitchell Hashimoto 2022-09-03 21:50:24 -07:00
  • f3f60e47d1 clearHistory Mitchell Hashimoto 2022-09-03 21:40:03 -07:00
  • 6373900dfa comment on screen struct Mitchell Hashimoto 2022-09-03 21:35:43 -07:00
  • c0e36bedd6 remove dirty for now Mitchell Hashimoto 2022-09-03 21:26:49 -07:00
  • 3d0ec16ad4 resize with shrinking cols Mitchell Hashimoto 2022-09-03 21:25:06 -07:00
  • 7134ddec4e resize less rows Mitchell Hashimoto 2022-09-03 17:59:24 -07:00
  • 1121438d8a maybe clean up resize more cols Mitchell Hashimoto 2022-09-03 17:50:04 -07:00
  • d6e243cde1 resize with reflow more cols Mitchell Hashimoto 2022-09-03 17:28:26 -07:00
  • 2583b8cb65 fix y pos on resize Mitchell Hashimoto 2022-09-03 12:25:26 -07:00
  • 41f2b756ae fix scrolling and new row calculation Mitchell Hashimoto 2022-09-03 12:18:45 -07:00
  • d22a323896 clean up some assertions Mitchell Hashimoto 2022-09-01 23:25:21 -07:00
  • 81b805b8c2 use an arena allocator for tty allocs Mitchell Hashimoto 2022-09-01 22:48:33 -07:00
  • 8d6e8eb0aa asserts not being optimized away, use comptime gate Mitchell Hashimoto 2022-09-01 22:21:54 -07:00
  • 57725cf3a4 cache row iterator max value Mitchell Hashimoto 2022-09-01 22:05:42 -07:00
  • 5aa6d79519 screen: cache history offset Mitchell Hashimoto 2022-09-01 21:36:59 -07:00
  • 73581eee0b small optimizations Mitchell Hashimoto 2022-09-01 18:36:27 -07:00
  • 30a14d230e process ASCII events manually to avoid function call overhead Mitchell Hashimoto 2022-09-01 17:53:40 -07:00
  • d404be2993 grow our scrollback much faster Mitchell Hashimoto 2022-09-01 01:15:20 -07:00
  • dba027d307 resize should maintain minimum of screen rows Mitchell Hashimoto 2022-09-01 01:09:06 -07:00
  • 77c8ec0a20 the big screen switchover Mitchell Hashimoto 2022-09-01 00:58:47 -07:00
  • 2f2b12a32f resize without reflow preserves cursor better Mitchell Hashimoto 2022-08-31 21:51:01 -07:00
  • 89e931e468 our new resize without reflow supports scrollback so test that Mitchell Hashimoto 2022-08-31 21:29:28 -07:00
  • 4056f2abf9 new screen supports resize without reflow Mitchell Hashimoto 2022-08-31 20:48:48 -07:00
  • 621b067e83 update overlay but we still can't use master Mitchell Hashimoto 2022-08-31 19:58:44 -07:00
  • cf969b27eb screen2: dynamically allow scrollback when its needed Mitchell Hashimoto 2022-08-31 19:54:10 -07:00
  • a192249c77 circbuf rotateToZero does nothing if its already at zero Mitchell Hashimoto 2022-08-31 19:33:28 -07:00
  • 50612002a8 circbuf resize operation Mitchell Hashimoto 2022-08-31 17:17:43 -07:00
  • b7b83db119 fix some circbuf bugs (add tests) and add rotation Mitchell Hashimoto 2022-08-31 17:08:02 -07:00
  • cb06bf4873 use non-extern unions so we get safety checks Mitchell Hashimoto 2022-08-31 16:01:16 -07:00
  • 10ec5f509e circbuf doesn't use zeroes, it takes a default value Mitchell Hashimoto 2022-08-31 15:27:45 -07:00
  • e8009f89cf add cursor to new screen Mitchell Hashimoto 2022-08-31 15:13:30 -07:00
  • c7b7e3cb44 screen2: selection Mitchell Hashimoto 2022-08-31 14:58:43 -07:00
  • f6f8fee804 screen2: scrolling (to a certain extent), copying in tests Mitchell Hashimoto 2022-08-31 11:44:39 -07:00
  • 001ec979a2 big API surface for screen2, can test write/read now Mitchell Hashimoto 2022-08-30 17:33:25 -07:00
  • 19b46b6084 starting the new screen implementation Mitchell Hashimoto 2022-08-30 16:39:49 -07:00
  • f2af0983cf dedicated circular buffer Mitchell Hashimoto 2022-08-30 16:35:44 -07:00
  • 953f1aeb29 pkg/harfbuzz: fixing some APIs Mitchell Hashimoto 2022-08-30 10:02:40 -07:00
  • 36140d3ee9 TODO Mitchell Hashimoto 2022-08-29 20:26:02 -07:00
  • 39376feae0 font: shape API, calls shape and outputs some debug Mitchell Hashimoto 2022-08-29 20:15:29 -07:00
  • 5a232e0c3e utf8proc: add grapheme break API Mitchell Hashimoto 2022-08-29 20:13:13 -07:00
  • dafc99746d font: Face initializes a hb_font alongside every face Mitchell Hashimoto 2022-08-29 16:46:53 -07:00
  • 0505018186 Line segmentation into text runs Mitchell Hashimoto 2022-08-29 16:39:48 -07:00
  • f73783a521 pkg/harfbuzz: add guessSegmentProperties Mitchell Hashimoto 2022-08-29 14:52:16 -07:00
  • 2cab94e64d move cell metrics calculation out into src/font Mitchell Hashimoto 2022-08-29 11:44:05 -07:00
  • bd9c048c02 use new font.GroupCache, remove unused font structs Mitchell Hashimoto 2022-08-29 11:34:21 -07:00
  • a0aa100815 font: GroupCache is like Group, but with caching... Mitchell Hashimoto 2022-08-29 11:10:50 -07:00
  • a75035c042 font: introduce Group which will eventually replace FallbackSet Mitchell Hashimoto 2022-08-29 10:16:53 -07:00
  • 985b329c8a src/font: change Face to require font to init Mitchell Hashimoto 2022-08-29 08:48:40 -07:00
  • f1abca51f7 convert src/font to use new pkg/freetype Mitchell Hashimoto 2022-08-28 22:22:16 -07:00
  • 28e9619361 allow non-printables even if modifiers are pressed Mitchell Hashimoto 2022-08-28 21:12:58 -07:00
  • 672f6e720c pkg/freetype: finish APIs we need Mitchell Hashimoto 2022-08-28 21:06:36 -07:00
  • 8ef3018189 pkg/freetype: loading glyphs Mitchell Hashimoto 2022-08-28 21:02:39 -07:00
  • a2b06d7705 pkg/freetype: more face APIs Mitchell Hashimoto 2022-08-28 17:18:23 -07:00
  • 7af9091497 pkg/freetype: Library and Face Mitchell Hashimoto 2022-08-28 17:07:27 -07:00
  • 483bb90cf9 shader: only downsample glyph if its bigger than width plus padding Mitchell Hashimoto 2022-08-28 16:57:30 -07:00
  • d8a06e7768 clean up some imports Mitchell Hashimoto 2022-08-28 14:50:22 -07:00
  • f42bac6bc4 pkg/harfbuzz: use extern funcs for freetype interop Mitchell Hashimoto 2022-08-28 14:47:47 -07:00
  • c377e19bd0 pkg/harfbuzz: shape Mitchell Hashimoto 2022-08-28 12:11:26 -07:00
  • 1f2d2e926c pkg/harfbuzz: buffer get glyph positions and info Mitchell Hashimoto 2022-08-28 12:05:00 -07:00
  • 0b4344693a pkg/harfbuzz: buffer set direction, script, and language Mitchell Hashimoto 2022-08-28 11:54:38 -07:00