Delete switch of doom.
authorSøren Sandmann <sandmann@redhat.com>
Sun, 2 Dec 2007 01:46:29 +0000 (20:46 -0500)
committerSøren Sandmann <sandmann@redhat.com>
Sun, 2 Dec 2007 01:46:29 +0000 (20:46 -0500)
pixman/pixman-pict.c

index 9f03656..1341148 100644 (file)
@@ -1712,572 +1712,6 @@ pixman_image_composite (pixman_op_t      op,
        }
     }
     
-#if 0
-    switch (op) {
-    case PIXMAN_OP_OVER:
-       if (pMask)
-       {
-           if (can_get_solid(pSrc) &&
-               !maskRepeat)
-           {
-               if (pSrc->type == SOLID || PIXMAN_FORMAT_COLOR(pSrc->bits.format)) {
-                   switch (pMask->bits.format) {
-                   case PIXMAN_a8:
-                       switch (pDst->bits.format) {
-                       case PIXMAN_r5g6b5:
-                       case PIXMAN_b5g6r5:
-#ifdef USE_MMX
-                           if (pixman_have_mmx())
-                               func = fbCompositeSolidMask_nx8x0565mmx;
-                           else
-#endif
-                               func = fbCompositeSolidMask_nx8x0565;
-                           break;
-                       case PIXMAN_r8g8b8:
-                       case PIXMAN_b8g8r8:
-                           func = fbCompositeSolidMask_nx8x0888;
-                           break;
-                       case PIXMAN_a8r8g8b8:
-                       case PIXMAN_x8r8g8b8:
-                       case PIXMAN_a8b8g8r8:
-                       case PIXMAN_x8b8g8r8:
-#ifdef USE_MMX
-                           if (pixman_have_mmx())
-                               func = fbCompositeSolidMask_nx8x8888mmx;
-                           else
-#endif
-                               func = fbCompositeSolidMask_nx8x8888;
-                           break;
-                       default:
-                           break;
-                       }
-                       break;
-                   case PIXMAN_a8r8g8b8:
-                       if (pMask->common.component_alpha) {
-                           switch (pDst->bits.format) {
-                           case PIXMAN_a8r8g8b8:
-                           case PIXMAN_x8r8g8b8:
-#ifdef USE_MMX
-                               if (pixman_have_mmx())
-                                   func = fbCompositeSolidMask_nx8888x8888Cmmx;
-                               else
-#endif
-                                   func = fbCompositeSolidMask_nx8888x8888C;
-                               break;
-                           case PIXMAN_r5g6b5:
-#ifdef USE_MMX
-                               if (pixman_have_mmx())
-                                   func = fbCompositeSolidMask_nx8888x0565Cmmx;
-                               else
-#endif
-                                   func = fbCompositeSolidMask_nx8888x0565C;
-                               break;
-                           default:
-                               break;
-                           }
-                       }
-                       break;
-                   case PIXMAN_a8b8g8r8:
-                       if (pMask->common.component_alpha) {
-                           switch (pDst->bits.format) {
-                           case PIXMAN_a8b8g8r8:
-                           case PIXMAN_x8b8g8r8:
-#ifdef USE_MMX
-                               if (pixman_have_mmx())
-                                   func = fbCompositeSolidMask_nx8888x8888Cmmx;
-                               else
-#endif
-                                   func = fbCompositeSolidMask_nx8888x8888C;
-                               break;
-                           case PIXMAN_b5g6r5:
-#ifdef USE_MMX
-                               if (pixman_have_mmx())
-                                   func = fbCompositeSolidMask_nx8888x0565Cmmx;
-                               else
-#endif
-                                   func = fbCompositeSolidMask_nx8888x0565C;
-                               break;
-                           default:
-                               break;
-                           }
-                       }
-                       break;
-                   case PIXMAN_a1:
-                       switch (pDst->bits.format) {
-                       case PIXMAN_r5g6b5:
-                       case PIXMAN_b5g6r5:
-                       case PIXMAN_r8g8b8:
-                       case PIXMAN_b8g8r8:
-                       case PIXMAN_a8r8g8b8:
-                       case PIXMAN_x8r8g8b8:
-                       case PIXMAN_a8b8g8r8:
-                       case PIXMAN_x8b8g8r8:
-                       {
-                           uint32_t src;
-
-#if 0
-                           /* FIXME */
-                           fbComposeGetSolid(pSrc, src, pDst->bits.format);
-                           if ((src & 0xff000000) == 0xff000000)
-                               func = fbCompositeSolidMask_nx1xn;
-#endif
-                           break;
-                       }
-                       default:
-                           break;
-                       }
-                       break;
-                   default:
-                       break;
-                   }
-               }
-               if (func)
-                   srcRepeat = FALSE;
-           }
-           else if (!srcRepeat) /* has mask and non-repeating source */
-           {
-               if (pSrc->bits.bits == pMask->bits.bits &&
-                   xSrc == xMask &&
-                   ySrc == yMask &&
-                   !pMask->common.component_alpha && !maskRepeat)
-               {
-                   /* source == mask: non-premultiplied data */
-                   switch (pSrc->bits.format) {
-                   case PIXMAN_x8b8g8r8:
-                       switch (pMask->bits.format) {
-                       case PIXMAN_a8r8g8b8:
-                       case PIXMAN_a8b8g8r8:
-                           switch (pDst->bits.format) {
-                           case PIXMAN_a8r8g8b8:
-                           case PIXMAN_x8r8g8b8:
-#ifdef USE_MMX
-                               if (pixman_have_mmx())
-                                   func = fbCompositeSrc_8888RevNPx8888mmx;
-#endif
-                               break;
-                           case PIXMAN_r5g6b5:
-#ifdef USE_MMX
-                               if (pixman_have_mmx())
-                                   func = fbCompositeSrc_8888RevNPx0565mmx;
-#endif
-                               break;
-                           default:
-                               break;
-                           }
-                           break;
-                       default:
-                           break;
-                       }
-                       break;
-                   case PIXMAN_x8r8g8b8:
-                       switch (pMask->bits.format) {
-                       case PIXMAN_a8r8g8b8:
-                       case PIXMAN_a8b8g8r8:
-                           switch (pDst->bits.format) {
-                           case PIXMAN_a8b8g8r8:
-                           case PIXMAN_x8b8g8r8:
-#ifdef USE_MMX
-                               if (pixman_have_mmx())
-                                   func = fbCompositeSrc_8888RevNPx8888mmx;
-#endif
-                               break;
-                           case PIXMAN_r5g6b5:
-#ifdef USE_MMX
-                               if (pixman_have_mmx())
-                                   func = fbCompositeSrc_8888RevNPx0565mmx;
-#endif
-                               break;
-                           default:
-                               break;
-                           }
-                           break;
-                       default:
-                           break;
-                       }
-                       break;
-                   default:
-                       break;
-                   }
-                   break;
-               }
-               else if (maskRepeat &&
-                        pMask->bits.width == 1 &&
-                        pMask->bits.height == 1)
-               {
-                   switch (pSrc->bits.format) {
-#ifdef USE_MMX
-                   case PIXMAN_x8r8g8b8:
-                       if ((pDst->bits.format == PIXMAN_a8r8g8b8 ||
-                            pDst->bits.format == PIXMAN_x8r8g8b8) &&
-                           pMask->bits.format == PIXMAN_a8 && pixman_have_mmx())
-                           func = fbCompositeSrc_x888xnx8888mmx;
-                       break;
-                   case PIXMAN_x8b8g8r8:
-                       if ((pDst->bits.format == PIXMAN_a8b8g8r8 ||
-                            pDst->bits.format == PIXMAN_x8b8g8r8) &&
-                           pMask->bits.format == PIXMAN_a8 && pixman_have_mmx())
-                           func = fbCompositeSrc_x888xnx8888mmx;
-                       break;
-                   case PIXMAN_a8r8g8b8:
-                       if ((pDst->bits.format == PIXMAN_a8r8g8b8 ||
-                            pDst->bits.format == PIXMAN_x8r8g8b8) &&
-                           pMask->bits.format == PIXMAN_a8 && pixman_have_mmx())
-                           func = fbCompositeSrc_8888x8x8888mmx;
-                       break;
-                   case PIXMAN_a8b8g8r8:
-                       if ((pDst->bits.format == PIXMAN_a8b8g8r8 ||
-                            pDst->bits.format == PIXMAN_x8b8g8r8) &&
-                           pMask->bits.format == PIXMAN_a8 && pixman_have_mmx())
-                           func = fbCompositeSrc_8888x8x8888mmx;
-                       break;
-#endif
-                   default:
-                       break;
-                   }
-
-                   if (func)
-                       maskRepeat = FALSE;
-               }
-               else
-               {
-#if 0
-                   /* FIXME: This code is commented out since it's apparently not
-                    * actually faster than the generic code.
-                    */
-                   if (pMask->bits.format == PIXMAN_a8)
-                   {
-                       if ((pSrc->bits.format == PIXMAN_x8r8g8b8 &&
-                            (pDst->bits.format == PIXMAN_x8r8g8b8 ||
-                             pDst->bits.format == PIXMAN_a8r8g8b8))  ||
-                           (pSrc->bits.format == PIXMAN_x8b8g8r8 &&
-                            (pDst->bits.format == PIXMAN_x8b8g8r8 ||
-                             pDst->bits.format == PIXMAN_a8b8g8r8)))
-                       {
-#ifdef USE_MMX
-                           if (pixman_have_mmx())
-                               func = fbCompositeOver_x888x8x8888mmx;
-                           else
-#endif
-                               func = fbCompositeOver_x888x8x8888;
-                       }
-                   }
-#endif
-               }
-           }
-       }
-       else /* no mask */
-       {
-           if (can_get_solid(pSrc))
-           {
-               /* no mask and repeating source */
-               if (pSrc->type == SOLID || pSrc->bits.format == PIXMAN_a8r8g8b8)
-               {
-                   switch (pDst->bits.format) {
-                   case PIXMAN_a8r8g8b8:
-                   case PIXMAN_x8r8g8b8:
-#ifdef USE_MMX
-                       if (pixman_have_mmx())
-                       {
-                           srcRepeat = FALSE;
-                           func = fbCompositeSolid_nx8888mmx;
-                       }
-#endif
-                       break;
-                   case PIXMAN_r5g6b5:
-#ifdef USE_MMX
-                       if (pixman_have_mmx())
-                       {
-                           srcRepeat = FALSE;
-                           func = fbCompositeSolid_nx0565mmx;
-                       }
-#endif
-                       break;
-                   default:
-                       break;
-                   }
-                   break;
-               }
-           }
-           else if (! srcRepeat)
-           {
-               /*
-                * Formats without alpha bits are just Copy with Over
-                */
-               if (pSrc->bits.format == pDst->bits.format && !PIXMAN_FORMAT_A(pSrc->bits.format))
-               {
-#ifdef USE_MMX
-                   if (pixman_have_mmx() &&
-                       (pSrc->bits.format == PIXMAN_x8r8g8b8 || pSrc->bits.format == PIXMAN_x8b8g8r8))
-                       func = fbCompositeCopyAreammx;
-                   else
-#endif
-                       ;
-               }
-               else switch (pSrc->bits.format) {
-               case PIXMAN_a8r8g8b8:
-                   switch (pDst->bits.format) {
-                   case PIXMAN_a8r8g8b8:
-                   case PIXMAN_x8r8g8b8:
-#ifdef USE_MMX
-                       if (pixman_have_mmx())
-                           func = fbCompositeSrc_8888x8888mmx;
-                       else
-#endif
-                           func = fbCompositeSrc_8888x8888;
-                       break;
-                   case PIXMAN_r8g8b8:
-                       func = fbCompositeSrc_8888x0888;
-                       break;
-                   case PIXMAN_r5g6b5:
-#ifdef USE_MMX
-                       if (pixman_have_mmx())
-                           func = fbCompositeSrc_8888x0565mmx;
-                       else
-#endif
-                           func = fbCompositeSrc_8888x0565;
-                       break;
-                   default:
-                       break;
-                   }
-                   break;
-               case PIXMAN_x8r8g8b8:
-                   switch (pDst->bits.format) {
-                   case PIXMAN_x8r8g8b8:
-#ifdef USE_MMX
-                       if (pixman_have_mmx())
-                           func = fbCompositeCopyAreammx;
-#endif
-                       break;
-                   default:
-                       break;
-                   }
-               case PIXMAN_x8b8g8r8:
-                   switch (pDst->bits.format) {
-                   case PIXMAN_x8b8g8r8:
-#ifdef USE_MMX
-                       if (pixman_have_mmx())
-                           func = fbCompositeCopyAreammx;
-#endif
-                       break;
-                   default:
-                       break;
-                   }
-                   break;
-               case PIXMAN_a8b8g8r8:
-                   switch (pDst->bits.format) {
-                   case PIXMAN_a8b8g8r8:
-                   case PIXMAN_x8b8g8r8:
-#ifdef USE_MMX
-                       if (pixman_have_mmx())
-                           func = fbCompositeSrc_8888x8888mmx;
-                       else
-#endif
-                           func = fbCompositeSrc_8888x8888;
-                       break;
-                   case PIXMAN_b8g8r8:
-                       func = fbCompositeSrc_8888x0888;
-                       break;
-                   case PIXMAN_b5g6r5:
-#ifdef USE_MMX
-                       if (pixman_have_mmx())
-                           func = fbCompositeSrc_8888x0565mmx;
-                       else
-#endif
-                           func = fbCompositeSrc_8888x0565;
-                       break;
-                   default:
-                       break;
-                   }
-                   break;
-               default:
-                   break;
-               }
-           }
-       }
-       break;
-    case PIXMAN_OP_ADD:
-       if (pMask == 0)
-       {
-           switch (pSrc->bits.format) {
-           case PIXMAN_a8r8g8b8:
-               switch (pDst->bits.format) {
-               case PIXMAN_a8r8g8b8:
-#ifdef USE_MMX
-                   if (pixman_have_mmx())
-                       func = fbCompositeSrcAdd_8888x8888mmx;
-                   else
-#endif
-                       func = fbCompositeSrcAdd_8888x8888;
-                   break;
-               default:
-                   break;
-               }
-               break;
-           case PIXMAN_a8b8g8r8:
-               switch (pDst->bits.format) {
-               case PIXMAN_a8b8g8r8:
-#ifdef USE_MMX
-                   if (pixman_have_mmx())
-                       func = fbCompositeSrcAdd_8888x8888mmx;
-                   else
-#endif
-                       func = fbCompositeSrcAdd_8888x8888;
-                   break;
-               default:
-                   break;
-               }
-               break;
-           case PIXMAN_a8:
-               switch (pDst->bits.format) {
-               case PIXMAN_a8:
-#ifdef USE_MMX
-                   if (pixman_have_mmx())
-                       func = fbCompositeSrcAdd_8000x8000mmx;
-                   else
-#endif
-                       func = fbCompositeSrcAdd_8000x8000;
-                   break;
-               default:
-                   break;
-               }
-               break;
-           case PIXMAN_a1:
-               switch (pDst->bits.format) {
-               case PIXMAN_a1:
-#if 0
-                   /* FIXME */
-                   func = fbCompositeSrcAdd_1000x1000;
-#endif
-                   break;
-               default:
-                   break;
-               }
-               break;
-           default:
-               break;
-           }
-       }
-       else
-       {
-           if (can_get_solid (pSrc)            &&
-               pMask->bits.format == PIXMAN_a8 &&
-               pDst->bits.format == PIXMAN_a8)
-           {
-               srcRepeat = FALSE;
-#ifdef USE_MMX
-               if (pixman_have_mmx())
-                   func = fbCompositeSrcAdd_8888x8x8mmx;
-               else
-#endif
-                   func = fbCompositeSrcAdd_8888x8x8;
-           }
-       }
-       break;
-    case PIXMAN_OP_SRC:
-       if (pMask)
-       {
-#ifdef USE_MMX
-           if (can_get_solid (pSrc))
-           {
-               if (pMask->bits.format == PIXMAN_a8)
-               {
-                   switch (pDst->bits.format)
-                   {
-                   case PIXMAN_a8r8g8b8:
-                   case PIXMAN_x8r8g8b8:
-                   case PIXMAN_a8b8g8r8:
-                   case PIXMAN_x8b8g8r8:
-                       if (pixman_have_mmx())
-                       {
-                           srcRepeat = FALSE;
-                           func = fbCompositeSolidMaskSrc_nx8x8888mmx;
-                       }
-                       break;
-                   default:
-                       break;
-                   }
-               }
-           }
-#endif
-       }
-       else
-       {
-           if (can_get_solid (pSrc))
-           {
-               switch (pDst->bits.format)
-               {
-               case PIXMAN_a8r8g8b8:
-               case PIXMAN_x8r8g8b8:
-               case PIXMAN_a8b8g8r8:
-               case PIXMAN_x8b8g8r8:
-               case PIXMAN_a8:
-               case PIXMAN_r5g6b5:
-                   func = fbCompositeSolidFill;
-                   srcRepeat = FALSE;
-                   break;
-               default:
-                   break;
-               }
-           }
-           else if (pSrc->bits.format == pDst->bits.format)
-           {
-#ifdef USE_MMX
-               if (pSrc->bits.bits != pDst->bits.bits && pixman_have_mmx() &&
-                   (PIXMAN_FORMAT_BPP (pSrc->bits.format) == 16 ||
-                    PIXMAN_FORMAT_BPP (pSrc->bits.format) == 32))
-                   func = fbCompositeCopyAreammx;
-               else
-#endif
-                   /* FIXME */
-#if 0
-                   func = fbCompositeSrcSrc_nxn
-#endif
-                       ;
-           }
-           else if (((pSrc->bits.format == PIXMAN_a8r8g8b8 ||
-                      pSrc->bits.format == PIXMAN_x8r8g8b8) &&
-                     pDst->bits.format == PIXMAN_x8r8g8b8)     ||
-                    ((pSrc->bits.format == PIXMAN_a8b8g8r8 ||
-                      pSrc->bits.format == PIXMAN_x8b8g8r8) &&
-                     pDst->bits.format == PIXMAN_x8b8g8r8))
-           {
-               func = fbCompositeSrc_8888xx888;
-           }
-       }
-       break;
-       /*-=-*/
-    case PIXMAN_OP_IN:
-       if (pSrc->bits.format == PIXMAN_a8 &&
-           pDst->bits.format == PIXMAN_a8 &&
-           !pMask)
-       {
-#ifdef USE_MMX
-           if (pixman_have_mmx())
-               func = fbCompositeIn_8x8mmx;
-           else
-#endif
-               func = fbCompositeSrcIn_8x8;
-       }
-       else if (srcRepeat && pMask && !pMask->common.component_alpha &&
-                (pSrc->bits.format == PIXMAN_a8r8g8b8 ||
-                 pSrc->bits.format == PIXMAN_a8b8g8r8)   &&
-                (pMask->bits.format == PIXMAN_a8)        &&
-                pDst->bits.format == PIXMAN_a8)
-       {
-#ifdef USE_MMX
-           if (pixman_have_mmx())
-               func = fbCompositeIn_nx8x8mmx;
-           else
-#endif
-               func = fbCompositeSolidMaskIn_nx8x8;
-           srcRepeat = FALSE;
-       }
-       break;
-    default:
-       break;
-    }
-#endif
-
     if ((srcRepeat                     &&
         pSrc->bits.width == 1          &&
         pSrc->bits.height == 1)        ||
@@ -2296,7 +1730,8 @@ pixman_image_composite (pixman_op_t      op,
        func = NULL;
     }
 
-    if (!func) {
+    if (!func)
+    {
        func = pixman_image_composite_rect;
 
        /* CompositeGeneral optimizes 1x1 repeating images itself */