Add screen examples
- SHA
357e88fcd489203975131498fd0ee92c4330d11e- Parents
-
630de86 - Tree
517abe1
357e88f
357e88fcd489203975131498fd0ee92c4330d11e630de86
517abe1| Status | File | + | - |
|---|---|---|---|
| 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 | ||
| 9 | 9 | [build] |
| 10 | 10 | auto-executables = false |
| 11 | 11 | auto-tests = true |
| 12 | -auto-examples = false | |
| 12 | +auto-examples = true | |
| 13 | 13 | |
| 14 | 14 | [install] |
| 15 | 15 | library = true |