aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--autistdraw.c28
1 files changed, 11 insertions, 17 deletions
diff --git a/autistdraw.c b/autistdraw.c
index f6dd2ec..258f24b 100644
--- a/autistdraw.c
+++ b/autistdraw.c
@@ -74,6 +74,8 @@ struct client
struct msg_reader msg_reader; ///< Client message reader
};
+#define BITMAP_PIXEL(app, x, y) (app)->bitmap[(y) * (app)->bitmap_w + (x)]
+
typedef struct app_context app_context_t;
struct app_context
{
@@ -370,15 +372,10 @@ redraw_canvas (app_context_t *app)
int x = app->corner_x;
for (int screen_x = 0; screen_x < COLS; screen_x++, x++)
{
- uint8_t color;
- if (!is_in_bitmap_data (app, x, y))
- color = 0;
- else
- {
- int data_x = x - app->bitmap_x;
- int data_y = y - app->bitmap_y;
- color = app->bitmap[data_y * app->bitmap_w + data_x];
- }
+ uint8_t color = 0;
+ if (is_in_bitmap_data (app, x, y))
+ color = BITMAP_PIXEL (app,
+ x - app->bitmap_x, y - app->bitmap_y);
addch (app->palette[color]);
}
@@ -445,10 +442,7 @@ static void
draw_point (app_context_t *app, int x, int y, uint8_t color)
{
make_place_for_point (app, x, y);
-
- int data_x = x - app->bitmap_x;
- int data_y = y - app->bitmap_y;
- app->bitmap[data_y * app->bitmap_w + data_x] = color;
+ BITMAP_PIXEL (app, x - app->bitmap_x, y - app->bitmap_y) = color;
if (is_visible (app, x, y))
{
@@ -572,8 +566,8 @@ export_ansi (app_context_t *app)
const char *color = NULL;
for (size_t column = 0; column < w; column++)
{
- const char *new_color = color_to_ansi (app->bitmap[
- (y + row) * app->bitmap_w + (x + column)]);
+ const char *new_color = color_to_ansi
+ (BITMAP_PIXEL (app, x + column, y + row));
if (color != new_color)
fputs (new_color, fp);
color = new_color;
@@ -648,8 +642,8 @@ export_irc (app_context_t *app)
int color = MIRC_NONE;
for (size_t column = 0; column < w; column++)
{
- int new_color = color_to_mirc (app->bitmap[
- (y + row) * app->bitmap_w + (x + column)]);
+ int new_color = color_to_mirc
+ (BITMAP_PIXEL (app, x + column, y + row));
if (color != new_color)
fprintf (fp, "\x03%02d,%02d", new_color, new_color);
color = new_color;