fortrangoingonforty/fgof-screen / 357e88f

Browse files

Add screen examples

Authored by espadonne
SHA
357e88fcd489203975131498fd0ee92c4330d11e
Parents
630de86
Tree
517abe1

3 changed files

StatusFile+-
A example/diff_render_demo.f90 25 0
A example/full_render_demo.f90 25 0
M fpm.toml 1 1
example/diff_render_demo.f90added
@@ -0,0 +1,25 @@
1
+program diff_render_demo
2
+  use fgof_screen, only : allocate_screen, diff_screen, put_glyph, render_screen_diff_ansi, set_cursor
3
+  use fgof_screen_types, only : screen_buffer, screen_diff
4
+  implicit none
5
+
6
+  type(screen_buffer) :: previous
7
+  type(screen_buffer) :: current
8
+  type(screen_diff) :: diff
9
+  character(len=:), allocatable :: rendered
10
+
11
+  previous = allocate_screen(3, 1)
12
+  call put_glyph(previous, 1, 1, "A")
13
+  call put_glyph(previous, 1, 2, "B")
14
+  call put_glyph(previous, 1, 3, "C")
15
+
16
+  current = previous
17
+  call put_glyph(current, 1, 2, "X")
18
+  call set_cursor(current, 1, 2)
19
+
20
+  diff = diff_screen(previous, current)
21
+  rendered = render_screen_diff_ansi(previous, current)
22
+
23
+  write(*, "(a, i0)") "damage-cells=", diff%damage%changed_cells
24
+  write(*, "(a, i0)") "diff-bytes=", len(rendered)
25
+end program diff_render_demo
example/full_render_demo.f90added
@@ -0,0 +1,25 @@
1
+program full_render_demo
2
+  use fgof_screen, only : allocate_screen, clear_screen_style, put_glyph, render_screen_ansi, set_cursor
3
+  use fgof_screen_types, only : screen_buffer, screen_style
4
+  implicit none
5
+
6
+  type(screen_buffer) :: buffer
7
+  type(screen_style) :: style
8
+  character(len=:), allocatable :: rendered
9
+  integer :: bytes
10
+
11
+  buffer = allocate_screen(4, 2)
12
+  style = clear_screen_style()
13
+  style%fg = 39
14
+  style%bold = .true.
15
+
16
+  call put_glyph(buffer, 1, 1, "F", style)
17
+  call put_glyph(buffer, 1, 2, "G", style)
18
+  call put_glyph(buffer, 2, 1, "O")
19
+  call put_glyph(buffer, 2, 2, "F")
20
+  call set_cursor(buffer, 2, 3)
21
+
22
+  rendered = render_screen_ansi(buffer)
23
+  bytes = len(rendered)
24
+  write(*, "(a, i0)") "full-bytes=", bytes
25
+end program full_render_demo
fpm.tomlmodified
@@ -9,7 +9,7 @@ description = "Virtual screen buffers and diff rendering helpers for modern Fort
99
 [build]
1010
 auto-executables = false
1111
 auto-tests = true
12
-auto-examples = false
12
+auto-examples = true
1313
 
1414
 [install]
1515
 library = true