]> git.webhop.me Git - shellexec.git/commitdiff
init backbuffer depending on FSCREENINFO line_length
authorGetAway <get-away@t-online.de>
Wed, 4 Oct 2017 10:31:25 +0000 (12:31 +0200)
committerJacek Jendrzej <satbaby@kawaii.com>
Wed, 4 Oct 2017 12:45:43 +0000 (14:45 +0200)
this prevents horizontal cut of OSD with new fb driver
bump version 2.12

fb_display.c
gfx.c
shellexec.c
shellexec.h
text.c

index ce645a4ed3ee36e0cbc248c64be960f06072ba18..6db3adce0c123e97352766ec6cf51cacab045b2f 100644 (file)
@@ -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 8450739ac3c03d69a8df682f49723a3253f6b2dd..9e09cf4ae9baacfcccf83a752c5cfd68fae38380 100644 (file)
--- a/gfx.c
+++ b/gfx.c
@@ -12,7 +12,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];
 
@@ -63,10 +63,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)
                {
                        rx=R-ssx;
@@ -84,8 +84,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;
@@ -94,18 +94,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<pos+dxx;i++)
                        *i = pix;
-               pos+=stride;
+               pos+=swidth;
        }
 }
 
index d16c769746e3e28912bc2297634555aa9043e5f7..328c241a0f70f0334b882b727688eda05c8a5f6a 100644 (file)
@@ -12,7 +12,7 @@
 #include "pngw.h"
 
 
-#define SH_VERSION 2.11
+#define SH_VERSION 2.12
 
 static char CFG_FILE[128]="/var/tuxbox/config/shellexec.conf";
 
@@ -90,7 +90,7 @@ int ixw, iyw, xoffs;
 char INST_FILE[]="/tmp/rc.locked";
 int instance=0;
 int rclocked=0;
-int stride;
+int swidth;
 
 int get_instance(void)
 {
@@ -1785,6 +1785,11 @@ int main (int argc, char **argv)
        desc.flags = FT_LOAD_RENDER | FT_LOAD_FORCE_AUTOHINT;
 
        //init backbuffer
+       int stride = fix_screeninfo.line_length;
+       swidth = stride/sizeof(uint32_t);
+       if(stride == 7680 && var_screeninfo.xres == 1280) {
+               var_screeninfo.yres = 1080;
+       }
        if(!(lbb = malloc(var_screeninfo.xres*var_screeninfo.yres*sizeof(uint32_t))))
        {
                printf("%s <allocating of Backbuffer failed>\n", __plugin__);
@@ -1793,7 +1798,6 @@ int main (int argc, char **argv)
                munmap(lfb, fix_screeninfo.smem_len);
                return -1;
        }
-       stride = fix_screeninfo.line_length/sizeof(uint32_t);
 
        //lbb=lfb;
        memset(lbb, TRANSP, var_screeninfo.xres*var_screeninfo.yres*sizeof(uint32_t));
index adbe4854e6ea4ba6ca589bf34bb6fa1fba5da690..9e0ef48ab2b126f69cbdf1bf6565267ac7cf6ea2 100644 (file)
@@ -162,7 +162,7 @@ enum {
 #define TRANSP 0
 
 extern uint32_t bgra[];
-extern int stride;
+extern int swidth;
 extern uint32_t *lfb, *lbb;
 
 extern int FSIZE_BIG;
diff --git a/text.c b/text.c
index 0c8bfa20e2565d2f7195bb56025bd2683b2692fd..384ef99d8891a9610e3af6adf1428f4534bde80b 100644 (file)
--- a/text.c
+++ b/text.c
@@ -291,10 +291,10 @@ int RenderChar(FT_ULong currentchar, int _sx, int _sy, int _ex, int color)
                if (_sx + sbit->xadvance >= _ex)
                        return -1; /* limit to maxwidth */
 
-               uint32_t bgcolor = *(lbb + (starty + _sy - _d - 1) * stride + (startx + _sx + sbit->left));
+               uint32_t bgcolor = *(lbb + (starty + _sy - _d - 1) * swidth + (startx + _sx + sbit->left));
                uint32_t fgcolor = bgra[color];
                uint32_t *colors = lookup_colors(fgcolor, bgcolor);
-               uint32_t *p = lbb + (startx + _sx + sbit->left + kerning.x) + stride * (starty + _sy - sbit->top - _d);
+               uint32_t *p = lbb + (startx + _sx + sbit->left + kerning.x) + swidth * (starty + _sy - sbit->top - _d);
                uint32_t *r = p + (_ex - _sx);  /* end of usable box */
                for(row = 0; row < sbit->height; row++)
                {
@@ -308,8 +308,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;
                }
        }