353 Commits

Author SHA1 Message Date
Mitchell Hashimoto
6ad45f0237 update zig 2022-11-30 16:54:04 -08:00
Mitchell Hashimoto
abfffdcabe pkg/pixman: more getters 2022-11-27 13:54:30 -08:00
Mitchell Hashimoto
120dfb4043 more wedges 2022-11-25 15:12:34 -08:00
Mitchell Hashimoto
2c9b3e2f9b wedge triangles 2022-11-25 15:02:12 -08:00
Mitchell Hashimoto
88ff221d6d pkg/pixman: fill rects 2022-11-25 14:10:25 -08:00
Mitchell Hashimoto
f1a052640c pkg/pixman: rasterize trapezoids 2022-11-25 13:36:17 -08:00
Mitchell Hashimoto
336d2c4e13 pkg/pixman: more image APIs 2022-11-25 11:34:31 -08:00
Mitchell Hashimoto
433d41fa9a pkg/pixman: add more types 2022-11-24 10:21:27 -08:00
Mitchell Hashimoto
ac4a45bdf3 pkg/pixman: fix math for bpp calculation 2022-11-24 10:21:27 -08:00
Mitchell Hashimoto
5f77ac145c pkg/pixman: some drawing 2022-11-24 10:21:27 -08:00
Mitchell Hashimoto
699370bd4a pkg/pixman: starting API 2022-11-24 10:21:27 -08:00
Mitchell Hashimoto
ef65b261de vendor/pixman and basic building 2022-11-24 10:21:27 -08:00
Mitchell Hashimoto
9b0fbde838 put some config in the devmode UI 2022-11-21 09:09:25 -08:00
Mitchell Hashimoto
1bce3d8e72 pkg/objc: make ptrcast var so that LLVM backend sees sig 2022-11-20 08:19:50 -08:00
Mitchell Hashimoto
2100523822 pkg/objc: correct objc_msgSend call on x86_64 depending on return type
On x86_64, we have to use specialized forms of `objc_msgSend` depending
on the return type (and the byte size of the return type). If we don't
do this, the calling convention is wrong and we'll get a segfault when
objc_msgSend tries to read a register that is [rightly] not set.

On aarch64, we do not have this issue because the calling convention is
different and objc_msgSend handles all cases.
2022-11-19 21:45:38 -08:00
Mitchell Hashimoto
da2942e083 font: specific codepoint lookup in internals 2022-11-17 15:49:14 -08:00
Mitchell Hashimoto
b91cd8e41c pkg/macos: character set in range 2022-11-17 15:15:09 -08:00
Mitchell Hashimoto
843dc8ae14 pkg/macos: support CFCharacterSet 2022-11-17 15:09:53 -08:00
Mitchell Hashimoto
7703873142 pkg/fontconfig: charset can add chars 2022-11-17 14:37:36 -08:00
Mitchell Hashimoto
69b91a951b pkg/objc: autorelease pools 2022-11-14 09:59:09 -08:00
Mitchell Hashimoto
46a9998762 tracy: support naming threads 2022-11-07 07:33:36 -08:00
Mitchell Hashimoto
7b94153458 libuv: Prepare handles 2022-11-07 07:33:29 -08:00
Mitchell Hashimoto
afd4800da4 pkg/imgui: support context current 2022-11-06 16:03:03 -08:00
Mitchell Hashimoto
9e3bbc1598 macos: send logs to unified logging 2022-10-31 15:16:29 -07:00
Mitchell Hashimoto
7608d7921f pkg/macos: OS Log support 2022-10-31 14:47:10 -07:00
Mitchell Hashimoto
c1b70cb788 metal: devmode 2022-10-31 09:44:37 -07:00
Mitchell Hashimoto
090bab6798 metal: setup the render loop, draw the background color 2022-10-31 09:44:36 -07:00
Mitchell Hashimoto
6d0b8a24d9 pkg/objc: shortcut for set/get property 2022-10-28 14:38:50 -07:00
Mitchell Hashimoto
1e5c17dffa Comment to show native access 2022-10-28 10:02:32 -07:00
Mitchell Hashimoto
71042b6f1b pkg/objc: more methods 2022-10-28 09:36:56 -07:00
Mitchell Hashimoto
59cb774cdd pkg/objc: properties 2022-10-25 21:25:07 -07:00
Mitchell Hashimoto
aaaae38fa1 pkg/objc: more message send stuff 2022-10-25 20:55:41 -07:00
Mitchell Hashimoto
7d48e564b5 pkg/objc: message send 2022-10-25 20:30:42 -07:00
Mitchell Hashimoto
10ee05b435 pkg/objc: selectors 2022-10-25 16:33:45 -07:00
Mitchell Hashimoto
dd8fde52d9 pkg/objc starting 2022-10-25 16:21:11 -07:00
Mitchell Hashimoto
d346309cb3 pkg/libuv: generate cimport.zig for specific platforms 2022-10-24 14:35:30 -07:00
Mitchell Hashimoto
aa3d132947 run rendering on another real thread (still bugs) 2022-10-24 09:17:48 -07:00
Mitchell Hashimoto
77b981950c pkg/libuv: Idle handles 2022-10-23 21:15:58 -07:00
Mitchell Hashimoto
c3d9ee1d85 pkg/libuv: get rid of sleep state, it did nothing 2022-10-23 16:15:47 -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
15a57983a6 pkg/freetype: remove unused API 2022-10-16 21:03:17 -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
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
5b6eb2736a pkg/libpng: name the lib png, so its not "liblibpng" 2022-10-15 14:55:11 -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
b28b04d710 pkg/libuv: fix stage2 compilation issues 2022-10-14 09:44:22 -07:00