Krzysztof Wolicki
12f4210558
Update required zig version to 0.12.0-dev.2063+804cee3b9
2024-01-07 20:42:30 +01:00
Krzysztof Wolicki
5776c54225
Update changed build.zig
2024-01-07 15:00:17 +01:00
Krzysztof Wolicki
710b02a2ab
Merge branch 'main' of github.com:mitchellh/ghostty
2024-01-06 05:42:55 +01:00
widberg
cc29f06863
Don't build with LTO on Windows
2024-01-04 21:24:15 -05:00
Krzysztof Wolicki
1d49492e04
build.zig: Make use of resolveTargetQuery for wasm_freestanding target
2024-01-04 13:29:43 +01:00
Krzysztof Wolicki
1913243c35
WIP: Update to new build module API after Zig PR #18160
...
Temporarily change dependency sources to forks until they update
2024-01-03 21:50:32 +01:00
Mitchell Hashimoto
eb46161b5e
config: generate vim configs at comptime
2023-12-22 08:19:17 -08:00
Gregory Anders
4f01aafdba
build: move Vim plugin file generation into a separate Step
2023-12-21 21:49:38 -06:00
Gregory Anders
e9632a0f91
build: build Vim plugin files for Ghostty config file
...
Generate Vim syntax and ftplugin files for the Ghostty config file that
highlight Ghostty config keywords and offer completion for valid config
keys. The list of configuration keys is generated at compile time.
The plugin files are installed to ${prefix}/share/vim/vimfiles, which is
a standard location for installing 3rd party Vim plugin files.
2023-12-21 21:46:26 -06:00
Gregory Anders
8751502878
core: look for resources in "ghostty" subdirectory for "share" paths
...
Installing resources directly under ${prefix}/share causes conflicts
with other packages. This will become more problematic whenever Ghostty
is opened and becomes packaged in distributions.
Instead, install all resources under a "ghostty" subdirectory (i.e.
${prefix}/share/ghostty). This includes themes, shell integration, and
terminfo files.
Only "/usr/share" style paths use the "ghostty" subdirectory. On macOS,
Ghostty is already isolated within its app bundle, and if
$GHOSTTY_RESOURCES_DIR is set then we assume that points to the actual
resources dir (without needing to append "ghostty" to it).
2023-12-21 17:56:17 -08:00
Chris Marchesi
5e7e3be60a
build: use dedicated strings for conformance test keys
...
This uses separate strings for the keys for the conformance tests versus
just deriving them from the sliced path.
This fixed an issue for me where a few of the tests were showing up as
InvalidConformance (notably the "blocks" test), even though, oddly
enough, the key/value entries do appear to be there (e.g. if you iterated
over them). I did notice, though, that we currently sliced the key from
the file entry of the directory iterator, which is closed at the end of
conformanceSteps.
2023-12-14 21:35:04 -08:00
Mitchell Hashimoto
8f5f8fb0bd
update Zig version in Nix
2023-11-30 14:06:24 -08:00
Krzysztof Wolicki
bfc688e96e
Update required zig version to `0.12.0-dev.1767+1e42a3de8`
2023-11-30 21:41:42 +01:00
Krzysztof Wolicki
46699d53d1
Update to latest master
2023-11-30 21:40:01 +01:00
Mitchell Hashimoto
af04d891ff
build: dynamically link oniguruma
2023-11-29 15:29:43 -08:00
Mitchell Hashimoto
b85174c7ac
build: add oniguruma
2023-11-29 15:29:43 -08:00
Mitchell Hashimoto
dde2339e4d
move back to zig pm
2023-11-28 08:11:34 -08:00
Mitchell Hashimoto
c7a1e074dd
don't use package manager for iterm2 themes yet
2023-11-22 22:08:27 -08:00
Mitchell Hashimoto
7a91a23e40
build: add iterm2 themes repository, install into resources dir
2023-11-22 21:08:26 -08:00
Mitchell Hashimoto
8576acb89e
renderer/opengl: move opengl API to pkg/opengl
2023-11-17 21:51:04 -08:00
Mitchell Hashimoto
291ca16c20
build: add spirv-cross
2023-11-17 21:50:35 -08:00
Mitchell Hashimoto
1678c3a038
build: add glslang
2023-11-17 21:50:35 -08:00
Krzysztof Wolicki
44a48f62f1
change unmodified `var`s to `const`s in anticipation of zig changes
2023-11-17 15:46:46 +01:00
Mitchell Hashimoto
4781a83e4a
replace utf8proc with ziglyph
2023-11-07 13:17:56 -08:00
xdBronch
205b27dc80
remove deps that were already provided by other packages ( #797 )
2023-11-03 14:04:00 -07:00
Mitchell Hashimoto
1235c33db2
Merge pull request #794 from hqnna/main
...
Add option to enable or disable libadwaita
2023-11-02 22:14:59 -07:00
hanna
915f1f5e62
change option name and default value
2023-11-02 22:03:11 -07:00
hanna
63fe99809f
remove hard dependency on libadwaita
2023-11-02 21:54:05 -07:00
Mitchell Hashimoto
2275768383
font: if a codepoint is emoji presentation, prefer that for shaping
...
Fixes #787
2023-11-02 21:46:50 -07:00
Hanna
2d7e2c8345
Integrate libadwaita for the gtk backend ( #792 )
...
* When using gtk as the backend, link libadwaita
* Update c.zig
* Use libadwaita's theme manager for gtk
* update the documentation for window-theme
* build: add libadwaita to the nix devshell
* forgot to properly import libadwaita
* apprt/gtk: adwaita style change
---------
Co-authored-by: Mitchell Hashimoto <mitchell.hashimoto@gmail.com>
2023-11-02 21:29:29 -07:00
Mitchell Hashimoto
423d0d58c0
build: do not build glfw for gtk anymore
2023-10-27 15:11:04 -07:00
Mitchell Hashimoto
efddef9d1c
build: add cimgui to build
2023-10-24 15:27:13 -07:00
Mitchell Hashimoto
cbdf52864a
Merge pull request #704 from der-teufel-programming/windows-test
...
Get `zig build test` working on Windows
2023-10-23 08:52:43 -07:00
Mitchell Hashimoto
b9b33ab25d
pkg/fontconfig: make iconv build param non-windows specific
2023-10-23 08:40:25 -07:00
Mitchell Hashimoto
b6a47cef77
build: disable Tracy by default even for debug builds
...
Our usage has a memory leak and I don't know where it is and don't want
to spend the time finding it because we very rarely use the tracy
integration anyways.
2023-10-19 20:03:36 -07:00
Krzysztof Wolicki
cf9f025a5b
Don't enable iconv for fontconfig dep on windows
2023-10-19 17:10:24 +02:00
Krzysztof Wolicki
00c24e4ae6
Fix option name passed to fontconfig dep
2023-10-19 10:52:09 +02:00
Krzysztof Wolicki
3936b471a8
Disable iconv on Windows by default (enabled via cli flag).
...
Skip various tests not implemented on windows.
2023-10-19 09:39:20 +02:00
Mitchell Hashimoto
8f46d114c0
update zig
2023-10-17 12:45:35 -07:00
Mitchell Hashimoto
2b28106837
update zig
2023-10-02 08:18:35 -07:00
Mitchell Hashimoto
0b6cfac8b0
don't run dependency tests anymore
2023-10-01 18:34:51 -07:00
Mitchell Hashimoto
4e1b3b3224
fix failing test, freetype needs libpng
2023-10-01 18:33:37 -07:00
Mitchell Hashimoto
e3a58526ce
fix dynamic build
2023-10-01 17:42:18 -07:00
Mitchell Hashimoto
d71197dc59
no more system_sdk
2023-10-01 17:38:30 -07:00
Mitchell Hashimoto
3a4842a0a5
fix build on linux
2023-10-01 17:32:59 -07:00
Mitchell Hashimoto
ccd6eee5fe
progress on glfw
2023-10-01 17:30:11 -07:00
Mitchell Hashimoto
8395bb7470
pkg/tracy
2023-10-01 17:11:04 -07:00
Mitchell Hashimoto
7bd4c96b41
remove unused deps
2023-10-01 17:04:17 -07:00
Mitchell Hashimoto
aece38ecb2
macos: fix missing symbols in archive
2023-10-01 17:03:32 -07:00
Mitchell Hashimoto
ec26fb7cee
pkg/macos
2023-10-01 17:02:12 -07:00
Mitchell Hashimoto
fefbd7afbe
pkg/pixman, utf8proc
2023-10-01 16:59:24 -07:00
Mitchell Hashimoto
2237b43df0
pkg/freetype, harfbuzz modules
2023-10-01 16:57:45 -07:00
Mitchell Hashimoto
bc0f5c3012
pkg/fontconfig module
2023-10-01 16:52:36 -07:00
Mitchell Hashimoto
8666ab81c3
libxev, zig-js, zig-objc
2023-10-01 16:49:02 -07:00
Mitchell Hashimoto
3ed6a02176
pkg/utf8proc
2023-10-01 16:45:39 -07:00
Mitchell Hashimoto
5feeac66b2
pkg/pixman
2023-10-01 15:04:55 -07:00
Mitchell Hashimoto
d3746bc96f
add fontconfig
2023-10-01 12:46:17 -07:00
Mitchell Hashimoto
7edb86f9e1
pkg/fontconfig
2023-10-01 12:43:36 -07:00
Mitchell Hashimoto
2312c465c6
use package manager for font stack
2023-10-01 12:32:17 -07:00
Mitchell Hashimoto
6aef48288a
pkg/harfbuzz
2023-10-01 12:23:38 -07:00
Mitchell Hashimoto
7dc3fcc41e
pkg/freetype
2023-10-01 12:12:05 -07:00
Mitchell Hashimoto
6e2b7c607e
pkg/libpng, pkg/zlib use package manager
2023-10-01 11:25:18 -07:00
Mitchell Hashimoto
9e6cb63a1e
update zig
2023-10-01 09:11:57 -07:00
Nathan Youngman
73331887fe
fabs builtin was renamed
...
https://github.com/ziglang/zig/pull/17248
I just tried installing from source and ran into the error:
> error: invalid builtin function: '@fabs'
2023-09-28 15:29:08 -07:00
Mitchell Hashimoto
695c50a73a
update zig
2023-09-27 08:11:59 -07:00
Mitchell Hashimoto
e644be3b25
update zig to 0.12.0-dev.464+a63a1c5cb
2023-09-21 11:03:34 -07:00
Mitchell Hashimoto
f3662354e5
apprt/gtk: about window
2023-09-18 15:16:35 -07:00
Jonathan Marler
a2e881ff4e
windows: initial support for zig build test
...
Makes progress getting "zig build test" to work on windows. Mostly
fixed issues around build configuration and added some branches throughout
the Zig code to return/throw errors for unimplemented parts.
I also added an initial implementation for getting the home dir.
2023-09-14 03:15:40 -06:00
Mitchell Hashimoto
63386e4a22
build: can select renderer with -Drenderer
...
Note that not all renderers work in all environments.
2023-08-25 08:12:31 -07:00
Mitchell Hashimoto
ec69644de6
move stb to src/stb, add stb_image for png decoding
2023-08-20 22:03:20 -07:00
Mitchell Hashimoto
936befa1af
update to 0.12.0-dev.141+ddf5859c2
2023-08-20 09:04:42 -07:00
Mitchell Hashimoto
7ccf86b175
remove imgui and devmode
...
imgui has been a source of compilation challenges (our fault not theirs)
and devmode hasn't worked in awhile, so drop it.
2023-08-20 08:50:24 -07:00
Mitchell Hashimoto
e8a6d09297
build: gtk needs imgui
2023-08-18 08:25:20 -07:00
Mitchell Hashimoto
3879f7c2e8
build: imgui should not be linked without an apprt
2023-08-18 08:24:09 -07:00
Mitchell Hashimoto
7659a2a733
build: fix linking bugs for macos test
2023-08-18 08:23:58 -07:00
Mitchell Hashimoto
68a9110d8e
build: make glfw opt-in on all platforms, default to GTK on Linux
...
The GLFW build has grown farther and farther in feature parity with GTK
on Linux. And on macOS, the GLFW build has been unstable (crashes) for
months.
I still find the GLFW build useful for testing some core terminal work,
but it is increasingly user-hostile in case someone just downloads the
project and does a `zig build`.
I keep GLFW as up to date as I can, but the features that are missing
are due to fundamental limitations:
- GLFW has no tabs, splits, etc. because it has no UI elements.
I am not interested in painting UI widgets from scratch.
- GLFW cannot support keyboard layouts robustly because it has no
hooks to detect keyboard layouts or functions to get keymaps.
- GLFW cannot support the Kitty keyboard protocol because the
key/char API is too high level and it provides no low-level
alternatives.
- GLFW crashes on macOS under certain scenarios (this is my problem).
I'm not interested in fixing it because the AppKit-based build
is highly recommended.
To build or run the GLFW build you must now explicitly pass in
`-Dapp-runtime=glfw` to `zig build`.
2023-08-17 16:27:03 -07:00
Mitchell Hashimoto
b18e7393e1
build: remove hardcoded glibc, I don't think this error is happening
2023-08-13 11:57:43 -07:00
Mitchell Hashimoto
e33f6c71de
update libxev to fix split writes on large writes (i.e. big paste)
...
Fixes #258
This was an upstream bug in libxev where partial the queueWrite
mechanism would not correctly handle partial write results:
https://github.com/mitchellh/libxev/pull/60
2023-08-09 08:18:43 -07:00
Kevin Hovsäter
22b8173164
Fix typos
2023-08-08 14:27:34 +02:00
Mitchell Hashimoto
a348adf26b
build: dynamic link first (mode_first)
2023-08-07 10:49:50 -07:00
Mitchell Hashimoto
d356d5ea38
build: add libxml2/libbuid for fontconfig dynamic link for CI
2023-08-07 10:33:00 -07:00
Mitchell Hashimoto
68cd53e82d
build: always add /usr/lib/{triple} to search path for Linux
...
This is a common location for dynamic libraries. We already searched it
for Flatpak but we need to do this more generally.
2023-08-07 10:20:20 -07:00
Thorsten Ball
89227a1aac
flatpak: install icon files to `/apps` path
...
I couldn't get icons to work for the flatpak version, so I looked at the
reference here: https://docs.flatpak.org/en/latest/freedesktop-quick-reference.html
That says the path format is `share/icons/hicolor/<resolution>/apps/<icon>`.
That also matches what I have on my Ubuntu machines: icons are, for
example, located in these two locations:
- `/usr/share/icons/hicolor/128x128/apps`
- `~/.local/share/icons/hicolor/128x128/apps`
Note the `/apps`.
2023-08-06 18:54:45 +02:00
Mitchell Hashimoto
9e3d59534d
update build.zig required zig version
2023-08-02 16:18:27 -07:00
Mitchell Hashimoto
dd18eaab5d
fix various build scripts
2023-08-02 15:06:24 -07:00
Mitchell Hashimoto
d649b3f6d4
update zig
2023-08-02 14:39:19 -07:00
Mitchell Hashimoto
4b3b42bc54
update zig
2023-07-28 10:22:58 -07:00
Mitchell Hashimoto
848943770a
start shell-integration folder, copy into zig-out
2023-07-06 13:26:28 -07:00
Mitchell Hashimoto
ce77002198
remove metal workaround completely
2023-07-01 15:19:13 -07:00
Mitchell Hashimoto
f537d7aab1
renderer: remove metal workaround, this caused crashes on x86_64
...
And it now works.
2023-07-01 15:14:24 -07:00
Mitchell Hashimoto
a212d811e7
build: update min required zig version
2023-06-30 13:24:01 -07:00
Mitchell Hashimoto
b7b3b9e7f2
build.zig update min version
2023-06-25 11:18:09 -07:00
Mitchell Hashimoto
56f8e39e5b
Update zig, mach, fmt
2023-06-25 11:08:20 -07:00
Mitchell Hashimoto
701cb9f2f5
build: fix race condition in build on creating 'share' dir
2023-06-24 15:34:17 -07:00
Mitchell Hashimoto
7e51dbb7e5
build: fix race conditions, use actual filesource
2023-06-24 14:24:58 -07:00
Mitchell Hashimoto
d9421b87b0
build: copy the terminfo db using cp so we get symlinks
2023-06-24 12:40:12 -07:00
Mitchell Hashimoto
da1248d973
build: copy terminfo data into Mac app bundle
2023-06-24 11:41:16 -07:00
Mitchell Hashimoto
aad8483323
build: use tic to compile terminfo into database format
2023-06-24 09:45:26 -07:00
Mitchell Hashimoto
21d922304b
build: build.zig encodes and writes the terminfo source
2023-06-24 09:12:42 -07:00
Mitchell Hashimoto
7116ce0806
update zig version
2023-05-29 08:24:12 -07:00
Mitchell Hashimoto
57d8754c85
update required zig version in build.zig
2023-05-27 09:31:47 -07:00
Mitchell Hashimoto
97d9157d22
update zig version
2023-05-07 20:50:51 -07:00
Mitchell Hashimoto
4de8ddbeb5
update build
2023-04-06 08:57:29 -07:00
Jakub Konka
29e93a8984
macos: force macOS 12 SDK for latest macOS 13 as Mach does not support it
2023-03-26 22:51:37 +02:00
Mitchell Hashimoto
86c5b04ff9
copy mac binary must depend on binary
2023-03-24 20:33:36 -07:00
Mitchell Hashimoto
3be86cc79a
don't prefix warning
2023-03-24 20:19:04 -07:00
Mitchell Hashimoto
19106575eb
use new build struct
2023-03-24 20:17:25 -07:00
Mitchell Hashimoto
7a6826ee0e
build: run tests
2023-03-24 19:51:17 -07:00
Mitchell Hashimoto
5dc98da9a0
build compiles at least
2023-03-24 19:39:50 -07:00
Mitchell Hashimoto
8e8aabf4c0
build.zig: detect build outside of Nix environment and provide warning
2023-03-13 11:12:12 -07:00
Mitchell Hashimoto
d99cc0aec1
build.zig: automatically patchelf the rpath when in a nix shell
2023-03-13 10:59:30 -07:00
Mitchell Hashimoto
03f5addd34
build.zig handles tagged releases
2023-03-05 09:04:59 -08:00
Mitchell Hashimoto
0907da4eba
build: generate a version number, show in log on startup
2023-03-04 20:34:15 -08:00
Mitchell Hashimoto
06035e2f95
can now use -Dfont-backend to choose the font backend to use
2023-03-04 10:50:13 -08:00
Mitchell Hashimoto
2b73fbaa0d
iterating on the new for loop syntax
2023-02-27 21:53:09 -08:00
Mitchell Hashimoto
5db9854e63
build: install the proper linux desktop file depending on flatpak or not
2023-02-27 15:20:31 -08:00
Mitchell Hashimoto
533cfbc9b8
ci: add flatpak builder
2023-02-27 14:37:52 -08:00
Mitchell Hashimoto
52d22a140c
termio: exec uses new flatpak command, no more host-spawn
2023-02-27 11:26:31 -08:00
Mitchell Hashimoto
5b9bc9abdb
flatpak: build GTK version
2023-02-25 23:08:04 -08:00
Mitchell Hashimoto
f18789da87
build: omit icon that is too large for freedesktop
2023-02-25 19:39:16 -08:00
Mitchell Hashimoto
b927105959
build: add freedesktop file and icon
2023-02-25 14:57:48 -08:00
Mitchell Hashimoto
3dbb7e44bf
build: don't build bench by default
2023-02-25 14:57:48 -08:00
Mitchell Hashimoto
90bea1b742
gtk: get proper content scaling
2023-02-24 07:58:30 -08:00
Mitchell Hashimoto
48c9c65915
add app runtime option, add gtk backend
2023-02-24 07:58:29 -08:00
Mitchell Hashimoto
ff9af8a07b
lots of progress running a surface but still crashes
2023-02-19 10:44:56 -08:00
Mitchell Hashimoto
f30d80cabe
build: must set run condition to always now
2023-02-19 10:44:55 -08:00
Mitchell Hashimoto
1f9d4eb9f4
update to latest build API, rebase
2023-02-19 10:44:55 -08:00
Mitchell Hashimoto
2b3531378f
build: bundle compiler rt
2023-02-19 10:44:54 -08:00
Mitchell Hashimoto
9bd527fe00
macos: config API
2023-02-19 10:44:54 -08:00
Mitchell Hashimoto
d2d21801d8
macos: need to link to libstdc++
2023-02-19 10:44:54 -08:00
Mitchell Hashimoto
d2dd3df86a
libtoolstep
2023-02-19 10:44:54 -08:00
Mitchell Hashimoto
8b80e65928
lots of broken stuff
2023-02-19 10:44:54 -08:00
Mitchell Hashimoto
1abaf87de9
build: LipoStep
2023-02-19 10:44:53 -08:00
Mitchell Hashimoto
55aff76922
build: remove SwiftBuildStep
2023-02-19 10:44:53 -08:00
Mitchell Hashimoto
abd739f3ef
build: just copy xcframework
2023-02-19 10:44:53 -08:00
Mitchell Hashimoto
8035865596
build: ghostty lib, framework, build into app
2023-02-19 10:44:53 -08:00
Mitchell Hashimoto
4d09f8dba6
build: add SwiftBuildStep to run "swift build"
2023-02-19 10:44:52 -08:00
Mitchell Hashimoto
b49634a57c
add TODO notes about arch
2023-02-19 10:44:52 -08:00
Mitchell Hashimoto
1f70181032
build: can build the app using Swift (noop)
2023-02-19 10:44:52 -08:00
Mitchell Hashimoto
a2f17aa71a
fix tests, wasm build works again
2023-02-14 21:06:09 -08:00
Mitchell Hashimoto
be75109a1d
new build system
2023-02-14 20:58:33 -08:00
Mitchell Hashimoto
4a1ff37d63
build conformance into dedicated directory
2023-02-10 08:43:32 -08:00
Mitchell Hashimoto
7d16acdf06
build: add comptime check to verify Zig version
2023-02-08 15:42:41 -08:00
Mitchell Hashimoto
f07e21c22e
remove libuv from build
2023-02-04 17:37:51 -08:00
Mitchell Hashimoto
60fca27c33
vendor/libxev
2023-01-30 19:17:43 -08:00
Mitchell Hashimoto
e9bf2a5680
pkg/objc: extract to zig-objc repo
2023-01-02 21:35:32 -08:00
Mitchell Hashimoto
ce490e21ea
can specify a wasm target in build
2022-12-31 08:53:11 -08:00
Mitchell Hashimoto
241bfee7d4
wasm: use shared, imported memory
...
This switches our wasm build to use "shared" memory. Shared memory can
be shared across multiple web workers, which is something we'll want to
support for our multi-threaded behaviors later.
Shared memory has a number of different restrictions so this updates
zig-js to support it as well as updates some of our functions that need
to be aware of it.
2022-12-24 16:24:43 -08:00
Mitchell Hashimoto
c34d911488
wasm: disable stack protector
2022-12-13 10:03:26 -08:00
Mitchell Hashimoto
2c5b5429e3
wasm: build.zig uses addDeps for wasm
2022-12-07 18:39:46 -08:00
Mitchell Hashimoto
2a74330911
font: begin making Group work with wasm
2022-12-05 16:08:20 -08:00
Mitchell Hashimoto
437f1772f1
logging works for wasm
2022-12-04 12:29:11 -08:00
Mitchell Hashimoto
940828ed97
font: web canvas creates a canvas element
2022-12-03 22:11:01 -08:00
Mitchell Hashimoto
21faf0b6fb
add zig-js
2022-12-03 21:46:00 -08:00
Mitchell Hashimoto
6b101c2293
support unit testing wasm via wasmtime
2022-12-01 13:02:17 -08:00
Mitchell Hashimoto
24cc01e055
move wasm main to src/, export an Atlas API
...
We don't need the Atlas API for wasm at all, but its a good way to test
things work incrementally and its a pretty cool thing to have as a wasm
library really.
2022-12-01 13:02:17 -08:00
Mitchell Hashimoto
5c58067489
add pixman package
2022-11-24 10:21:27 -08:00
Mitchell Hashimoto
894d36f28a
build: support for dynamic linking pixman
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
30d62fc144
workaround for x86_64 ABI issue: https://github.com/ziglang/zig/issues/13598
2022-11-19 22:07:48 -08:00
Mitchell Hashimoto
81fbc94b3c
Add a benchmark exe for testing parser throughput
2022-11-13 11:29:05 -08:00
Mitchell Hashimoto
9d736985b3
Mac bundle, icons
2022-10-31 14:04:41 -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
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
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
20f1077e86
enable freetype with imgui
2022-10-17 11:41:46 -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
699da6fcfe
update mach
2022-10-13 11:03:23 -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
f9e1127317
pkg/macos: add CoreText
2022-09-30 14:48:06 -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
141182aa13
start adding fontconfig conditional compilation
2022-09-23 14:12:38 -07:00
Mitchell Hashimoto
72105fc6cd
update to the latest stage2 compiler we can
2022-09-23 12:08:06 -07:00
Mitchell Hashimoto
77851b30a2
Revert "update to latest Zig nightly"
...
This reverts commit f3f2c3df26 .
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
4ca71eef7c
don't build fontconfig on mac
2022-09-13 14:46:33 -07:00
Mitchell Hashimoto
59191b05cd
build fontconfig
2022-09-13 14:34:40 -07:00
Mitchell Hashimoto
367aba62c4
Add harfbuzz build (not used yet)
2022-08-28 10:09:39 -07:00
Mitchell Hashimoto
da79aae0ab
terminal: print wide characters
2022-08-20 16:11:48 -07:00
Mitchell Hashimoto
ecf8353c74
support dynamic linking (not default) test in GH actions
2022-08-20 15:21:24 -07:00
Mitchell Hashimoto
32d96dd49b
add utf8proc so we can detect unicode char width
2022-08-20 10:48:54 -07:00
Mitchell Hashimoto
5ae450099d
freetype builds in png support, uses our own zlib
2022-08-20 10:33:57 -07:00
Mitchell Hashimoto
728df4af16
build libpng and link freetype to it
2022-08-20 10:24:49 -07:00
Mitchell Hashimoto
e5c583ccf5
get rid of gb_math and create matrices from scratch
2022-08-18 11:33:28 -07:00
Mitchell Hashimoto
ffa9ddc0d9
only build tracy if enabled
2022-08-17 17:03:38 -07:00
Mitchell Hashimoto
08292e58f3
add system SDK to build to enable cross compilation
2022-08-17 14:53:34 -07:00
Mitchell Hashimoto
5c2edf4d2a
Fix some stage2 compilation errors
2022-08-17 14:42:23 -07:00
Mitchell Hashimoto
2f36d5f715
pkg/tracy
2022-08-17 14:03:49 -07:00
Mitchell Hashimoto
ea1e972a29
turn tracy into proper package
2022-08-17 14:02:09 -07:00
Mitchell Hashimoto
2457454b07
test wasm of the term package
2022-08-17 13:57:21 -07:00
Mitchell Hashimoto
ead6e5a435
src/terminal can build into a minimal wasm library, I think
2022-08-17 12:25:53 -07:00
Mitchell Hashimoto
f2d65d4524
move freetype into pkg
2022-08-17 11:20:31 -07:00
Mitchell Hashimoto
b2192ea8f7
move libuv into pkg
2022-08-16 17:47:44 -07:00
Mitchell Hashimoto
c09498318a
don't install conformance tests
2022-07-26 09:55:37 -07:00
Mitchell Hashimoto
079e5e6ccf
update to latest zig
2022-07-21 09:03:39 -07:00
Mitchell Hashimoto
312434a4b7
support building with musl, although it doesn't run currently
2022-07-17 19:40:48 -07:00
Mitchell Hashimoto
0dbd4d2ca6
only compile tracy on linux
2022-06-26 10:43:00 -07:00
Mitchell Hashimoto
989d23e9fc
update deps and fixes for NixOS 22.05
2022-06-01 18:00:37 -07:00
Mitchell Hashimoto
afb8bb6d60
Add conformance apps
2022-05-09 17:28:14 -07:00
Mitchell Hashimoto
10736e2eb4
initial tracy support
2022-04-29 09:15:49 -07:00
Mitchell Hashimoto
70693872f7
use OpenGL on Mac
2022-04-23 14:28:01 -07:00
Mitchell Hashimoto
8b0d914ddc
improve building on darwin
2022-04-23 14:00:21 -07:00
Mitchell Hashimoto
cca32c4d1c
embedded libuv loop. still some issues:
...
1. 100% CPU if no handles/requests
2. slow to exit cause it waits for the next tick
2022-04-22 10:01:52 -07:00
Mitchell Hashimoto
21ee510471
starting libuv bindings
2022-04-21 09:33:32 -07:00
Mitchell Hashimoto
e672c9d7d5
calculate grid size in dedicated struct, tests
2022-04-15 08:16:22 -07:00
Mitchell Hashimoto
80490cb80d
remove ftgl build
2022-04-05 19:54:48 -07:00
Mitchell Hashimoto
e33aeea723
starting FontAtlas
2022-04-05 17:57:09 -07:00
Mitchell Hashimoto
c4fb335a6b
zig native atlas implementation
2022-04-05 12:04:10 -07:00
Mitchell Hashimoto
27f3e89316
Makefile with task for updating glad
2022-04-04 14:52:47 -07:00
Mitchell Hashimoto
c6f1be3343
move from epoxy to glad
2022-04-04 14:35:19 -07:00
Mitchell Hashimoto
c42bf7c663
build freetype-gl
2022-04-04 14:14:20 -07:00
Mitchell Hashimoto
1a40544220
gb_math
2022-04-04 11:11:24 -07:00
Mitchell Hashimoto
e0b2aefad0
cglm
2022-04-04 09:51:58 -07:00
Mitchell Hashimoto
670af17a1b
getting closer to dumb font rendering
2022-04-03 22:04:42 -07:00
Mitchell Hashimoto
66c50b3815
don't build stb
2022-04-03 20:40:35 -07:00
Mitchell Hashimoto
3cb5dae9d8
fontconfig example
2022-04-03 20:08:29 -07:00
Mitchell Hashimoto
529a2c924c
build freetype from source
2022-04-03 13:40:21 -07:00
Mitchell Hashimoto
02848a0535
stb
2022-04-01 19:45:05 -07:00
Mitchell Hashimoto
387b0ff4a8
setup opengl
2022-04-01 10:49:54 -07:00
Mitchell Hashimoto
cf956575c4
use waiting rather than polling on window
2022-03-31 17:51:00 -07:00
Mitchell Hashimoto
a78e1894f8
minimal raylib window
2022-03-31 17:27:07 -07:00
Mitchell Hashimoto
83e5252c52
basics of setting up webgpu are up
2022-03-30 21:07:21 -07:00
Mitchell Hashimoto
b23136fdaa
build gpu-dawn
2022-03-30 17:36:18 -07:00
Mitchell Hashimoto
112b13ae4d
build mach-glfw
2022-03-30 11:38:06 -07:00
Mitchell Hashimoto
b8cee0a39e
initial glfw stuff working
2022-03-29 10:38:10 -07:00