Mitchell Hashimoto
240c560720
macos: create descriptors from URL
2022-10-08 10:16:35 -07:00
Mitchell Hashimoto
175ff0f777
macos: url from path
2022-10-08 10:13:30 -07:00
Mitchell Hashimoto
723db8be2f
font: coretext face presentation
2022-10-08 09:55:22 -07:00
Mitchell Hashimoto
90f3b9391c
font: begin coretext Face
2022-10-08 09:43:54 -07:00
Mitchell Hashimoto
833fd0e49a
pkg/macos: bounding rects for text
2022-10-07 21:23:34 -07:00
Mitchell Hashimoto
67bb68b39f
pkg/macos: RGB color space
2022-10-07 21:07:11 -07:00
Mitchell Hashimoto
c48ddcecd7
pkg/macos: font draw glyphs
2022-10-07 21:04:30 -07:00
Mitchell Hashimoto
61955c5d8d
pkg/macos: CGContext
2022-10-07 20:56:24 -07:00
Mitchell Hashimoto
ca7f3647ff
pkg/macos: CGColorSpace
2022-10-07 17:59:52 -07:00
Mitchell Hashimoto
b18309187e
Strikethrough ( #19 )
...
Not as straightforward as it sounds, but not hard either:
* Read OS/2 sfnt tables from TrueType fonts
* Calculate strikethrough position/thickness (prefer font-advertised if possible, calculate if not)
* Plumb the SGR code through the terminal state -- does not increase cell memory size
* Modify the shader to support it
The shaders are getting pretty nasty after this... there's tons of room for improvement. I chose to follow the existing shader style for this to keep it straightforward but will likely soon refactor the shaders.
2022-10-06 15:03:19 -07:00
Mitchell Hashimoto
c149696f61
redoing some of the baseline calcs, remove from shader
2022-10-04 10:00:32 -07:00
Mitchell Hashimoto
c565c561fd
Use Apple Emoji font on Mac
2022-10-02 11:20:55 -07:00
Mitchell Hashimoto
939e6e7a65
pkg/harfbuzz: add coretext compilation on macOS
2022-10-02 11:05:40 -07:00
Mitchell Hashimoto
12c9482d48
Mac Font Discovery with CoreText ( #17 )
...
This implements font discovery so the `--font-family` flag works for macOS. Fonts are looked up using the Core Text API so any installed font on the Mac system can be used.
We still use FreeType for rendering, and CoreText doesn't _quite_ give us all the information we need to build the exact face in FreeType. So a TODO after this is to now implement glyph _rendering_ using Core Text and Core Graphics. Until then, a couple fonts don't quite work (i.e. Monaco, a big one!) but many do!
2022-10-01 22:21:30 -07:00
Mitchell Hashimoto
791739de9c
pkg/macos: font initializes, get glyphs
2022-10-01 21:49:02 -07:00
Mitchell Hashimoto
0f34617eab
pkg/macos: fix crash when no fonts are found
2022-10-01 21:20:15 -07:00
Mitchell Hashimoto
8292e925fc
pkg/macos: fix invalid constant
2022-10-01 21:03:51 -07:00
Mitchell Hashimoto
decbaafc6a
pkg/macos: add mutable dictionaries, flesh out font descriptor
2022-10-01 20:50:51 -07:00
Mitchell Hashimoto
c6dc2a3529
macos/text: create collection from descriptors
2022-10-01 16:10:50 -07:00
Mitchell Hashimoto
623e7f5916
macos/text: FontTraits
2022-10-01 16:00:52 -07:00
Mitchell Hashimoto
7eb466959a
macos/foundation: number, dict get value
2022-10-01 15:49:05 -07:00
Mitchell Hashimoto
3eeef74315
pkg/macos: import headers instead of doing externs manually
2022-10-01 15:24:22 -07:00
Mitchell Hashimoto
57c1d8d329
macos/text: more APIs
2022-10-01 11:25:21 -07:00
Mitchell Hashimoto
88ae3be9ef
pkg/macos: CFURL
2022-10-01 11:13:44 -07:00
Mitchell Hashimoto
49c9c21d52
macos: test listing fonts
2022-10-01 11:06:07 -07:00
Mitchell Hashimoto
cb02bab89e
macos/text: font descriptors
2022-10-01 10:50:09 -07:00
Mitchell Hashimoto
92d564a246
macos/foundation: more string funcs
2022-10-01 10:32:54 -07:00
Mitchell Hashimoto
2440b0ec67
pkg/macos: dictionary create
2022-10-01 09:53:48 -07:00
Mitchell Hashimoto
d79c8fab39
macos/text: matching font descriptors
2022-09-30 15:13:29 -07:00
Mitchell Hashimoto
93f2a99b64
macos: CFArray
2022-09-30 15:10:11 -07:00
Mitchell Hashimoto
f9e1127317
pkg/macos: add CoreText
2022-09-30 14:48:06 -07:00
Mitchell Hashimoto
b0d9933249
macos: add another string API to test it really works
2022-09-30 14:12:15 -07:00
Mitchell Hashimoto
ab4491a45d
pkg/macos: start core foundation bindings
2022-09-30 14:03:37 -07:00
Mitchell Hashimoto
68786814f8
-Dtest-exe flag to build and install test executables
...
This will be used to copy tests to other platforms.
2022-09-30 13:05:23 -07:00
Mitchell Hashimoto
fdbf40d3ee
pkg/freetype: disable ubsan
2022-09-29 11:39:09 -07:00
Mitchell Hashimoto
88a4cb65f3
src/font: working on initiaizing deferred fonts from fc
2022-09-23 14:12:38 -07:00
Mitchell Hashimoto
53f5739eca
use meta.FnPtr to prep for stage2
2022-09-23 13:20:43 -07:00
Mitchell Hashimoto
3bd9ed5952
Fix invalid c types with fontconfig
2022-09-23 13:14:08 -07:00
Mitchell Hashimoto
72105fc6cd
update to the latest stage2 compiler we can
2022-09-23 12:08:06 -07:00
Mitchell Hashimoto
57a82a26e7
pkg/fontconfig: const pointers
2022-09-17 09:19:00 -07:00
Mitchell Hashimoto
9750ac87fd
pkg/fontconfig: pattern get
2022-09-17 09:04:40 -07:00
Mitchell Hashimoto
86f7d0e04e
pkg/fontconfig: add some error handling
2022-09-17 08:58:42 -07:00
Mitchell Hashimoto
0d80225977
fontconfig: charset and langset apis
2022-09-16 15:12:02 -07:00
Mitchell Hashimoto
d69f8397f3
pkg/fontconfig: add weights/slants enum
2022-09-16 10:08:49 -07:00
Mitchell Hashimoto
5b215409c6
pkg/fontconfig: pattern.add
2022-09-16 09:55:45 -07:00
Mitchell Hashimoto
77851b30a2
Revert "update to latest Zig nightly"
...
This reverts commit f3f2c3df268db905b6af6588e5e5008da0f48b60.
2022-09-14 19:39:10 -07:00
Mitchell Hashimoto
f3f2c3df26
update to latest Zig nightly
2022-09-14 19:34:19 -07:00
Mitchell Hashimoto
e4ea27ec37
fontconfig: more APIs
2022-09-14 14:30:18 -07:00
Mitchell Hashimoto
aca36ba79b
fontconfig: fc-match
2022-09-14 14:26:42 -07:00
Mitchell Hashimoto
03ab1bedd4
fontconfig: fc-match
2022-09-14 12:49:43 -07:00