Skip to content

modules-v0.2.0-alpha

Choose a tag to compare

@knoxhack knoxhack released this 21 Jun 13:24

Release modules-v0.2.0-alpha

Highlights

  • ScreenCore render-loop optimization: per-component dirty flags eliminate full-tree redraws and cut the text-layer flush from two per frame to one.
  • Force ECHO Terminal to always use the ScreenCore renderer across all editions; legacy EchoTerminalScreen is deprecated and unreachable by default.

ScreenCore

  • Added dirty/subtreeDirty flags to AbstractEchoComponent with automatic propagation up to parent components.
  • State changes (bounds, style, dataContext, hover, focus, scrollOffset) now compare values before marking dirty.
  • Component render paths skip unchanged subtrees and only call renderSelf() when the component itself changed.
  • EchoScreenEngine.render() performs a single textLayer.flush() per frame.
  • EchoOverlayManager.openModal(...) marks the opened modal dirty so it renders immediately.

Terminal

  • TerminalScreenCoreBridge.shouldUseScreenCoreTerminal() now returns true whenever ScreenCore is present and enabled.
  • Primary provider no longer falls back to EchoTerminalScreen.
  • EchoTerminalScreens.create() default fallback is now TerminalScreenCoreScreen.
  • Native route fallback surface/bridge now points to TerminalScreenCoreScreen/TerminalScreenCoreBridge.
  • Removed terminal.open_legacy_renderer action and the openLegacyRenderer() methods.
  • EchoTerminalScreen is marked @Deprecated.

Validation

  • ./gradlew :echoscreencore:compileJava :echoterminal:compileJava — BUILD SUCCESSFUL.
  • ./gradlew :echoscreencore:test :echoterminal:test — BUILD SUCCESSFUL.

Modules released

  • echoscreencore
  • echoterminal