]> git.sesse.net Git - vlc/commitdiff
* png_bitmap.cpp: fixed handling of PNG bitmaps with an alpha channel
authorCyril Deguet <asmax@videolan.org>
Sun, 23 Oct 2005 14:39:57 +0000 (14:39 +0000)
committerCyril Deguet <asmax@videolan.org>
Sun, 23 Oct 2005 14:39:57 +0000 (14:39 +0000)
 (was broken for quite a long time...)
* ctrl_tree.cpp: removed debug messages

modules/gui/skins2/controls/ctrl_tree.cpp
modules/gui/skins2/src/png_bitmap.cpp

index 4858a28b267c47adfc074fd702344d0770708868..b9c9fc9890f8d66f10fbd13f9c32542d51cfbdf4 100644 (file)
@@ -146,8 +146,6 @@ void CtrlTree::onUpdate( Subject<VarPercent> &rPercent )
 
     int excessItems = m_rTree.visibleItems() - maxItems();
 
-    fprintf( stderr, "Hullo\n");
-
     if( excessItems > 0)
     {
         VarPercent &rVarPos = m_rTree.getPositionVar();
@@ -159,14 +157,11 @@ void CtrlTree::onUpdate( Subject<VarPercent> &rPercent )
     }
     if( m_lastPos != it )
     {
-        fprintf( stderr, "updating\n" );
         // Redraw the control if the position has changed
         m_lastPos = it;
         makeImage();
         notifyLayout();
     }
-    else
-        fprintf( stderr, "not updating\n" );
 }
 
 void CtrlTree::onResize()
index 24c41f9272a336af98b687a63eb27157a0d6dda9..c8134a126137285cca4f489d7c5cb16f628c0f6a 100644 (file)
@@ -49,14 +49,24 @@ PngBitmap::PngBitmap( intf_thread_t *pIntf, image_handler_t *pImageHandler,
     {
         for( int x = 0; x < m_width; x++ )
         {
-            uint32_t b = *(pData++) = *(pSrc++);
-            uint32_t g = *(pData++) = *(pSrc++);
-            uint32_t r = *(pData++) = *(pSrc++);
-            *pData = *pSrc;
+            uint32_t b = *(pSrc++);
+            uint32_t g = *(pSrc++);
+            uint32_t r = *(pSrc++);
+            uint8_t a = *(pSrc++);
+            *(pData++) = (b * a) >> 8;
+            *(pData++) = (g * a) >> 8;
+            *(pData++) = (r * a) >> 8;
 
             // Transparent pixel ?
-            if( aColor == (r<<16 | g<<8 | b) ) *pData = 0;
-            pData++; pSrc++;
+            if( aColor == (r<<16 | g<<8 | b) )
+            {
+                *pData = 0;
+            }
+            else
+            {
+                *pData = a;
+            }
+            pData++;
         }
         pSrc += pPic->p->i_pitch - m_width * 4;
     }