v0.13.0: Rendering pipeline with framebuffer backend
New module: src/rendering/framebuffer.lisp (tangled from org/framebuffer.org) - framebuffer-backend class: implements backend protocol by writing to 2D cell array instead of emitting escape sequences - cell struct: per-cell state (char, fg, bg, bold, italic, underline, link-url) - make-framebuffer / framebuffer-width / framebuffer-height - draw-text, draw-rect, draw-border, draw-link, draw-ellipsis methods - diff-framebuffers: compares two framebuffers, returns changed cells - flush-framebuffer: diff + output changes to real backend - with-scissor macro: clip drawing operations to rectangle - cursor-move: added default no-op method for all backends - 20 new tests, all passing (372 total) Version bumped from 0.11.0 to 0.13.0. License field set to GPL-3.0 in ASDF.
This commit is contained in:
15
cl-tty.asd
15
cl-tty.asd
@@ -2,8 +2,8 @@
|
||||
(asdf:defsystem :cl-tty
|
||||
:description "Reusable Common Lisp Terminal UI Framework"
|
||||
:author "Amr Gharbeia"
|
||||
:version "0.11.0"
|
||||
:license "TBD"
|
||||
:version "0.13.0"
|
||||
:license "GPL-3.0"
|
||||
:depends-on (:fiveam :sb-posix)
|
||||
:components
|
||||
((:module "backend"
|
||||
@@ -16,6 +16,9 @@
|
||||
(:module "layout"
|
||||
:components
|
||||
((:file "layout")))
|
||||
(:module "src/rendering"
|
||||
:components
|
||||
((:file "framebuffer")))
|
||||
(:module "src/components"
|
||||
:components
|
||||
((:file "package")
|
||||
@@ -74,7 +77,10 @@
|
||||
(:file "markdown-tests" :pathname "../../tests/markdown-tests")
|
||||
(:file "dialog-tests" :pathname "../../tests/dialog-tests")
|
||||
(:file "mouse-tests" :pathname "../../tests/mouse-tests")
|
||||
(:file "slot-tests" :pathname "../../tests/slot-tests"))))
|
||||
(:file "slot-tests" :pathname "../../tests/slot-tests")))
|
||||
(:module "src/rendering"
|
||||
:components
|
||||
((:file "framebuffer-tests" :pathname "../../tests/framebuffer-tests"))))
|
||||
:perform (test-op (o c)
|
||||
(let ((run (find-symbol "RUN" :fiveam))
|
||||
(explain (find-symbol "EXPLAIN!" :fiveam)))
|
||||
@@ -88,7 +94,8 @@
|
||||
(:cl-tty-mouse-test "MOUSE-SUITE")
|
||||
(:cl-tty-slot-test "SLOT-SUITE")
|
||||
(:cl-tty-layout-test "LAYOUT-SUITE")
|
||||
(:cl-tty-modern-backend-test "MODERN-BACKEND-SUITE")))
|
||||
(:cl-tty-modern-backend-test "MODERN-BACKEND-SUITE")
|
||||
(:cl-tty-framebuffer-test "FRAMEBUFFER-SUITE")))
|
||||
(let* ((pkg (find-package (first suite)))
|
||||
(suite-name (second suite))
|
||||
(s (cond (suite-name (find-symbol suite-name pkg))
|
||||
|
||||
Reference in New Issue
Block a user