75 Commits

Author SHA1 Message Date
189d00965a Update to Compose alpha10 2021-01-16 11:57:55 -05:00
0967fd24c4 Rewrite TextSurface/TextCanvas
Eventually this will be upstreamed to Crossword, but for now it unblocks a bunch of other features like padding, box colors, even modifiers.
2021-01-01 02:02:47 -05:00
9f2fb488de Destroy abstractions
These were built for testing purposes, but it is unclear what testing will look like. Right now they just stand in the way of simplifying and debugging Compose internals.
2020-12-30 23:27:23 -05:00
e56dee2904 Compose alpha09
What have I done...? Must clean up this nonsense.
2020-12-30 22:40:12 -05:00
a8cefa92cb Add archivesBaseName for uniqueness
We do not want to clash with anyone having a module named "compose" or "yoga" downstream.
2020-12-30 21:50:22 -05:00
a3a6679afa Correctly pass children to Compose emit function 2020-12-15 16:29:51 -05:00
0bd92a88c9 Update to Compose alpha08 2020-12-04 23:27:02 -05:00
38edc191ae Add additional sample "Robot"
This matches the use-input sample from Ink, although I may go full Snake on this in the future.
2020-11-21 01:38:38 -05:00
e0ed21cdaa Upgrade to Jansi 2.0
As part of the change, stop installing it globally in System.out. Instead, reference its output wrapper directly.
2020-11-20 23:06:29 -05:00
f540538c00 Fix my name 2020-11-20 22:20:04 -05:00
51464b9523 Update to Compose alpha07
Also add (basic) validation that the submodule version matches the runtime version.
2020-11-20 13:09:42 -05:00
9f896ccbff Validate submodules during configuration
Not great, but it ensures the check runs before any task. In the case of Yoga, the core and jni subprojects would try to run and fail before the check with the previous setup.
2020-11-20 13:04:04 -05:00
dee35c4e0a Link examples from README 2020-11-19 15:49:36 -05:00
b35b681377 Push snapshots from CI 2020-11-19 15:48:17 -05:00
4e9a653e14 Add Maven deployment infrastructure 2020-11-19 15:43:29 -05:00
5f62fd0cae Remove intermediate Yoga java module 2020-11-19 15:35:34 -05:00
4d66b499e0 Switch Compose module to JVM only
This will make deployment simpler as we do not need the multiplatform capabilities at all.
2020-11-19 14:01:57 -05:00
1a0d5e2bb3 Explicitly flush after write
This ensures the trailing line clear, which is not suffixed with a newline, is processed.
2020-10-28 23:07:20 -04:00
add06e80c3 Upgrade to Compose alpha 6 2020-10-28 16:37:43 -04:00
153e254467 Ensure final frame is rendered
...using some not-so-pretty yields...
2020-10-28 10:07:00 -04:00
59431ddd12 Ignore flaky test for now 2020-10-27 16:39:57 -04:00
0384c6b1e6 Revert "Use asciinema-vsync to process asciinema before making SVGs"
This reverts commit 8b482322d03aa842d1be213221539362a45f7aac.
2020-10-27 16:27:26 -04:00
bc8af5799a Write frames as a byte array to avoid buffering 2020-10-27 16:24:44 -04:00
8b482322d0 Use asciinema-vsync to process asciinema before making SVGs 2020-10-22 11:52:09 -04:00
8bde18a8e2 Do not emit trailing newline when clearing old lines 2020-10-21 11:06:19 -04:00
0fced024f5 Deterministic Jest output 2020-10-20 17:08:16 -04:00
ce9db14cb0 Check for svg-term and fail gracefully 2020-10-20 11:19:06 -04:00
733610b7a8 Prevent most flickering while rendering
Instead of moving the cursor up and clearing each line before rendering the output, move to the top first, print each line, and then clear the rest of the line to erase old output. This avoids the case where all lines are empty for a few milliseconds as the sequences are being parsed.
2020-10-20 11:10:09 -04:00
bb9d698e57 Add a script to update example READMEs with output 2020-10-20 00:15:16 -04:00
fab94b81bf Reduce dependency on jansi 2020-10-20 00:12:28 -04:00
bb08e710c4 Replace launchInComposition with LaunchedTask 2020-10-19 22:09:57 -04:00
076414d022 Inline render.kt function 2020-10-14 14:53:34 -04:00
6962b01fcd Update to Compose alpha 5 2020-10-14 14:14:44 -04:00
e5dcd8a390 Emit fewer ANSI control sequences
Group together the attributes of a single text entry into a single sequence.
2020-10-14 14:01:10 -04:00
bd0de027ad Add support for foreground and background color 2020-10-13 16:00:24 -04:00
207ed2afb8 Send frame as single buffer to reduce judder 2020-10-12 21:48:10 -04:00
d804ee0341 Add text styles 2020-10-12 21:35:12 -04:00
fa53cbe1f0 Put nodes in charge of rendering themselves 2020-10-11 23:18:24 -04:00
c5dff2a559 Update to Crossword 0.1.2
Adds support for zero-sized canvas which is required if your first real frame is delayed.
2020-10-10 22:19:41 -04:00
aa45b3c0ae Test Applier and implement move 2020-10-10 21:45:20 -04:00
842974f825 Upgrade to Compose alpha 4 2020-10-01 15:21:21 -04:00
dbe03d45b5 Add high-level DSL entrypoint
This handles blocking the caller thread, setting up the coroutine scope for work, and waiting for the final frame to render.

Also add a new simple example (although it's partially broken since the final frame is missing).
2020-09-25 14:21:21 -04:00
93c990f30d Set frame delay to 50ms
At 20fps you can see consistent changes which occur at 250ms, 200ms, and 100ms intervals which are common.
2020-09-25 14:13:43 -04:00
81abb18d1b Expose setting the content on a Mosaic instance 2020-09-25 13:27:55 -04:00
2175f13826 Only wait for the next frame if there are pending changes 2020-09-25 12:46:26 -04:00
ca42e5789a Correct toString output
Whoops.
2020-09-25 12:42:20 -04:00
e485daa34c Solve the final frame problem by returning a handle
With this you can wait for the next render before canceling to ensure that the final state is correctly sent to output.
2020-09-25 12:10:55 -04:00
9b1880fe47 Create an object to represent a mosaic
This will let it be driven in tests in a deterministic manner.
2020-09-25 11:43:41 -04:00
b6fdfc25ce Simplify Jest example by conforming to standard Gradle layout 2020-09-24 22:47:30 -04:00
cef0977d95 Split frame rendering from stdout rendering
This is a first step on the way to test-driven Mosaic compositions.
2020-09-24 22:44:32 -04:00