Skip to content

Commit

Permalink
add left-border support to sdl2
Browse files Browse the repository at this point in the history
  • Loading branch information
cxxxr committed Nov 28, 2024
1 parent 7ea9a49 commit 85bb88d
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 15 deletions.
23 changes: 13 additions & 10 deletions frontends/sdl2/display.lisp
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@
(set-render-color display color)
(sdl2:render-fill-rect (display-renderer display) rect)))

(defmethod render-border ((display display) x y w h &key without-topline)
(defmethod render-border ((display display) x y w h &key border-type)
(let* ((x1 (- (* x (display-char-width display)) (floor (display-char-width display) 2)))
(y1 (- (* y (display-char-height display)) (floor (display-char-height display) 2)))
(x2 (1- (+ x1 (* (+ w 1) (display-char-width display)))))
Expand All @@ -256,15 +256,18 @@
(downleft x1 y2)
(downright x2 y2)
(upright x2 y1))
(if without-topline
(progn
(set-render-color display (display-foreground-color display))
(sdl2:render-draw-lines (display-renderer display) (sdl2:points* downleft upleft) 2)
(set-render-color display (display-foreground-color display))
(sdl2:render-draw-lines (display-renderer display) (sdl2:points* upleft upright) 2))
(progn
(set-render-color display (display-foreground-color display))
(sdl2:render-draw-lines (display-renderer display) (sdl2:points* downleft upleft upright) 3)))
(case border-type
(:drop-curtain
(set-render-color display (display-foreground-color display))
(sdl2:render-draw-lines (display-renderer display) (sdl2:points* downleft upleft) 2)
(set-render-color display (display-foreground-color display))
(sdl2:render-draw-lines (display-renderer display) (sdl2:points* upleft upright) 2))
(:left-border
(set-render-color display (display-foreground-color display))
(sdl2:render-draw-lines (display-renderer display) (sdl2:points* downleft upleft) 2))
(otherwise
(set-render-color display (display-foreground-color display))
(sdl2:render-draw-lines (display-renderer display) (sdl2:points* downleft upleft upright) 3)))
(set-render-color display (display-foreground-color display))
(sdl2:render-draw-lines (display-renderer display) (sdl2:points* upright downright downleft) 3))))

Expand Down
10 changes: 5 additions & 5 deletions frontends/sdl2/view.lisp
Original file line number Diff line number Diff line change
Expand Up @@ -105,11 +105,11 @@
(< 0 (lem:floating-window-border window)))
(sdl2:set-render-target (display:display-renderer display) (display:display-texture display))
(display:render-border display
(lem:window-x window)
(lem:window-y window)
(lem:window-width window)
(lem:window-height window)
:without-topline (eq :drop-curtain (lem:floating-window-border-shape window)))))
(lem:window-x window)
(lem:window-y window)
(lem:window-width window)
(lem:window-height window)
:border-type (lem:floating-window-border-shape window))))

(defmethod draw-window-border (view display (window lem:window))
(when (< 0 (lem:window-x window))
Expand Down

0 comments on commit 85bb88d

Please sign in to comment.