Repository navigation
Releases: lubomirklimes/TSharpVision
Release list
TSharpVision 1.0.0
TSharpVision 1.0.0
First stable release of TSharpVision. It contains everything in the 1.0.0 release candidates below, and the public
API baseline of all eight packages is now shipped, with no pending Unshipped entries. Changes since 1.0.0-rc.4:
Keyboard and input
- Added a cross-platform Meta modifier:
Keys.kbMetaShift(0x0100) incontrolKeyStaterepresents Command on macOS,
the Windows key and Linux Super. It combines with Shift, Ctrl, Alt and the lock states; there is no separate Meta
key-code family, so Meta+F5 iskbF5and Ctrl+Meta+F5 iskbCtrlF5, each with the full modifier state. Existing
key codes, masks and the Alt > Ctrl > Shift key-code precedence are unchanged. - Added
KeyboardCapabilities.StandaloneMetaTransitions: a driver that advertises it reports Meta presses and
releases on their own asevModifierChanged. - SDL: left and right GUI keys (Command / Windows / Super) set
kbMetaShift, including standalone transitions, on
bothSDLDriverandSDLGpuDriver. - ANSI terminal: an xterm/CSI modifier parameter with the Meta bit (8), including SS3 function keys, and Kitty's
Super modifier setkbMetaShift; with the full Kitty protocol, standalone Super transitions are reported too.
ESC-prefixed text is still Alt, and Kitty's separate Hyper and Meta modifiers are not mapped. The Win32 console
reports no Meta state. - The opt-in input trace is enabled by
TSHARPVISION_TRACE_INPUT=1, as documented (the mixed-case name it read
before is still accepted), and always writestsharpvision-input-trace.log, in lowercase, in the working directory.
SDL
- Both SDL drivers render at the display's native pixel density (Retina / HiDPI). Glyphs are rasterised at the
configured font size times the density, and box drawing, shading, cursor and underline are drawn at drawable
resolution, so text and frames are sharp instead of being magnified from a 1× surface. The column/row grid, window
size in points and the meaning offontSizeare unchanged. - When the window's pixel density changes, for example on a display with a different scale, the drivers
re-rasterise glyphs without a restart; mouse positions are converted from window coordinates to cells at the
current density. - Mouse-wheel and trackpad scrolling follow the operating system's scrolling preference, such as macOS natural
scrolling, vertically and horizontally. Previously, the SDL drivers reversed the direction whenever SDL reported a
flipped device. Both drivers share the same wheel translation; scrolling speed is unchanged. - Environment variables are documented in
docs/environment-variables.md.TSHARPVISION_SDL_VSYNCnow accepts its
values in any case,TSHARPVISION_DRIVERignores surrounding whitespace, and the SDL headless switch is spelled
TSHARPVISION_NO_SDL(the mixed-case name is still accepted).
Driver selection
- Driver selection is the same for
TSHARPVISION_DRIVERand[driver] name:sdlselectsSDLGpuDriver, and
consoleandterminalselect the platform's native text driver (Win32ConsoleDriveron Windows,
AnsiTerminalDriveron Linux and macOS), so one configuration file works on every OS. Exact driver names select
exactly that driver. Automatic selection now prefersSDLGpuDriveroverSDLDriver;SDLDriverstays available
by name.
Samples
- TVDemo: Diagnostics > Function keys shows which of F1–F10 arrive with no modifier, Shift, Ctrl, Alt/Option and
Cmd/Meta on the active driver, with live event details, so a terminal's keyboard limits are easy to see.
NuGet
Packages are available from NuGet.org, the canonical package distribution location:
- TSharpVision
- TSharpVision.CodeEditor
- TSharpVision.Drivers.Console
- TSharpVision.Drivers.SDL
- TSharpVision.Drivers.Terminal
- TSharpVision.HexView
- TSharpVision.TableView
- TSharpVision.Terminal
dotnet add package TSharpVision --version 1.0.0Demo downloads
- Windows x64: TVDemo-1.0.0-win-x64.zip
- Linux x64: TVDemo-1.0.0-linux-x64.tar.gz
- macOS Intel: TVDemo-1.0.0-osx-x64.tar.gz
- macOS Apple Silicon: TVDemo-1.0.0-osx-arm64.tar.gz
Extract the archive and run TSharpVision.Samples.TVDemo.exe on Windows, or
./TSharpVision.Samples.TVDemo from a terminal on Linux/macOS. The distributions
are self-contained and do not require a separately installed .NET runtime.
SHA256SUMS.txt contains SHA-256 checksums for all four demo archives.
macOS binaries are unsigned/not notarized; Gatekeeper may warn. Windows binaries
are unsigned and SmartScreen may warn. The bundled configuration selects the SDL driver, which
requires a compatible display and system graphics libraries; set TSHARPVISION_DRIVER to
Win32ConsoleDriver (Windows) or AnsiTerminalDriver (Linux/macOS) to run in a console or terminal.
Built from tagged commit 7600d31.
TSharpVision 1.0.0-rc.4
TSharpVision 1.0.0-rc.4
Pending release.
- TFrame: fix title rendering at very small widths, including bounds safety and Unicode surrogate-safe truncation.
- TMenuView: fix menu command enable/disable synchronization, including broadcasts and initial state refresh when opening menus.
- SDL: share cell-sized glyph masks between the 2D renderer and GPU shader/CPU-composite paths, preserving Czech accents and descenders with consistent baselines, colors and cell geometry.
- SDL: add
[graphics] fontFit=Condense|Uniform, defaulting to Condense. Uniform measures one common ordinary-text size using the complete Czech uppercase/lowercase repertoire; rare compatibility letters and exceptional Unicode outliers retain individual fitting. - Configuration: add public
TSharpVision.Config.FontFitModeandGraphicsDriverConfiguration.FontFitget/init, with programmatic configuration, case-insensitive cfg values and user/application precedence. Invalid cfg values report a clear error. - SDL GPU: declare the glyph fragment shader atlas sampler in shadercross metadata, correcting Vulkan initialization while preserving the D3D12 path and existing shader resources.
- SDL: disable the synthetic quit following the last native window close, retaining genuine OS quit events, application veto/confirmation and graceful cleanup.
- Modified TVDemo editors now display the standard Save/Discard/Cancel confirmation, including during application shutdown.
- Canceling application shutdown after an earlier Don't Save choice no longer leaves unsaved documents incorrectly marked clean.
NuGet
Packages are available from NuGet.org, the canonical package distribution location:
- TSharpVision
- TSharpVision.CodeEditor
- TSharpVision.Drivers.Console
- TSharpVision.Drivers.SDL
- TSharpVision.Drivers.Terminal
- TSharpVision.HexView
- TSharpVision.TableView
- TSharpVision.Terminal
dotnet add package TSharpVision --version 1.0.0-rc.4Demo downloads
- Windows x64: TVDemo-1.0.0-rc.4-win-x64.zip
- Linux x64: TVDemo-1.0.0-rc.4-linux-x64.tar.gz
- macOS Intel: TVDemo-1.0.0-rc.4-osx-x64.tar.gz
- macOS Apple Silicon: TVDemo-1.0.0-rc.4-osx-arm64.tar.gz
Extract the archive and run TSharpVision.Samples.TVDemo.exe on Windows, or
./TSharpVision.Samples.TVDemo from a terminal on Linux/macOS. The distributions
are self-contained and do not require a separately installed .NET runtime.
SHA256SUMS.txt contains SHA-256 checksums for all four demo archives.
macOS binaries are unsigned/not notarized; Gatekeeper may warn. Windows binaries
are unsigned and SmartScreen may warn. Graphical SDL drivers require a compatible
display and system graphics libraries; the bundled configuration selects the console/terminal driver.
Built from tagged commit 6d34ae4.
TSharpVision 1.0.0-rc.3
TSharpVision 1.0.0-rc.3
TButtondraws its shadow cells on the owner's surface background (owner palette entry 1), keeping the shadow
role's foreground. Buttons on a blue, cyan or custom-palette parent no longer show gray cells beside and below the
face; standard gray dialogs render identically.- Dialog controls (buttons, clusters, input lines, history, lists) now resolve their colors inside a plain
TWindow:
the blue, cyan and gray window palettes gained entries 9–32 that reuse existing application roles, instead of
rendering the error attribute. Entries 1–8 andTDialogare unchanged;TWindow.GetPalette()now has 32 entries.
NuGet
Packages are available from NuGet.org, the canonical package distribution location:
- TSharpVision
- TSharpVision.CodeEditor
- TSharpVision.Drivers.Console
- TSharpVision.Drivers.SDL
- TSharpVision.Drivers.Terminal
- TSharpVision.HexView
- TSharpVision.TableView
- TSharpVision.Terminal
dotnet add package TSharpVision --version 1.0.0-rc.3Demo downloads
- Windows x64: TVDemo-1.0.0-rc.3-win-x64.zip
- Linux x64: TVDemo-1.0.0-rc.3-linux-x64.tar.gz
- macOS Intel: TVDemo-1.0.0-rc.3-osx-x64.tar.gz
- macOS Apple Silicon: TVDemo-1.0.0-rc.3-osx-arm64.tar.gz
Extract the archive and run TSharpVision.Samples.TVDemo.exe on Windows, or
./TSharpVision.Samples.TVDemo from a terminal on Linux/macOS. The distributions
are self-contained and do not require a separately installed .NET runtime.
SHA256SUMS.txt contains SHA-256 checksums for all four demo archives.
macOS binaries are unsigned/not notarized; Gatekeeper may warn. Windows binaries
are unsigned and SmartScreen may warn. Graphical SDL drivers require a compatible
display and system graphics libraries; the bundled configuration selects the console/terminal driver.
Built from tagged commit aabedc3.
TSharpVision 1.0.0-rc.2
TSharpVision 1.0.0-rc.2
- Added optional
IIdleWaitDriversupport and the protectedTProgram.GetIdleWaitTimeout()extension point:
idle loops wait for input, posted work or application deadlines, including in modal dialogs and menus.
Applications with periodicIdle()work should override the deadline hook; continuous invocation is no longer promised. - Fixed quit and shutdown wakeups during modal execution and kept SDL GPU resources alive until the render worker stops.
- Fixed blank screens after unchanged-size resize notifications, redundant console resize handling, and flicker when reordering views.
- Reduced driver discovery overhead by inspecting assembly metadata before loading unrelated libraries.
- Made editor saves replace the destination only after writing succeeds, preserving existing files on encoding/write failures,
and fixed saving Unicode surrogate pairs split by the editor's gap buffer. - Fixed standalone Escape timing, bounded malformed terminal mouse input, and prevented control characters in cells from injecting terminal commands.
- Released HexView and TableView read cancellation resources after completion while keeping active request tokens valid during shutdown.
NuGet
Packages are available from NuGet.org, the canonical package distribution location:
- TSharpVision
- TSharpVision.CodeEditor
- TSharpVision.Drivers.Console
- TSharpVision.Drivers.SDL
- TSharpVision.Drivers.Terminal
- TSharpVision.HexView
- TSharpVision.TableView
- TSharpVision.Terminal
dotnet add package TSharpVision --version 1.0.0-rc.2Demo downloads
- Windows x64: TVDemo-1.0.0-rc.2-win-x64.zip
- Linux x64: TVDemo-1.0.0-rc.2-linux-x64.tar.gz
- macOS Intel: TVDemo-1.0.0-rc.2-osx-x64.tar.gz
- macOS Apple Silicon: TVDemo-1.0.0-rc.2-osx-arm64.tar.gz
Extract the archive and run TSharpVision.Samples.TVDemo.exe on Windows, or
./TSharpVision.Samples.TVDemo from a terminal on Linux/macOS. The distributions
are self-contained and do not require a separately installed .NET runtime.
SHA256SUMS.txt contains SHA-256 checksums for all four demo archives.
macOS binaries are unsigned/not notarized; Gatekeeper may warn. Windows binaries
are unsigned and SmartScreen may warn. Graphical SDL drivers require a compatible
display and system graphics libraries; the bundled configuration selects the console/terminal driver.
Built from tagged commit 93af4d3.