From 77e0f874ec26e4662f914ea479069d091e155caf Mon Sep 17 00:00:00 2001 From: cancel Date: Mon, 3 Dec 2018 10:30:49 +0900 Subject: [PATCH] Cleanup field.h/.c, move some stuff to gbuffer.h/.c --- field.c | 28 ---------------------------- field.h | 2 -- gbuffer.c | 26 ++++++++++++++++++++++++++ gbuffer.h | 4 ++++ 4 files changed, 30 insertions(+), 30 deletions(-) diff --git a/field.c b/field.c index c054fa0..d6464ba 100644 --- a/field.c +++ b/field.c @@ -40,34 +40,6 @@ void field_copy(Field* src, Field* dest) { src->width); } -void field_fill_subrect(Field* f, Usz y, Usz x, Usz height, Usz width, - Glyph fill_char) { - Usz f_height = f->height; - Usz f_width = f->width; - if (y >= f_height || x >= f_width) - return; - Usz rows_0 = f_height - y; - Usz rows = height; - if (rows_0 < rows) - rows = rows_0; - if (rows == 0) - return; - Usz columns_0 = f_width - x; - Usz columns = width; - if (columns_0 < columns) - columns = columns_0; - Usz fill_bytes = columns * sizeof(Glyph); - Glyph* p = f->buffer + y * f_width + x; - Usz iy = 0; - for (;;) { - memset(p, fill_char, fill_bytes); - ++iy; - if (iy == rows) - break; - p += f_width; - } -} - static inline bool glyph_char_is_valid(char c) { return c >= '#' && c <= '~'; } void field_fput(Field* f, FILE* stream) { diff --git a/field.h b/field.h index 4e13e81..aa84080 100644 --- a/field.h +++ b/field.h @@ -7,8 +7,6 @@ void field_resize_raw(Field* field, Usz height, Usz width); void field_resize_raw_if_necessary(Field* field, Usz height, Usz width); void field_deinit(Field* field); void field_copy(Field* src, Field* dest); -void field_fill_subrect(Field* field, Usz y, Usz x, Usz height, Usz width, - Glyph fill_char); void field_fput(Field* field, FILE* stream); typedef enum { diff --git a/gbuffer.c b/gbuffer.c index c72a091..82d50b5 100644 --- a/gbuffer.c +++ b/gbuffer.c @@ -47,3 +47,29 @@ void gbuffer_copy_subrect(Glyph* src, Glyph* dest, Usz src_height, dest_p += dest_stride; } } + +void gbuffer_fill_subrect(Glyph* gbuffer, Usz f_height, Usz f_width, Usz y, + Usz x, Usz height, Usz width, Glyph fill_char) { + if (y >= f_height || x >= f_width) + return; + Usz rows_0 = f_height - y; + Usz rows = height; + if (rows_0 < rows) + rows = rows_0; + if (rows == 0) + return; + Usz columns_0 = f_width - x; + Usz columns = width; + if (columns_0 < columns) + columns = columns_0; + Usz fill_bytes = columns * sizeof(Glyph); + Glyph* p = gbuffer + y * f_width + x; + Usz iy = 0; + for (;;) { + memset(p, fill_char, fill_bytes); + ++iy; + if (iy == rows) + break; + p += f_width; + } +} diff --git a/gbuffer.h b/gbuffer.h index 6836c17..09ceaec 100644 --- a/gbuffer.h +++ b/gbuffer.h @@ -40,3 +40,7 @@ void gbuffer_copy_subrect(Glyph* src, Glyph* dest, Usz src_grid_h, Usz src_grid_w, Usz dest_grid_h, Usz dest_grid_w, Usz src_y, Usz src_x, Usz dest_y, Usz dest_x, Usz height, Usz width); + +ORCA_FORCE_NO_INLINE +void gbuffer_fill_subrect(Glyph* gbuffer, Usz grid_h, Usz grid_w, Usz y, Usz x, + Usz height, Usz width, Glyph fill_char);