mirror of
https://github.com/lvgl/lvgl.git
synced 2025-01-28 07:03:00 +08:00
fix(dave2d): follow lvgl changes (#5334)
This commit is contained in:
parent
106519bd2d
commit
b086c76152
@ -473,7 +473,7 @@ static void execute_drawing(lv_draw_dave2d_unit_t * u)
|
|||||||
lv_area_move(&clipped_area, x, y);
|
lv_area_move(&clipped_area, x, y);
|
||||||
|
|
||||||
/* Invalidate cache */
|
/* Invalidate cache */
|
||||||
lv_draw_buf_invalidate_cache(layer->buf, layer->buf_stride, layer->color_format, &clipped_area);
|
lv_draw_buf_invalidate_cache(layer->draw_buf->data, layer->draw_buf->header.stride, layer->color_format, &clipped_area);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -52,12 +52,7 @@ void lv_draw_dave2d_arc(lv_draw_dave2d_unit_t * u, const lv_draw_arc_dsc_t * dsc
|
|||||||
//
|
//
|
||||||
// Generate render operations
|
// Generate render operations
|
||||||
//
|
//
|
||||||
d2_framebuffer(u->d2_handle,
|
d2_framebuffer_from_layer(u->d2_handle, u->base_unit.target_layer);
|
||||||
u->base_unit.target_layer->buf,
|
|
||||||
(d2_s32)u->base_unit.target_layer->buf_stride / lv_color_format_get_size(u->base_unit.target_layer->color_format),
|
|
||||||
(d2_u32)lv_area_get_width(&buffer_area),
|
|
||||||
(d2_u32)lv_area_get_height(&buffer_area),
|
|
||||||
lv_draw_dave2d_lv_colour_fmt_to_d2_fmt(u->base_unit.target_layer->color_format));
|
|
||||||
|
|
||||||
d2_setalpha(u->d2_handle, dsc->opa);
|
d2_setalpha(u->d2_handle, dsc->opa);
|
||||||
|
|
||||||
|
@ -51,7 +51,6 @@ static void dave2d_draw_border_simple(lv_draw_dave2d_unit_t * u, const lv_area_t
|
|||||||
lv_area_t clip_area;
|
lv_area_t clip_area;
|
||||||
lv_area_t local_outer_area;
|
lv_area_t local_outer_area;
|
||||||
lv_area_t local_inner_area;
|
lv_area_t local_inner_area;
|
||||||
lv_area_t buffer_area;
|
|
||||||
int32_t x;
|
int32_t x;
|
||||||
int32_t y;
|
int32_t y;
|
||||||
bool is_common;
|
bool is_common;
|
||||||
@ -67,7 +66,6 @@ static void dave2d_draw_border_simple(lv_draw_dave2d_unit_t * u, const lv_area_t
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
buffer_area = u->base_unit.target_layer->buf_area;
|
|
||||||
local_outer_area = *outer_area;
|
local_outer_area = *outer_area;
|
||||||
local_inner_area = *inner_area;
|
local_inner_area = *inner_area;
|
||||||
|
|
||||||
@ -75,7 +73,6 @@ static void dave2d_draw_border_simple(lv_draw_dave2d_unit_t * u, const lv_area_t
|
|||||||
y = 0 - u->base_unit.target_layer->buf_area.y1;
|
y = 0 - u->base_unit.target_layer->buf_area.y1;
|
||||||
|
|
||||||
lv_area_move(&clip_area, x, y);
|
lv_area_move(&clip_area, x, y);
|
||||||
lv_area_move(&buffer_area, x, y);
|
|
||||||
lv_area_move(&local_outer_area, x, y);
|
lv_area_move(&local_outer_area, x, y);
|
||||||
lv_area_move(&local_inner_area, x, y);
|
lv_area_move(&local_inner_area, x, y);
|
||||||
|
|
||||||
@ -85,12 +82,8 @@ static void dave2d_draw_border_simple(lv_draw_dave2d_unit_t * u, const lv_area_t
|
|||||||
//
|
//
|
||||||
// Generate render operations
|
// Generate render operations
|
||||||
//
|
//
|
||||||
d2_framebuffer(u->d2_handle,
|
|
||||||
u->base_unit.target_layer->buf,
|
d2_framebuffer_from_layer(u->d2_handle, u->base_unit.target_layer);
|
||||||
(d2_s32)u->base_unit.target_layer->buf_stride / lv_color_format_get_size(u->base_unit.target_layer->color_format),
|
|
||||||
(d2_u32)lv_area_get_width(&buffer_area),
|
|
||||||
(d2_u32)lv_area_get_height(&buffer_area),
|
|
||||||
lv_draw_dave2d_lv_colour_fmt_to_d2_fmt(u->base_unit.target_layer->color_format));
|
|
||||||
|
|
||||||
d2_setcolor(u->d2_handle, 0, lv_draw_dave2d_lv_colour_to_d2_colour(color));
|
d2_setcolor(u->d2_handle, 0, lv_draw_dave2d_lv_colour_to_d2_colour(color));
|
||||||
d2_setalpha(u->d2_handle, opa);
|
d2_setalpha(u->d2_handle, opa);
|
||||||
@ -174,7 +167,6 @@ static void dave2d_draw_border_complex(lv_draw_dave2d_unit_t * u, const lv_area_
|
|||||||
lv_area_t draw_area;
|
lv_area_t draw_area;
|
||||||
lv_area_t outer_area;
|
lv_area_t outer_area;
|
||||||
lv_area_t inner_area;
|
lv_area_t inner_area;
|
||||||
lv_area_t buffer_area;
|
|
||||||
int32_t x;
|
int32_t x;
|
||||||
int32_t y;
|
int32_t y;
|
||||||
d2_s32 result;
|
d2_s32 result;
|
||||||
@ -193,13 +185,10 @@ static void dave2d_draw_border_complex(lv_draw_dave2d_unit_t * u, const lv_area_
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
buffer_area = u->base_unit.target_layer->buf_area;
|
|
||||||
|
|
||||||
x = 0 - u->base_unit.target_layer->buf_area.x1;
|
x = 0 - u->base_unit.target_layer->buf_area.x1;
|
||||||
y = 0 - u->base_unit.target_layer->buf_area.y1;
|
y = 0 - u->base_unit.target_layer->buf_area.y1;
|
||||||
|
|
||||||
lv_area_move(&draw_area, x, y);
|
lv_area_move(&draw_area, x, y);
|
||||||
lv_area_move(&buffer_area, x, y);
|
|
||||||
lv_area_move(&outer_area, x, y);
|
lv_area_move(&outer_area, x, y);
|
||||||
lv_area_move(&inner_area, x, y);
|
lv_area_move(&inner_area, x, y);
|
||||||
|
|
||||||
@ -209,12 +198,8 @@ static void dave2d_draw_border_complex(lv_draw_dave2d_unit_t * u, const lv_area_
|
|||||||
//
|
//
|
||||||
// Generate render operations
|
// Generate render operations
|
||||||
//
|
//
|
||||||
d2_framebuffer(u->d2_handle,
|
|
||||||
u->base_unit.target_layer->buf,
|
d2_framebuffer_from_layer(u->d2_handle, u->base_unit.target_layer);
|
||||||
(d2_s32)u->base_unit.target_layer->buf_stride / lv_color_format_get_size(u->base_unit.target_layer->color_format),
|
|
||||||
(d2_u32)lv_area_get_width(&buffer_area),
|
|
||||||
(d2_u32)lv_area_get_height(&buffer_area),
|
|
||||||
lv_draw_dave2d_lv_colour_fmt_to_d2_fmt(u->base_unit.target_layer->color_format));
|
|
||||||
|
|
||||||
d2_setcolor(u->d2_handle, 0, lv_draw_dave2d_lv_colour_to_d2_colour(color));
|
d2_setcolor(u->d2_handle, 0, lv_draw_dave2d_lv_colour_to_d2_colour(color));
|
||||||
d2_setalpha(u->d2_handle, opa);
|
d2_setalpha(u->d2_handle, opa);
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
void lv_draw_dave2d_fill(lv_draw_dave2d_unit_t * u, const lv_draw_fill_dsc_t * dsc, const lv_area_t * coords)
|
void lv_draw_dave2d_fill(lv_draw_dave2d_unit_t * u, const lv_draw_fill_dsc_t * dsc, const lv_area_t * coords)
|
||||||
{
|
{
|
||||||
lv_area_t draw_area;
|
lv_area_t draw_area;
|
||||||
lv_area_t buffer_area;
|
|
||||||
lv_area_t coordinates;
|
lv_area_t coordinates;
|
||||||
bool is_common;
|
bool is_common;
|
||||||
int32_t x;
|
int32_t x;
|
||||||
@ -26,14 +25,12 @@ void lv_draw_dave2d_fill(lv_draw_dave2d_unit_t * u, const lv_draw_fill_dsc_t * d
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
buffer_area = u->base_unit.target_layer->buf_area;
|
|
||||||
lv_area_copy(&coordinates, coords);
|
lv_area_copy(&coordinates, coords);
|
||||||
|
|
||||||
x = 0 - u->base_unit.target_layer->buf_area.x1;
|
x = 0 - u->base_unit.target_layer->buf_area.x1;
|
||||||
y = 0 - u->base_unit.target_layer->buf_area.y1;
|
y = 0 - u->base_unit.target_layer->buf_area.y1;
|
||||||
|
|
||||||
lv_area_move(&draw_area, x, y);
|
lv_area_move(&draw_area, x, y);
|
||||||
lv_area_move(&buffer_area, x, y);
|
|
||||||
lv_area_move(&coordinates, x, y);
|
lv_area_move(&coordinates, x, y);
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -43,12 +40,7 @@ void lv_draw_dave2d_fill(lv_draw_dave2d_unit_t * u, const lv_draw_fill_dsc_t * d
|
|||||||
d2_selectrenderbuffer(u->d2_handle, u->renderbuffer);
|
d2_selectrenderbuffer(u->d2_handle, u->renderbuffer);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
d2_framebuffer(u->d2_handle,
|
d2_framebuffer_from_layer(u->d2_handle, u->base_unit.target_layer);
|
||||||
u->base_unit.target_layer->buf,
|
|
||||||
(d2_s32)u->base_unit.target_layer->buf_stride / lv_color_format_get_size(u->base_unit.target_layer->color_format),
|
|
||||||
(d2_u32)lv_area_get_width(&buffer_area),
|
|
||||||
(d2_u32)lv_area_get_height(&buffer_area),
|
|
||||||
lv_draw_dave2d_lv_colour_fmt_to_d2_fmt(u->base_unit.target_layer->color_format));
|
|
||||||
|
|
||||||
if(LV_GRAD_DIR_NONE != dsc->grad.dir) {
|
if(LV_GRAD_DIR_NONE != dsc->grad.dir) {
|
||||||
float a1;
|
float a1;
|
||||||
|
@ -202,12 +202,7 @@ static void img_draw_core(lv_draw_unit_t * u_base, const lv_draw_image_dsc_t * d
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
d2_framebuffer(u->d2_handle,
|
d2_framebuffer_from_layer(u->d2_handle, u->base_unit.target_layer);
|
||||||
u->base_unit.target_layer->buf,
|
|
||||||
(d2_s32)u->base_unit.target_layer->buf_stride / lv_color_format_get_size(u->base_unit.target_layer->color_format),
|
|
||||||
(d2_u32)lv_area_get_width(&buffer_area),
|
|
||||||
(d2_u32)lv_area_get_height(&buffer_area),
|
|
||||||
lv_draw_dave2d_lv_colour_fmt_to_d2_fmt(u->base_unit.target_layer->color_format));
|
|
||||||
|
|
||||||
d2_cliprect(u->d2_handle, (d2_border)clipped_area.x1, (d2_border)clipped_area.y1, (d2_border)clipped_area.x2,
|
d2_cliprect(u->d2_handle, (d2_border)clipped_area.x1, (d2_border)clipped_area.y1, (d2_border)clipped_area.x2,
|
||||||
(d2_border)clipped_area.y2);
|
(d2_border)clipped_area.y2);
|
||||||
|
@ -22,13 +22,11 @@ static void lv_draw_dave2d_draw_letter_cb(lv_draw_unit_t * u, lv_draw_glyph_dsc_
|
|||||||
|
|
||||||
d2_u8 current_fillmode;
|
d2_u8 current_fillmode;
|
||||||
lv_area_t clip_area;
|
lv_area_t clip_area;
|
||||||
lv_area_t buffer_area;
|
|
||||||
lv_area_t letter_coords;
|
lv_area_t letter_coords;
|
||||||
|
|
||||||
int32_t x;
|
int32_t x;
|
||||||
int32_t y;
|
int32_t y;
|
||||||
|
|
||||||
buffer_area = unit->base_unit.target_layer->buf_area;
|
|
||||||
letter_coords = *glyph_draw_dsc->letter_coords;
|
letter_coords = *glyph_draw_dsc->letter_coords;
|
||||||
|
|
||||||
bool is_common;
|
bool is_common;
|
||||||
@ -39,7 +37,6 @@ static void lv_draw_dave2d_draw_letter_cb(lv_draw_unit_t * u, lv_draw_glyph_dsc_
|
|||||||
y = 0 - unit->base_unit.target_layer->buf_area.y1;
|
y = 0 - unit->base_unit.target_layer->buf_area.y1;
|
||||||
|
|
||||||
lv_area_move(&clip_area, x, y);
|
lv_area_move(&clip_area, x, y);
|
||||||
lv_area_move(&buffer_area, x, y);
|
|
||||||
lv_area_move(&letter_coords, x, y);
|
lv_area_move(&letter_coords, x, y);
|
||||||
|
|
||||||
#if LV_USE_OS
|
#if LV_USE_OS
|
||||||
@ -57,12 +54,8 @@ static void lv_draw_dave2d_draw_letter_cb(lv_draw_unit_t * u, lv_draw_glyph_dsc_
|
|||||||
//
|
//
|
||||||
// Generate render operations
|
// Generate render operations
|
||||||
//
|
//
|
||||||
d2_framebuffer(unit->d2_handle,
|
|
||||||
unit->base_unit.target_layer->buf,
|
d2_framebuffer_from_layer(unit->d2_handle, unit->base_unit.target_layer);
|
||||||
(d2_s32)unit->base_unit.target_layer->buf_stride / lv_color_format_get_size(unit->base_unit.target_layer->color_format),
|
|
||||||
(d2_u32)lv_area_get_width(&buffer_area),
|
|
||||||
(d2_u32)lv_area_get_height(&buffer_area),
|
|
||||||
lv_draw_dave2d_lv_colour_fmt_to_d2_fmt(unit->base_unit.target_layer->color_format));
|
|
||||||
|
|
||||||
current_fillmode = d2_getfillmode(unit->d2_handle);
|
current_fillmode = d2_getfillmode(unit->d2_handle);
|
||||||
|
|
||||||
|
@ -58,12 +58,7 @@ void lv_draw_dave2d_line(lv_draw_dave2d_unit_t * u, const lv_draw_line_dsc_t * d
|
|||||||
//
|
//
|
||||||
// Generate render operations
|
// Generate render operations
|
||||||
//
|
//
|
||||||
d2_framebuffer(u->d2_handle,
|
d2_framebuffer_from_layer(u->d2_handle, u->base_unit.target_layer);
|
||||||
u->base_unit.target_layer->buf,
|
|
||||||
(d2_s32)u->base_unit.target_layer->buf_stride / lv_color_format_get_size(u->base_unit.target_layer->color_format),
|
|
||||||
(d2_u32)lv_area_get_width(&buffer_area),
|
|
||||||
(d2_u32)lv_area_get_height(&buffer_area),
|
|
||||||
lv_draw_dave2d_lv_colour_fmt_to_d2_fmt(u->base_unit.target_layer->color_format));
|
|
||||||
|
|
||||||
d2_setcolor(u->d2_handle, 0, lv_draw_dave2d_lv_colour_to_d2_colour(dsc->color));
|
d2_setcolor(u->d2_handle, 0, lv_draw_dave2d_lv_colour_to_d2_colour(dsc->color));
|
||||||
|
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
void lv_draw_dave2d_mask_rect(lv_draw_dave2d_unit_t * u, const lv_draw_mask_rect_dsc_t * dsc, const lv_area_t * coords)
|
void lv_draw_dave2d_mask_rect(lv_draw_dave2d_unit_t * u, const lv_draw_mask_rect_dsc_t * dsc, const lv_area_t * coords)
|
||||||
{
|
{
|
||||||
lv_area_t clipped_area;
|
lv_area_t clipped_area;
|
||||||
lv_area_t buffer_area;
|
|
||||||
lv_area_t coordinates;
|
lv_area_t coordinates;
|
||||||
int32_t x;
|
int32_t x;
|
||||||
int32_t y;
|
int32_t y;
|
||||||
@ -14,11 +13,9 @@ void lv_draw_dave2d_mask_rect(lv_draw_dave2d_unit_t * u, const lv_draw_mask_rect
|
|||||||
x = 0 - u->base_unit.target_layer->buf_area.x1;
|
x = 0 - u->base_unit.target_layer->buf_area.x1;
|
||||||
y = 0 - u->base_unit.target_layer->buf_area.y1;
|
y = 0 - u->base_unit.target_layer->buf_area.y1;
|
||||||
|
|
||||||
buffer_area = u->base_unit.target_layer->buf_area;
|
|
||||||
coordinates = *coords;
|
coordinates = *coords;
|
||||||
|
|
||||||
lv_area_move(&clipped_area, x, y);
|
lv_area_move(&clipped_area, x, y);
|
||||||
lv_area_move(&buffer_area, x, y);
|
|
||||||
lv_area_move(&coordinates, x, y);
|
lv_area_move(&coordinates, x, y);
|
||||||
|
|
||||||
#if LV_USE_OS
|
#if LV_USE_OS
|
||||||
@ -33,12 +30,7 @@ void lv_draw_dave2d_mask_rect(lv_draw_dave2d_unit_t * u, const lv_draw_mask_rect
|
|||||||
d2_selectrenderbuffer(u->d2_handle, u->renderbuffer);
|
d2_selectrenderbuffer(u->d2_handle, u->renderbuffer);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
d2_framebuffer(u->d2_handle,
|
d2_framebuffer_from_layer(u->d2_handle, u->base_unit.target_layer);
|
||||||
u->base_unit.target_layer->buf,
|
|
||||||
lv_area_get_width(&u->base_unit.target_layer->buf_area),
|
|
||||||
(d2_u32)lv_area_get_width(&u->base_unit.target_layer->buf_area),
|
|
||||||
(d2_u32)lv_area_get_height(&u->base_unit.target_layer->buf_area),
|
|
||||||
lv_draw_dave2d_lv_colour_fmt_to_d2_fmt(u->base_unit.target_layer->color_format));
|
|
||||||
|
|
||||||
d2_cliprect(u->d2_handle, (d2_border)clipped_area.x1, (d2_border)clipped_area.y1, (d2_border)clipped_area.x2,
|
d2_cliprect(u->d2_handle, (d2_border)clipped_area.x1, (d2_border)clipped_area.y1, (d2_border)clipped_area.x2,
|
||||||
(d2_border)clipped_area.y2);
|
(d2_border)clipped_area.y2);
|
||||||
|
@ -6,7 +6,6 @@ void lv_draw_dave2d_triangle(lv_draw_dave2d_unit_t * u, const lv_draw_triangle_d
|
|||||||
lv_area_t clipped_area;
|
lv_area_t clipped_area;
|
||||||
d2_u32 flags = 0;
|
d2_u32 flags = 0;
|
||||||
d2_u8 current_alpha_mode = 0;
|
d2_u8 current_alpha_mode = 0;
|
||||||
lv_area_t buffer_area;
|
|
||||||
int32_t x;
|
int32_t x;
|
||||||
int32_t y;
|
int32_t y;
|
||||||
|
|
||||||
@ -29,10 +28,7 @@ void lv_draw_dave2d_triangle(lv_draw_dave2d_unit_t * u, const lv_draw_triangle_d
|
|||||||
x = 0 - u->base_unit.target_layer->buf_area.x1;
|
x = 0 - u->base_unit.target_layer->buf_area.x1;
|
||||||
y = 0 - u->base_unit.target_layer->buf_area.y1;
|
y = 0 - u->base_unit.target_layer->buf_area.y1;
|
||||||
|
|
||||||
buffer_area = u->base_unit.target_layer->buf_area;
|
|
||||||
|
|
||||||
lv_area_move(&clipped_area, x, y);
|
lv_area_move(&clipped_area, x, y);
|
||||||
lv_area_move(&buffer_area, x, y);
|
|
||||||
|
|
||||||
#if D2_RENDER_EACH_OPERATION
|
#if D2_RENDER_EACH_OPERATION
|
||||||
d2_selectrenderbuffer(u->d2_handle, u->renderbuffer);
|
d2_selectrenderbuffer(u->d2_handle, u->renderbuffer);
|
||||||
@ -146,12 +142,7 @@ void lv_draw_dave2d_triangle(lv_draw_dave2d_unit_t * u, const lv_draw_triangle_d
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
d2_framebuffer(u->d2_handle,
|
d2_framebuffer_from_layer(u->d2_handle, u->base_unit.target_layer);
|
||||||
u->base_unit.target_layer->buf,
|
|
||||||
(d2_s32)u->base_unit.target_layer->buf_stride / lv_color_format_get_size(u->base_unit.target_layer->color_format),
|
|
||||||
(d2_u32)lv_area_get_width(&buffer_area),
|
|
||||||
(d2_u32)lv_area_get_height(&buffer_area),
|
|
||||||
lv_draw_dave2d_lv_colour_fmt_to_d2_fmt(u->base_unit.target_layer->color_format));
|
|
||||||
|
|
||||||
d2_cliprect(u->d2_handle, (d2_border)clipped_area.x1, (d2_border)clipped_area.y1, (d2_border)clipped_area.x2,
|
d2_cliprect(u->d2_handle, (d2_border)clipped_area.x1, (d2_border)clipped_area.y1, (d2_border)clipped_area.x2,
|
||||||
(d2_border)clipped_area.y2);
|
(d2_border)clipped_area.y2);
|
||||||
|
@ -120,6 +120,19 @@ d2_u32 lv_draw_dave2d_lv_colour_fmt_to_d2_fmt(lv_color_format_t colour_format)
|
|||||||
return d2_lvgl_mode;
|
return d2_lvgl_mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void d2_framebuffer_from_layer(d2_device * handle, lv_layer_t * layer)
|
||||||
|
{
|
||||||
|
lv_draw_buf_t * draw_buf = layer->draw_buf;
|
||||||
|
lv_area_t buffer_area = layer->buf_area;
|
||||||
|
lv_area_move(&buffer_area, -layer->buf_area.x1, -layer->buf_area.y1);
|
||||||
|
|
||||||
|
d2_framebuffer(handle, draw_buf->data,
|
||||||
|
(d2_s32) draw_buf->header.stride / lv_color_format_get_size(layer->color_format),
|
||||||
|
(d2_u32)lv_area_get_width(&buffer_area),
|
||||||
|
(d2_u32)lv_area_get_height(&buffer_area),
|
||||||
|
lv_draw_dave2d_lv_colour_fmt_to_d2_fmt(layer->color_format));
|
||||||
|
}
|
||||||
|
|
||||||
/**********************
|
/**********************
|
||||||
* STATIC FUNCTIONS
|
* STATIC FUNCTIONS
|
||||||
**********************/
|
**********************/
|
||||||
|
@ -32,6 +32,8 @@ d2_s32 lv_draw_dave2d_cf_fb_get(void);
|
|||||||
|
|
||||||
d2_u32 lv_draw_dave2d_lv_colour_fmt_to_d2_fmt(lv_color_format_t colour_format);
|
d2_u32 lv_draw_dave2d_lv_colour_fmt_to_d2_fmt(lv_color_format_t colour_format);
|
||||||
|
|
||||||
|
void d2_framebuffer_from_layer(d2_device * handle, lv_layer_t * layer);
|
||||||
|
|
||||||
/**********************
|
/**********************
|
||||||
* MACROS
|
* MACROS
|
||||||
**********************/
|
**********************/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user