ASCII-GFX  2.0
gfx.h
Go to the documentation of this file.
1 // NCurses graphics
2 // (c) 2020 by Stefan Roettger
3 
4 #pragma once
5 
6 #include <ncurses.h> // for NCurses
7 
8 #include <math.h> // for math functions
9 #include <ctype.h> // for c character definitions
10 #include <string.h> // for c string definitions
11 #include <stdio.h> // for c std i/o functions
12 #include <stdlib.h> // for standard c functions
13 #include <stdbool.h> // for standard bool values
14 #include <unistd.h> // for posix c functions
15 #include "math2d.h" // for 2D vector math functions
16 #include "util.h" // for utility functions
17 
21 void init_gfx();
22 
27 void init_color();
28 
31 void exit_gfx();
32 
35 void set_window(WINDOW *w);
36 
48 void use_color(int index = 1);
49 
51 void use_attr_bold();
52 
54 void use_attr_blink();
55 
57 void use_attr_reverse();
58 
60 void use_attr_normal();
61 
64 void draw_text(int y, int x,
65  const char *format, ...);
66 
71 void draw_sprite(int y, int x,
72  const char *text);
73 
76 void draw_area(int y, int x,
77  int sy, int sx,
78  const int *data);
79 
83 void draw_grid_text(int y, int x,
84  const char *text);
85 
91 void draw_line(int y1, int x1, int y2, int x2,
92  int ch = -1, bool background = false);
93 
97 void draw_frame(int y1, int x1, int y2, int x2,
98  int ch = -1);
99 
104 void draw_circle(int yc, int xc, int r,
105  int ch = -1, double aspect = 2);
106 
111 void draw_ellipse(int yc, int xc, int ay, int ax,
112  int ch = -1, double aspect = 2);
113 
115 int peek(int y, int x);
116 
118 int get_keycode();
119 
123 void cursor_keycode(int keycode,
124  int *dx, unsigned int *dy);
125 
134 int *convert_char_text(const char *text, int sx, int sy,
135  int ch = -1, bool interprete = false);
136 
140 char *get_string_buffer(int n);
use_attr_normal
void use_attr_normal()
use attribute normal
Definition: gfx.cpp:83
draw_area
void draw_area(int y, int x, int sy, int sx, const int *data)
draw a screen area at top-left position (x, y) with size (sx, sy)
Definition: gfx.cpp:145
use_attr_reverse
void use_attr_reverse()
use attribute reverse
Definition: gfx.cpp:77
cursor_keycode
void cursor_keycode(int keycode, int *dx, unsigned int *dy)
decode wide keycode
Definition: gfx.cpp:524
use_color
void use_color(int index=1)
use indexed color pair for foreground/background colors of characters
Definition: gfx.cpp:59
draw_ellipse
void draw_ellipse(int yc, int xc, int ay, int ax, int ch=-1, double aspect=2)
draw a ellipse at center position (xc, yc) with principle axis ax and ay
Definition: gfx.cpp:454
peek
int peek(int y, int x)
peek at location (y, x) and return the displayed character
Definition: gfx.cpp:510
get_string_buffer
char * get_string_buffer(int n)
helper for allocating a temporarily used string buffer
Definition: gfx.cpp:597
init_color
void init_color()
init ASCII GFX color display
Definition: gfx.cpp:25
draw_grid_text
void draw_grid_text(int y, int x, const char *text)
draw a text string with grid font characters at top-left position (x, y)
Definition: gfx.cpp:163
draw_line
void draw_line(int y1, int x1, int y2, int x2, int ch=-1, bool background=false)
draw a line from position (x1, y1) to (x2, y2)
Definition: gfx.cpp:294
init_gfx
void init_gfx()
init ASCII GFX
Definition: gfx.cpp:13
use_attr_blink
void use_attr_blink()
use attribute blink
Definition: gfx.cpp:71
set_window
void set_window(WINDOW *w)
set the drawing window
Definition: gfx.cpp:53
draw_frame
void draw_frame(int y1, int x1, int y2, int x2, int ch=-1)
draw a frame from position (y1, x1) to (y2, x2)
Definition: gfx.cpp:394
use_attr_bold
void use_attr_bold()
use attribute bold
Definition: gfx.cpp:65
draw_sprite
void draw_sprite(int y, int x, const char *text)
draw a sprite at barycenter position (x, y)
Definition: gfx.cpp:109
exit_gfx
void exit_gfx()
exit ASCII GFX
Definition: gfx.cpp:41
convert_char_text
int * convert_char_text(const char *text, int sx, int sy, int ch=-1, bool interprete=false)
helper for converting a text string into an ASCII data buffer
Definition: gfx.cpp:552
draw_circle
void draw_circle(int yc, int xc, int r, int ch=-1, double aspect=2)
draw a circle at center position (xc, yc) with radius r
Definition: gfx.cpp:428
math2d.h
get_keycode
int get_keycode()
return wide keycode
Definition: gfx.cpp:518
draw_text
void draw_text(int y, int x, const char *format,...)
draw a formatted text at position (x, y)
Definition: gfx.cpp:89
util.h