Skip to content

Releases: lubomirklimes/TSharpVision

TSharpVision 1.0.0

Choose a tag to compare

@github-actions github-actions released this 23 Oct 19:14

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) in controlKeyState represents 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 is kbF5 and Ctrl+Meta+F5 is kbCtrlF5, 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 as evModifierChanged.
  • SDL: left and right GUI keys (Command / Windows / Super) set kbMetaShift, including standalone transitions, on
    both SDLDriver and SDLGpuDriver.
  • ANSI terminal: an xterm/CSI modifier parameter with the Meta bit (8), including SS3 function keys, and Kitty's
    Super modifier set kbMetaShift; 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 writes tsharpvision-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 of fontSize are 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_VSYNC now accepts its
    values in any case, TSHARPVISION_DRIVER ignores 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_DRIVER and [driver] name: sdl selects SDLGpuDriver, and
    console and terminal select the platform's native text driver (Win32ConsoleDriver on Windows,
    AnsiTerminalDriver on Linux and macOS), so one configuration file works on every OS. Exact driver names select
    exactly that driver. Automatic selection now prefers SDLGpuDriver over SDLDriver; SDLDriver stays 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:

dotnet add package TSharpVision --version 1.0.0

Demo 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

Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Oct 16:49

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.FontFitMode and GraphicsDriverConfiguration.FontFit get/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:

dotnet add package TSharpVision --version 1.0.0-rc.4

Demo 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

Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Oct 16:25

TSharpVision 1.0.0-rc.3

  • TButton draws 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 and TDialog are unchanged; TWindow.GetPalette() now has 32 entries.

NuGet

Packages are available from NuGet.org, the canonical package distribution location:

dotnet add package TSharpVision --version 1.0.0-rc.3

Demo 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

Pre-release

Choose a tag to compare

@github-actions github-actions released this 16 Oct 17:26
93af4d3

TSharpVision 1.0.0-rc.2

  • Added optional IIdleWaitDriver support and the protected TProgram.GetIdleWaitTimeout() extension point:
    idle loops wait for input, posted work or application deadlines, including in modal dialogs and menus.
    Applications with periodic Idle() 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:

dotnet add package TSharpVision --version 1.0.0-rc.2

Demo 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.