dxx=0;
}
+ int dyy_max = var_screeninfo.yres;
+ if (ssy + dyy > dyy_max)
+ {
+ printf("[%s] %s called with height = %d (max. %d)\n", __plugin__, __func__, ssy + dyy, dyy_max);
+ dyy = dyy_max - ssy;
+ }
+
if(R)
{
if(--dyy<=0)
{
if (_sx + sbit->xadvance > _ex + 5)
return -1; /* limit to maxwidth */
- uint32_t bgcolor = *(lbb + (sy + _sy - sbit->top) * stride + (sx + _sx));
+ uint32_t bgcolor = *(lbb + (sy + _sy - _d - 1) * stride + (sx + _sx + sbit->left));
uint32_t fgcolor = bgra[color];
uint32_t *colors = lookup_colors(fgcolor, bgcolor);
uint32_t *p = lbb + (sx + _sx + sbit->left + kerning.x) + stride * (sy + _sy - sbit->top - _d);
{
if (*s)
*q = colors[*s];
- q++, s++;
+ q++; s++;
if (q > r) /* we are past _ex */
break;
}