diff options
author | Jesse Luehrs <doy@tozt.net> | 2014-04-26 01:25:00 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2014-04-26 01:25:00 -0400 |
commit | 018c7fb24681515b617e715b1664ed7d11cfde08 (patch) | |
tree | 2d643790e04d74c2e376df893fb06767574a1175 /src/display.c | |
parent | ea162fb1691c2809939bd33e940d9358bf691e95 (diff) | |
download | runes-dirty-rows.tar.gz runes-dirty-rows.zip |
implement dirty row trackingdirty-rows
not merging this to master because it actually ends up being ~5-10%
slower - not entirely sure why. should look into it at some point.
Diffstat (limited to 'src/display.c')
-rw-r--r-- | src/display.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/display.c b/src/display.c index 02e7d1a..232e658 100644 --- a/src/display.c +++ b/src/display.c @@ -95,10 +95,14 @@ void runes_display_draw_screen(RunesTerm *t) /* XXX quite inefficient */ for (r = 0; r < t->scr.max.row; ++r) { - int c = 0; + if (t->scr.rows[r].dirty) { + int c = 0; - while (c < t->scr.max.col) { - c += runes_display_draw_cell(t, r, c); + while (c < t->scr.max.col) { + c += runes_display_draw_cell(t, r, c); + } + + t->scr.rows[r].dirty = 0; } } runes_window_backend_request_flush(t); |