Commit graph

364 commits

Author SHA1 Message Date
Leroy Hopson
3f24fa9bf0
Handle multiple font styles
Adds support for font styles other than normal, such as bold, italics,
and bold italics.
2024-02-10 17:15:44 +13:00
Leroy Hopson
fb3fb6855c
Make intentionality of switch fallthrough clear 2024-02-10 16:36:48 +13:00
Leroy Hopson
6b1c9d818a
Rename enum AttrFlags -> AttrFlag 2024-02-10 15:53:03 +13:00
Leroy Hopson
f4c80e6201
Use custom libtsm version sans problematic commit
Use updated custom version of libtsm without commit which causes strange
behavior when rezining the Terminal control node.
2024-02-10 00:51:15 +13:00
Leroy Hopson
575c3875b6
Implement get_cursor_pos() 2024-02-07 23:14:52 +13:00
Leroy Hopson
8c30bec861
Add support for two different inverse modes
- Inverse mode invert (default) will invert the color in shader.
- Inverse mode swap will simply swap the foreground and background
  colors. This is the default behavior of libtsm and GodotXterm v3.
2024-02-07 23:03:11 +13:00
Leroy Hopson
930f3ef352
Expose blink_on_time and blink_off_time properties 2024-02-07 22:26:45 +13:00
Leroy Hopson
7de5e2a835
Restore terminal.gd for referencing 2024-02-07 22:03:41 +13:00
Leroy Hopson
8b320622f9
Use shader include for fore/background shaders
The two shaders use a lot of common logic for co-ordinate and attribute
look up, so it makes sense to use a common include shader for both.

Adds support for the inverse and blink attributes to the foreground shader.
2024-02-07 21:59:01 +13:00
Leroy Hopson
a849423096
Rewrite terminal.cpp
Rewrites the Terminal class as a GDExtension to be used directly in
Godot without a terminal.gd proxy.

Breaks a lot of things in its current state (e.g. signals and other
functions have not be implemented yet), but does add support for
transparent colors and true color inversion. It also seems to
be about 4x faster (FPS-wise) than the old version with some basic
stress testing.

Old source code has been moved to a different directory to be copied
over and/or rewritten piece by piece.
2024-02-07 00:14:33 +13:00
Leroy Hopson
7d2e22530e
Update libtsm 2024-02-06 23:56:21 +13:00
Leroy Hopson
f98921dc7e
Add a Justfile
Can now easily run the build command with `just build` from anywhere in
the repo.
2024-02-06 23:56:06 +13:00
Leroy Hopson
14db14679f
chore: add .import files 2024-02-06 23:56:06 +13:00
Leroy Hopson
f694544834
Remove unused code 2024-01-07 11:07:20 +13:00
Leroy Hopson
33ca5b3af7
Change build options
- Removes --disable-pty build option.
- Sets debug_symbols="yes" when build target is debug.
2024-01-07 11:06:26 +13:00
Leroy Hopson
cea41d6567
Update GUT to version 9.1.1 2024-01-06 23:33:15 +13:00
Leroy Hopson
b18726eac9
Pin nixpkgs version 2024-01-06 23:22:39 +13:00
Leroy Hopson
fac6361898
Upgrade min compatible Godot version to 4.2.1 2024-01-06 23:22:34 +13:00
Leroy Hopson
52a89827c9
Allow script loading when compiled with PTY_DISABLED 2024-01-06 23:16:52 +13:00
Leroy Hopson
893c768f75
Update gdtoolkit to version 4.2.2 2024-01-06 23:11:04 +13:00
Leroy Hopson
b575895aa7
Update gdtoolkit to version 3.5.0 2024-01-06 22:59:48 +13:00
Leroy Hopson
11ed797005
Update godot-cpp to match Godot v4.0-rc1 API
Usage of VARIANT_ENUM_CAST has changed.
2023-02-12 10:53:34 +13:00
Leroy Hopson
f36f1db315
Allow SCONS_CACHE env var in pure nix environment 2023-02-12 10:53:34 +13:00
Leroy Hopson
1367133b25
Wait for asset import before build
Generally asset import will finish before build.
2023-01-26 08:30:17 +13:00
Leroy Hopson
cbc13fa32c
Use wait-for rather than needs
Allows test jobs to start long-running steps before other jobs on which
it depends have completed.
2023-01-26 08:21:47 +13:00
Leroy Hopson
26aa4765d1
Create separate job to import assets
Uses upload-artifact to share them with other jobs but deletes them when
done.
2023-01-26 08:21:47 +13:00
Leroy Hopson
2ba480b4da
Update build files and GitHub Actions workflow 2023-01-26 08:21:43 +13:00
Leroy Hopson
237a456f99
Automatic editor updates 2023-01-26 07:12:46 +13:00
Leroy Hopson
ec64136d84
Update .import files 2023-01-26 07:05:37 +13:00
Leroy Hopson
ca7f161c87
Fix DirAccess usage 2023-01-26 07:04:49 +13:00
Leroy Hopson
7ac180d431
Set non-zero exit code if tests fail 2023-01-26 07:04:19 +13:00
Leroy Hopson
98b42733fb
Fix tests
Part of #66. Many tests still failing.
2023-01-21 15:36:03 +13:00
Leroy Hopson
6d17c574b3
Remove shell.nix 2023-01-21 15:36:03 +13:00
Leroy Hopson
15e5b2b8c7
Remove references to terminal.gd 2023-01-21 15:33:56 +13:00
Leroy Hopson
e563a15ce2
Format files using GDScript Toolkit 2023-01-21 15:33:25 +13:00
Leroy Hopson
9f269aec8c
Make update_modue a dropdown in editor inspector
Closes #61.
2023-01-21 11:03:22 +13:00
Leroy Hopson
9c7c5e1c17
Reorder methods 2023-01-21 10:37:26 +13:00
Leroy Hopson
754a20b1c3
Remove unused include 2023-01-21 10:18:26 +13:00
Leroy Hopson
949c7650bd
Update GUT 2023-01-21 10:12:47 +13:00
Leroy Hopson
dee6d537c0
Update godot-cpp for Godot v4.0-beta12 2023-01-14 22:38:17 +13:00
Leroy Hopson
c115c34e6c
Fix some errors preventing running of the main scene 2023-01-14 22:36:25 +13:00
Leroy Hopson
8d56b5659a
Re-enable building of godot-cpp dependency 2023-01-14 22:35:30 +13:00
Leroy Hopson
a26320d9a5
Automatic editor updates
Automatic updates performed by the editor after opening files in Godot
v4.0-beta12.
2023-01-14 22:34:24 +13:00
Leroy Hopson
cf0a64dc09
Use non-specific version of CMake on macOS
Although this results in a warning of multiple matches due to the
existence of 3.23.2-macos-universal.dmg and 3.23.2-macos10.10-universal.dmg
the setup-cmake action doesn't work if we try to specify a more specific
version.
2023-01-11 08:35:03 +13:00
Leroy Hopson
7796afa3c0
Update workflow to address warnings
- Upgrades actions using Node.js 12 to versions using Node.js 16.
- Updates deprecated set-output command.
- Specifies more specific version of CMake on macOS runner.
2023-01-11 08:19:10 +13:00
Leroy Hopson
ad7f97e493
Further progress towards Godot 4.0 support
- Primary example scenes (menu, terminal, and asciicast) working but
  still a lot of warning/error messages and some regressions.
- Editor integrated terminal works, but still a lot of warning/error
  messages and some regressions.
- Added support for "blink" display attribute.
- Removed GDScript terminal code. Terminal node is now purely a
  GDExtension. So is LibuvUtils.
- GUT tests not working yet.
- Still a lot of things to fix.
- So far, only built for and manually tested on Linux x86_64.
2023-01-08 22:45:18 +13:00
Leroy Hopson
aad8e39dae
Update themes 2023-01-08 21:36:42 +13:00
Leroy Hopson
5be45b0ecf
Upgrade GDScript toolkit for Godot 4 2023-01-08 21:36:42 +13:00
Leroy Hopson
b5d3c6c9a5
Update Gut for Godot 4
Copied from Gut repo godot_4 branch commit:
ba19a4c1b6f88160641a67a39729144046c6391f
2023-01-08 21:36:37 +13:00
Leroy Hopson
44f7e3801c
Convert from GDNative to GDExtension
Work in progress.
2022-12-29 22:54:38 +13:00