From: GetAway Date: Wed, 4 Oct 2017 10:36:34 +0000 (+0200) Subject: init backbuffer depending on FSCREENINFO line_length X-Git-Url: https://git.webhop.me/?a=commitdiff_plain;h=592f2e67d93c724ffe66cb9193c2e7eb4d51f063;p=input.git init backbuffer depending on FSCREENINFO line_length this prevents horizontal cut of OSD with new fb driver bump version 2.11 --- diff --git a/fb_display.c b/fb_display.c index ce645a4..6db3adc 100644 --- a/fb_display.c +++ b/fb_display.c @@ -76,7 +76,7 @@ void blit2FB(void *fbbuff, { uint32_t * data = (uint32_t *) fbbuff; - uint32_t * d = (uint32_t *)lbb + xo + stride * ssy/*yoffs*/; + uint32_t * d = (uint32_t *)lbb + xo + swidth * ssy/*yoffs*/; uint32_t * d2; for (count = 0; count < yc; count++ ) { @@ -99,7 +99,7 @@ void blit2FB(void *fbbuff, d2++; pixpos++; } - d += stride; + d += swidth; } } break; diff --git a/gfx.c b/gfx.c index bb69a54..981cbbb 100644 --- a/gfx.c +++ b/gfx.c @@ -13,7 +13,7 @@ void RenderBox(int _sx, int _sy, int _ex, int _ey, int rad, int col) { int F,R=rad,ssx=startx+_sx,ssy=starty+_sy,dxx=_ex-_sx,dyy=_ey-_sy,rx,ry,wx,wy,count; - uint32_t *pos = lbb + ssx + stride * ssy; + uint32_t *pos = lbb + ssx + swidth * ssy; uint32_t *pos0, *pos1, *pos2, *pos3, *i; uint32_t pix = bgra[col]; @@ -64,10 +64,10 @@ void RenderBox(int _sx, int _sy, int _ex, int _ey, int rad, int col) rx=R-ssx; ry=R-ssy; - pos0=pos+(dyy-ry)*stride; - pos1=pos+ry*stride; - pos2=pos+rx*stride; - pos3=pos+(dyy-rx)*stride; + pos0=pos+(dyy-ry)*swidth; + pos1=pos+ry*swidth; + pos2=pos+rx*swidth; + pos3=pos+(dyy-rx)*swidth; while (ssx <= ssy) { @@ -86,8 +86,8 @@ void RenderBox(int _sx, int _sy, int _ex, int _ey, int rad, int col) *i = pix; ssx++; - pos2-=stride; - pos3+=stride; + pos2-=swidth; + pos3+=swidth; if (F<0) { F+=(ssx<<1)-1; @@ -96,18 +96,18 @@ void RenderBox(int _sx, int _sy, int _ex, int _ey, int rad, int col) { F+=((ssx-ssy)<<1); ssy--; - pos0-=stride; - pos1+=stride; + pos0-=swidth; + pos1+=swidth; } } - pos+=R*stride; + pos+=R*swidth; } for (count=R; count<(dyy-R); count++) { for(i=pos; i\n"); @@ -538,8 +542,6 @@ char rstr[512]={0}, *title=NULL, *format=NULL, *defstr=NULL, *aptr=NULL, *rptr=N munmap(lfb, fix_screeninfo.smem_len); return -1; } - stride = fix_screeninfo.line_length/sizeof(uint32_t); - if(!(obb = malloc(var_screeninfo.xres*var_screeninfo.yres*sizeof(uint32_t)))) { perror(__plugin__ " \n"); diff --git a/input.h b/input.h index 6b8c182..188c367 100644 --- a/input.h +++ b/input.h @@ -135,7 +135,7 @@ enum { extern uint32_t *lfb, *lbb, *obb; extern uint32_t bgra[]; -extern int stride; +extern int swidth; extern int FSIZE_BIG; extern int FSIZE_MED; diff --git a/text.c b/text.c index d41ec26..f8b0362 100644 --- a/text.c +++ b/text.c @@ -153,10 +153,10 @@ int RenderChar(FT_ULong currentchar, int _sx, int _sy, int _ex, int color) { if (_sx + sbit->xadvance > _ex + 5) return -1; /* limit to maxwidth */ - uint32_t bgcolor = *(lbb + (sy + _sy - _d - 1) * stride + (sx + _sx + sbit->left)); + uint32_t bgcolor = *(lbb + (sy + _sy - _d - 1) * swidth + (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); + uint32_t *p = lbb + (sx + _sx + sbit->left + kerning.x) + swidth * (sy + _sy - sbit->top - _d); uint32_t *r = p + (_ex - _sx); /* end of usable box */ for(row = 0; row < sbit->height; row++) { @@ -170,8 +170,8 @@ int RenderChar(FT_ULong currentchar, int _sx, int _sy, int _ex, int color) if (q > r) /* we are past _ex */ break; } - p += stride; - r += stride; + p += swidth; + r += swidth; } }