diff options
| author | Ethan Werner <mail@ethanwerner.com> | 2024-04-17 16:00:00 -0700 |
|---|---|---|
| committer | Ethan Werner <mail@ethanwerner.com> | 2026-06-08 16:01:49 +0400 |
| commit | f6a144987cc403de8ad6bddd055f756120f8d405 (patch) | |
| tree | 3b4cfc8c76db7adba8504dc0e079466e2a0d336c /example/escape.c | |
archival commit
Diffstat (limited to 'example/escape.c')
| -rwxr-xr-x | example/escape.c | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/example/escape.c b/example/escape.c new file mode 100755 index 0000000..c5e71ac --- /dev/null +++ b/example/escape.c @@ -0,0 +1,62 @@ +// escape.c - Simple test print code + + +#include <stdint.h> +#include <tgmath.h> + +#define ESCAPE_IMPLEMENTATION +#include "../include/escape.h" + +#define TEST_STRING "HELLO" + +void hsv_rgb( float h, float s, float v, uint8_t *r, uint8_t *g, uint8_t *b ) +{ + float h0 = h * 6.0; + + float k = fmod( 5.0 + h0, 6.0 ); + *r = 255 * ( v - v * s * fmax( 0.0, fmin( k, fmin( 4.0 - k, 1.0 ) ) ) ); + + k = fmod( 3.0 + h0, 6.0 ); + *g = 255 * ( v - v * s * fmax( 0.0, fmin( k, fmin( 4.0 - k, 1.0 ) ) ) ); + + k = fmod( 1.0 + h0, 6.0 ); + *b = 255 * ( v - v * s * fmax( 0.0, fmin( k, fmin( 4.0 - k, 1.0 ) ) ) ); +} + + +int main( void ) +{ + // Clear screen + fputs( ESC_CLEAR_SCREEN, stdout ); + + // Print a rectangle of Xs with positional coordinates + fputs( ESC_CURSOR_POSITION( 1, 1 ), stdout ); fflush( stdout ); + fputs( ESC_CURSOR_POSITION( 3, 2 ) "X", stdout ); fflush( stdout ); + fputs( ESC_CURSOR_POSITION( 10, 2 ) "X", stdout ); fflush( stdout ); + fputs( ESC_CURSOR_POSITION( 10, 4 ) "X", stdout ); fflush( stdout ); + fputs( ESC_CURSOR_POSITION( 3, 4 ) "X", stdout ); fflush( stdout ); + fputs( "\n", stdout ); + + fputs( "\n" ESC_RESET TEST_STRING "\n\n", stdout ); + fputs( ESC_BOLD TEST_STRING ESC_RESET "\n\n", stdout ); + fputs( ESC_OVERLINE TEST_STRING ESC_RESET "\n\n", stdout ); + fputs( ESC_UNDERLINE TEST_STRING ESC_RESET "\n\n", stdout ); + fputs( ESC_STRIKETHROUGH TEST_STRING ESC_RESET "\n\n", stdout ); + fputs( ESC_COLOR_FG_RGB( 0, 128, 128 ) TEST_STRING ESC_RESET "\n\n", stdout ); + fputs( ESC_COLOR_BG_RGB( 128, 0, 128 ) TEST_STRING ESC_RESET "\n\n", stdout ); + fputs( ESC_BLINK TEST_STRING ESC_RESET "\n\n", stdout ); + fputs( ESC_REVERSE TEST_STRING ESC_RESET "\n\n", stdout ); + fputs( ESC_CONCEAL TEST_STRING ESC_REVEAL TEST_STRING ESC_RESET "\n\n", stdout ); + + uint8_t r,g,b; + + for( float i = 0; i < 1; i += 0.01 ) + { + hsv_rgb( i, 1.0, 1.0, &r, &g, &b ); + + esc_color_fg_rgb( r, g, b ); + fputs( "█", stdout ); + } + + fputs( "\n", stdout ); +} |