fixed clipping issue when widget text is long than the widget itself
This commit is contained in:
parent
55ced68fbd
commit
2a0dfcf1c1
@ -2764,7 +2764,8 @@ void gdispGDrawBox(GDisplay *g, coord_t x, coord_t y, coord_t cx, coord_t cy, co
|
||||
#if GDISP_NEED_ANTIALIAS && GDISP_HARDWARE_PIXELREAD
|
||||
static void drawcharline(int16_t x, int16_t y, uint8_t count, uint8_t alpha, void *state) {
|
||||
#define GD ((GDisplay *)state)
|
||||
if (y < GD->t.clipy0 || y >= GD->t.clipy1 || x < GD->t.clipx0 || x+count > GD->t.clipx1) return;
|
||||
if (y < GD->t.clipy0 || y >= GD->t.clipy1)
|
||||
return;
|
||||
if (alpha == 255) {
|
||||
GD->p.x = x; GD->p.y = y; GD->p.x1 = x+count-1; GD->p.color = GD->t.color;
|
||||
hline_clip(GD);
|
||||
@ -2780,7 +2781,8 @@ void gdispGDrawBox(GDisplay *g, coord_t x, coord_t y, coord_t cx, coord_t cy, co
|
||||
#else
|
||||
static void drawcharline(int16_t x, int16_t y, uint8_t count, uint8_t alpha, void *state) {
|
||||
#define GD ((GDisplay *)state)
|
||||
if (y < GD->t.clipy0 || y >= GD->t.clipy1 || x < GD->t.clipx0 || x+count > GD->t.clipx1) return;
|
||||
if (y < GD->t.clipy0 || y >= GD->t.clipy1)
|
||||
return;
|
||||
if (alpha > 0x80) { // A best approximation when using anti-aliased fonts but we can't actually draw them anti-aliased
|
||||
GD->p.x = x; GD->p.y = y; GD->p.x1 = x+count-1; GD->p.color = GD->t.color;
|
||||
hline_clip(GD);
|
||||
@ -2792,7 +2794,8 @@ void gdispGDrawBox(GDisplay *g, coord_t x, coord_t y, coord_t cx, coord_t cy, co
|
||||
#if GDISP_NEED_ANTIALIAS
|
||||
static void fillcharline(int16_t x, int16_t y, uint8_t count, uint8_t alpha, void *state) {
|
||||
#define GD ((GDisplay *)state)
|
||||
if (y < GD->t.clipy0 || y >= GD->t.clipy1 || x < GD->t.clipx0 || x+count > GD->t.clipx1) return;
|
||||
if (y < GD->t.clipy0 || y >= GD->t.clipy1)
|
||||
return;
|
||||
if (alpha == 255) {
|
||||
GD->p.color = GD->t.color;
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user