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
846c9db0c3
get rid of stage2 workaround for now
2022-10-15 10:43:39 -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
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
e493a722a3
fix some issues that fail nightly stage2 compiler
2022-10-13 10:54:30 -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
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
a97f997f9a
font: start working on core text cell height calcs
2022-10-08 17:03:09 -07:00
Mitchell Hashimoto
22f437aac6
font: coretext cell width calculation
2022-10-08 11:49:23 -07:00
Mitchell Hashimoto
f393049988
fix compilation
2022-10-08 11:25:54 -07:00
Mitchell Hashimoto
0e167ae24c
font: coretext initialize face from memory
2022-10-08 11:21:24 -07:00
Mitchell Hashimoto
a21dda2b08
font: lower interface requirement for face
2022-10-08 10:07:35 -07:00
Mitchell Hashimoto
0ff79a0623
font: coretext glyphIndex
2022-10-08 10:04:17 -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
71ec509930
Make font face a compile time interface, stub for coretext
2022-10-08 09:19:21 -07:00
Mitchell Hashimoto
a44d4ea33b
Fix underline/strikeout position with larger fonts
2022-10-06 15:40:43 -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
3a7e53e2e4
font: calculate correct offset for non-scalable emoji fonts
2022-10-06 14:12:03 -07:00
Mitchell Hashimoto
3b549e0709
more accurately compute font metrics
2022-10-06 11:07:49 -07:00
Mitchell Hashimoto
3d4aacd51d
underline is derived from the primary font
2022-10-04 11:08:07 -07:00
Mitchell Hashimoto
c149696f61
redoing some of the baseline calcs, remove from shader
2022-10-04 10:00:32 -07:00
Mitchell Hashimoto
a4e8b5ae8c
calculate font metrics per face
2022-10-03 12:31:07 -07:00
Mitchell Hashimoto
c565c561fd
Use Apple Emoji font on Mac
2022-10-02 11:20:55 -07:00
Mitchell Hashimoto
f41cbf228b
font: set "backend" enum vs booleans
2022-10-02 09:41:37 -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
a3d9dad726
fix tests so they pass on mac
2022-09-30 13:24:54 -07:00
Mitchell Hashimoto
53aab0a163
--font-family CLI config
2022-09-29 14:51:31 -07:00
Mitchell Hashimoto
7eac0afff2
cli args can parse null-terminated strings
2022-09-29 14:45:37 -07:00
Mitchell Hashimoto
5567564dd0
cli args fix stage1 miscompilation, add font families
2022-09-29 13:14:20 -07:00
Mitchell Hashimoto
7f45916b89
only discover if it is enabled
2022-09-29 11:58:00 -07:00
Mitchell Hashimoto
b6a4fff6d8
search for fonts on startup
2022-09-29 11:57:29 -07:00
Mitchell Hashimoto
30a5041a38
font Group has Lib, loads deferred faces when needed
2022-09-29 10:30:45 -07:00
Mitchell Hashimoto
b11ed06fc2
font: test loading deferred face for fontconfig
2022-09-24 13:34:56 -07:00
Mitchell Hashimoto
88a4cb65f3
src/font: working on initiaizing deferred fonts from fc
2022-09-23 14:12:38 -07:00
Mitchell Hashimoto
bc9a0a36a8
store requested size alongside deferred font for loading
2022-09-23 14:12:38 -07:00
Mitchell Hashimoto
92251ed913
font group works with deferred faces exclusively
2022-09-23 14:12:38 -07:00
Mitchell Hashimoto
ac26c20e94
font discovery builds up a set of deferred faces
2022-09-23 14:12:38 -07:00
Mitchell Hashimoto
1c1da63c7e
deferred face hasCodepoint
2022-09-23 14:12:38 -07:00
Mitchell Hashimoto
141182aa13
start adding fontconfig conditional compilation
2022-09-23 14:12:38 -07:00
Mitchell Hashimoto
1a2b684b0e
RGB should not be packed, so that it has align = 1
2022-09-23 13:10:51 -07:00