]> git.vomp.tv Git - vompclient.git/commitdiff
Fix for teletext on MVP
authorChris Tallon <chris@vomp.tv>
Sat, 18 Jul 2009 19:48:09 +0000 (19:48 +0000)
committerChris Tallon <chris@vomp.tv>
Sat, 18 Jul 2009 19:48:09 +0000 (19:48 +0000)
vteletextview.cc

index 08274ee2aa19cbd744859eb11018bcd9dea33331..168f65d828b55d8713bd5a0afe744f8798016f3e 100644 (file)
 #include "remote.h"
 #include "teletxt/txtfont.h"
 
-float interpol_table_fac1[16][22];
-float interpol_table_fac2[16][22];
-float interpol_table_fac3[16][22];
-float interpol_table_fac4[16][22];
+unsigned int interpol_table_fac1[16][22];
+unsigned int interpol_table_fac2[16][22];
+unsigned int interpol_table_fac3[16][22];
+unsigned int interpol_table_fac4[16][22];
 int interpol_lowbit[16];
 int interpol_upbit[16];
 int interpol_lowline[22];
@@ -59,10 +59,10 @@ void initpol_tables(){
             interpol_upbit[px]= (min((unsigned int)ceil(fposx),11));
             interpol_lowbit[px]= (max((unsigned int)floor(fposx),0));
 
-            interpol_table_fac1[px][py]=xweight*yweight;
-            interpol_table_fac2[px][py]=xinvweight*yweight;
-            interpol_table_fac3[px][py]=xweight*yinvweight;
-            interpol_table_fac4[px][py]=xinvweight*yinvweight;
+            interpol_table_fac1[px][py]=xweight*yweight*256.;
+            interpol_table_fac2[px][py]=xinvweight*yweight*256.;
+            interpol_table_fac3[px][py]=xweight*yinvweight*256.;
+            interpol_table_fac4[px][py]=xinvweight*yinvweight*256.;
 
         }
     }
@@ -80,11 +80,11 @@ VTeletextView::VTeletextView(TeletextDecoderVBIEBU* TTdecoder,Boxx* playerview)
     { 
         //setSize(680, 550);
         setSize(680,22); //Only first line
-        setPosition(40, 13);
+        setPosition(40, 26);
     }
     else
     {
-        setPosition(40, 15);
+        setPosition(40, 30);
         //setSize(680, 450);
         setSize(680,18);//only first line
     }
@@ -218,16 +218,16 @@ void VTeletextView::drawChar(int x, int y, cTeletextChar c)
             Colour ulc=( upperbitline &(0x8000>>lowerbit)) ? fgcharcl: bgcharcl;
             Colour luc=( lowerbitline &(0x8000>>upperbit)) ? fgcharcl: bgcharcl;
             Colour llc=( lowerbitline &(0x8000>>lowerbit)) ? fgcharcl: bgcharcl;
-            float fac1,fac2,fac3,fac4;
+            unsigned int fac1,fac2,fac3,fac4;
             fac1=interpol_table_fac1[px][py];
             fac2=interpol_table_fac2[px][py];
             fac3=interpol_table_fac3[px][py];
             fac4=interpol_table_fac4[px][py];
          
-            Colour res(uuc.red*fac1+ulc.red*fac2+luc.red*fac3+llc.red*fac4,
-                uuc.green*fac1+ulc.green*fac2+luc.green*fac3+llc.green*fac4,
-                uuc.blue*fac1+ulc.blue*fac2+luc.blue*fac3+llc.blue*fac4,
-                uuc.alpha*fac1+ulc.alpha*fac2+luc.alpha*fac3+llc.alpha*fac4); //if this is too slow make a table
+            Colour res((uuc.red*fac1+ulc.red*fac2+luc.red*fac3+llc.red*fac4)/256,
+                (uuc.green*fac1+ulc.green*fac2+luc.green*fac3+llc.green*fac4)/256,
+                (uuc.blue*fac1+ulc.blue*fac2+luc.blue*fac3+llc.blue*fac4)/256,
+                (uuc.alpha*fac1+ulc.alpha*fac2+luc.alpha*fac3+llc.alpha*fac4)/256); //if this is too slow make a table
             drawtarget->drawPixelAlpha(screenposx+px,screenposy+py,res, true);
         }
     }