|
@@ -356,6 +356,19 @@ char TNS_LCD_MAP_16[][16]={
|
|
|
{0,0,0,0,1,1,1,1,0,0,1,1,0,0,0,0},{0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0},
|
|
|
{0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1},{0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1},
|
|
|
{0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0},{1,1,0,0,1,1,0,0,0,0,0,0,0,1,1,0},
|
|
|
+ {0,0,1,0,1,1,0,1,0,1,0,0,0,0,0,0},{0,0,0,1,1,1,0,0,1,1,0,1,0,0,0,0},//a
|
|
|
+ {0,0,1,1,1,1,0,1,0,0,0,0,0,0,0,0},{0,0,1,0,1,1,0,1,1,1,0,0,0,0,0,0},
|
|
|
+ {0,0,1,0,1,1,0,1,0,0,0,0,0,0,1,0},{0,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0},
|
|
|
+ {0,1,0,1,1,1,0,1,1,0,1,1,0,0,0,0},{0,0,1,0,0,1,1,1,0,1,0,0,0,0,0,0},
|
|
|
+ {1,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0},{0,1,0,1,1,1,0,0,0,0,0,1,0,0,0,0},
|
|
|
+ {0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,1},{1,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0},
|
|
|
+ {0,0,1,1,0,0,0,1,0,1,0,1,0,0,0,0},{0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0},
|
|
|
+ {0,0,1,1,1,1,0,1,0,0,0,1,0,0,0,0},{1,1,0,1,0,0,0,0,1,1,1,0,0,0,0,0},
|
|
|
+ {1,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0},{0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0},
|
|
|
+ {0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1},{0,0,1,1,0,1,0,0,1,1,0,0,0,0,0,0},
|
|
|
+ {0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0},{0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0},
|
|
|
+ {0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1},{0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1},
|
|
|
+ {0,0,0,1,1,1,0,0,1,0,1,1,0,0,0,0},{0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0},
|
|
|
};
|
|
|
|
|
|
// 1
|
|
@@ -3161,7 +3174,7 @@ int tnsStringGetWidthU(uint32_t *contentU, int Count, int UseMono){
|
|
|
int tnsDrawLCD7_ProgressX11(real x, real y, real Percent){
|
|
|
real hgap=LA_RH/15; real vgap=LA_RH/5;
|
|
|
real MA=FM->UsingFont->MonoAdvance;
|
|
|
- real w=MA-hgap*2, h=LA_RH-vgap*2; y+=vgap; x+=hgap-MA;
|
|
|
+ real w=MA-hgap*2, h=LA_RH-vgap*2; y+=vgap; x+=hgap-MA; real shear=h/12;
|
|
|
TNS_CLAMP(Percent,0,1);
|
|
|
char str[10]; sprintf(str,"%d",(int)(Percent*100)); int len=strlen(str);
|
|
|
for(int i=len-1;i>=0;i--){
|
|
@@ -3171,8 +3184,10 @@ int tnsDrawLCD7_ProgressX11(real x, real y, real Percent){
|
|
|
for(int i=0;i<7;i++){
|
|
|
if(TNS_LCD_MAP_7[uc][i]){
|
|
|
real* seg=TNS_LCD_SEG_7[i];
|
|
|
+ real s1=tnsInterpolate(shear,-shear,seg[1]); real s2=tnsInterpolate(shear,-shear,seg[3]);
|
|
|
XDrawLine(MAIN.dpy,MAIN.Progress.w,MAIN.Progress.gc,
|
|
|
- tnsInterpolate(x,x+w,seg[0]),tnsInterpolate(y,y+h,seg[1]),tnsInterpolate(x,x+w,seg[2]),tnsInterpolate(y,y+h,seg[3]));
|
|
|
+ tnsInterpolate(x+s1,x+w+s1,seg[0]),tnsInterpolate(y,y+h,seg[1]),
|
|
|
+ tnsInterpolate(x+s2,x+w+s2,seg[2]),tnsInterpolate(y,y+h,seg[3]));
|
|
|
}
|
|
|
}
|
|
|
x-=MA;
|
|
@@ -3180,28 +3195,31 @@ int tnsDrawLCD7_ProgressX11(real x, real y, real Percent){
|
|
|
return 1;
|
|
|
}
|
|
|
int tnsMakeLCD7(real x, real y, real w, real h, int ch){
|
|
|
- int uc=ch;
|
|
|
+ int uc=ch; real shear=h/12;
|
|
|
if(ch>='0' && ch<='9'){ uc-='0'; }
|
|
|
else {return 0;}
|
|
|
for(int i=0;i<7;i++){
|
|
|
if(TNS_LCD_MAP_7[uc][i]){
|
|
|
real* seg=TNS_LCD_SEG_7[i];
|
|
|
- tnsVertex2d(tnsInterpolate(x,x+w,seg[0]),tnsInterpolate(y,y+h,seg[1]));
|
|
|
- tnsVertex2d(tnsInterpolate(x,x+w,seg[2]),tnsInterpolate(y,y+h,seg[3]));
|
|
|
+ real s1=tnsInterpolate(shear,-shear,seg[1]); real s2=tnsInterpolate(shear,-shear,seg[3]);
|
|
|
+ tnsVertex2d(tnsInterpolate(x+s1,x+w+s1,seg[0]),tnsInterpolate(y,y+h,seg[1]));
|
|
|
+ tnsVertex2d(tnsInterpolate(x+s2,x+w+s2,seg[2]),tnsInterpolate(y,y+h,seg[3]));
|
|
|
}
|
|
|
}
|
|
|
return 1;
|
|
|
}
|
|
|
int tnsMakeLCD16(real x, real y, real w, real h, int ch){
|
|
|
- int uc=ch;
|
|
|
+ int uc=ch; real shear=h/12;
|
|
|
if(ch>='0' && ch<='9'){ uc-='0'; }
|
|
|
elif(ch>='A' && ch<='Z'){ uc-='A'; uc+=10; }
|
|
|
+ elif(ch>='a' && ch<='z'){ uc-='a'; uc+=(10+26); }
|
|
|
else {return 0;}
|
|
|
for(int i=0;i<16;i++){
|
|
|
if(TNS_LCD_MAP_16[uc][i]){
|
|
|
real* seg=TNS_LCD_SEG_16[i];
|
|
|
- tnsVertex2d(tnsInterpolate(x,x+w,seg[0]),tnsInterpolate(y,y+h,seg[1]));
|
|
|
- tnsVertex2d(tnsInterpolate(x,x+w,seg[2]),tnsInterpolate(y,y+h,seg[3]));
|
|
|
+ real s1=tnsInterpolate(shear,-shear,seg[1]); real s2=tnsInterpolate(shear,-shear,seg[3]);
|
|
|
+ tnsVertex2d(tnsInterpolate(x+s1,x+w+s1,seg[0]),tnsInterpolate(y,y+h,seg[1]));
|
|
|
+ tnsVertex2d(tnsInterpolate(x+s2,x+w+s2,seg[2]),tnsInterpolate(y,y+h,seg[3]));
|
|
|
}
|
|
|
}
|
|
|
return 1;
|