9140 Commits

Author SHA1 Message Date
Mitchell Hashimoto
bc3762e85b update zig to latest, fix todos 2022-10-23 10:54:39 -07:00
Mitchell Hashimoto
79f69885ca update to latest zig which renames @min/@max 2022-10-19 10:42:31 -07:00
Mitchell Hashimoto
366ea2ff4c cell under cursor always remains visible by inverting fg colors 2022-10-18 15:28:31 -07:00
Mitchell Hashimoto
fa0028f104 coretext: rasterize glyph with a padding to prevent artifacting 2022-10-18 14:57:44 -07:00
Mitchell Hashimoto
c00c8f52b5 coretext: render glyph on its own bounding box, calculate bearings 2022-10-18 14:49:23 -07:00
Mitchell Hashimoto
38e0c258d0 coretext: we do want to smooth and anti-alias glyphs 2022-10-18 12:56:02 -07:00
Mitchell Hashimoto
4669032e56 face: coretext zero the bitmap before render 2022-10-18 12:52:37 -07:00
Mitchell Hashimoto
58c107dceb freetype: resize glyphs that are too tall prior to storing in texture
Most emoji fonts are massive glyphs (128x128, 256x256, etc.). This means
the texture we need to store emoji is also massive. For a 128x128 emoji
font (both Apple and Noto), we can only store 12 emoji before resizing
prior to this commit.

This commit now threads through a max height through to the font face
and resizes the bitmap in memory before putting it in the atlas. This
results in significant savings. The max height is the cell height. We
allow the glyphs to be as wide as necessary due to double (and more)
wide glyphs.

For the unicode emoji test file, the atlas size before and after:

  Before: 262 MB
  After: 16 MB
2022-10-17 19:14:30 -07:00
Mitchell Hashimoto
c103a278f1 render font info in dev mode 2022-10-17 14:47:51 -07:00
Mitchell Hashimoto
7cb3f2267f use our built-in font for dev mode 2022-10-17 11:56:46 -07:00
Mitchell Hashimoto
20f1077e86 enable freetype with imgui 2022-10-17 11:41:46 -07:00
Mitchell Hashimoto
ab721b5b26 disable inputs when they're captured by dev mode 2022-10-17 11:19:35 -07:00
Mitchell Hashimoto
15a57983a6 pkg/freetype: remove unused API 2022-10-16 21:03:17 -07:00
Mitchell Hashimoto
a39fe6baed Use scalable check rather than fixed size check for setting char size 2022-10-16 20:55:06 -07:00
Mitchell Hashimoto
2e1bc7bb01 Bring back freetype font bitmap conversion
Monaco on Mac is mono
2022-10-16 20:47:21 -07:00
Mitchell Hashimoto
9d37458ed8 update zig 2022-10-16 19:47:43 -07:00
Mitchell Hashimoto
f29393bca6 Imgui (#20)
* vendor/cimgui

* Add a "dev mode" window which for now is just imgui demo
2022-10-16 16:20:08 -07:00
Mitchell Hashimoto
ddfb1dec4b Switch to stage2 primarily for builds 2022-10-15 15:00:41 -07:00
Mitchell Hashimoto
5b6eb2736a pkg/libpng: name the lib png, so its not "liblibpng" 2022-10-15 14:55:11 -07:00
Mitchell Hashimoto
53d00ee8a2 update zig which fixes test on wide terminals 2022-10-15 14:36:15 -07:00
Mitchell Hashimoto
2d10ac0a77 opengl: setting buffer data with array must get proper pointer
This finally gets the terminal compiling with the self-hosted Zig
compiler! Wow! And this was one of those things that... should've never
worked.
2022-10-15 11:29:25 -07:00
Mitchell Hashimoto
c681a197d2 use old version of mach 2022-10-15 10:56:23 -07:00
Mitchell Hashimoto
846c9db0c3 get rid of stage2 workaround for now 2022-10-15 10:43:39 -07:00
Mitchell Hashimoto
56c9979db5 run tests against both stage1 and stage2 2022-10-14 10:05:13 -07:00
Mitchell Hashimoto
33f51f1f3d update zig 2022-10-14 10:04:26 -07:00
Mitchell Hashimoto
6c84199b84 fix more stage2 build errors 2022-10-14 10:01:41 -07:00
Mitchell Hashimoto
83c9390ac9 pkg/libuv: workaround stage2 issue 2022-10-14 09:57:52 -07:00
Mitchell Hashimoto
a1087af7c8 Workaround stage2 compile issue with issue link 2022-10-14 09:56:53 -07:00
Mitchell Hashimoto
e324e38352 workaround stage2 translate-c issue with link to issue 2022-10-14 09:53:23 -07:00
Mitchell Hashimoto
b28b04d710 pkg/libuv: fix stage2 compilation issues 2022-10-14 09:44:22 -07:00
Mitchell Hashimoto
2d3febac0e fix invalid ptrcast 2022-10-14 09:19:58 -07:00
Mitchell Hashimoto
c99fb89738 new opengl function calls for stage2 2022-10-14 09:18:33 -07:00
Mitchell Hashimoto
e73db24f0e move shaders into src/ tree for stage2 2022-10-14 09:18:20 -07:00
Mitchell Hashimoto
8decfa6452 I think this gets us on master zig... 2022-10-13 11:31:02 -07:00
Mitchell Hashimoto
225de43062 update mach to fix stage2 issue 2022-10-13 11:06:43 -07:00
Mitchell Hashimoto
699da6fcfe update mach 2022-10-13 11:03:23 -07:00
Mitchell Hashimoto
e493a722a3 fix some issues that fail nightly stage2 compiler 2022-10-13 10:54:30 -07:00
Mitchell Hashimoto
a6c3ee3bc2 pkg/macos: fix zig C ABI issue 2022-10-10 09:18:57 -07:00
Mitchell Hashimoto
1e23779337 pkg/macos: more stuff 2022-10-10 09:03:03 -07:00
Mitchell Hashimoto
c75e54fca0 update to API 2022-10-09 16:30:26 -07:00
Mitchell Hashimoto
1cf390729e pkg/macos: bitmap info arg 2022-10-09 16:29:19 -07:00
Mitchell Hashimoto
276ae4f788 font: fix some coretext rendering issues 2022-10-09 11:45:02 -07:00
Mitchell Hashimoto
9c99a49ac5 font: deferred face can load core text backend 2022-10-09 11:28:28 -07:00
Mitchell Hashimoto
97e989daa8 font: coretext initial render glyph 2022-10-09 11:23:57 -07:00
Mitchell Hashimoto
1b7bc052d4 font: coretext calculate cell metrics 2022-10-09 10:57:19 -07:00
Mitchell Hashimoto
150b0a4d51 font: calculate cell height 2022-10-09 08:51:30 -07:00
Mitchell Hashimoto
8b3959dceb macos: frames, attributed strings, stylized strings 2022-10-09 08:07:56 -07:00
Mitchell Hashimoto
1e2e4169a5 pkg/macos: starting frames 2022-10-08 17:52:01 -07:00
Mitchell Hashimoto
cc14344bf8 pkg/macos: path 2022-10-08 17:39:25 -07:00
Mitchell Hashimoto
061f7f6a30 pkg/macos: text framesetter 2022-10-08 17:29:50 -07:00