亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? libmng_pixels.c

?? 一款最完整的工業組態軟源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
        for (iX = pData->iSourcel + pData->iCol; iX < pData->iSourcer; iX += pData->iColinc)
        {                              /* scale down by dropping the LSB */
          *pScanline     = *pDataline;
          *(pScanline+1) = *(pDataline+2);
          *(pScanline+2) = *(pDataline+4);
          *(pScanline+3) = *(pDataline+6);

          pScanline += (pData->iColinc << 2);
          pDataline += 8;
        }
      }
      else
#endif
      {
        for (iX = pData->iSourcel + pData->iCol; iX < pData->iSourcer; iX += pData->iColinc)
        {                              /* copy the values */
          *pScanline     = *pDataline;
          *(pScanline+1) = *(pDataline+1);
          *(pScanline+2) = *(pDataline+2);
          *(pScanline+3) = *(pDataline+3);

          pScanline += (pData->iColinc << 2);
          pDataline += 4;
        }
      }
    }
    else
    {
#ifndef MNG_NO_16BIT_SUPPORT
      if (pData->bIsRGBA16)            /* 16-bit input row ? */
      {
        for (iX = pData->iSourcel + pData->iCol; iX < pData->iSourcer; iX += pData->iColinc)
        {                              /* get alpha values */
          iFGa16 = mng_get_uint16 (pDataline+6);
          iBGa16 = (mng_uint16)(*(pScanline+3));
          iBGa16 = (mng_uint16)(iBGa16 << 8) | iBGa16;

          if (iFGa16)                  /* any opacity at all ? */
          {                            /* fully opaque or background fully transparent ? */
            if ((iFGa16 == 0xFFFF) || (iBGa16 == 0))
            {                          /* plain copy it */
              *pScanline     = *pDataline;
              *(pScanline+1) = *(pDataline+2);
              *(pScanline+2) = *(pDataline+4);
              *(pScanline+3) = *(pDataline+6);
            }
            else
            {
              if (iBGa16 == 0xFFFF)    /* background fully opaque ? */
              {                        /* get the proper values */
#ifdef MNG_OPTIMIZE_FOOTPRINT_COMPOSE
              int i;
              for (i=2; i >= 0; i--)
              {
                iFGg16 = mng_get_uint16 (pDataline+i+i);
                                       /* scale background up */
                iBGg16 = (mng_uint16)(*(pScanline+i));
                iBGg16 = (mng_uint16)((mng_uint32)iBGg16 << 8) | iBGg16;
                                       /* now compose */
                MNG_COMPOSE16(iFGg16, iFGg16, iFGa16, iBGg16)
                                       /* and return the composed values */
                *(pScanline+i) = (mng_uint8)(iFGg16 >> 8);
                                       /* alpha remains fully opaque !!! */
              }
#else
                iFGr16 = mng_get_uint16 (pDataline  );
                iFGg16 = mng_get_uint16 (pDataline+2);
                iFGb16 = mng_get_uint16 (pDataline+4);
                                       /* scale background up */
                iBGr16 = (mng_uint16)(*pScanline    );
                iBGg16 = (mng_uint16)(*(pScanline+1));
                iBGb16 = (mng_uint16)(*(pScanline+2));
                iBGr16 = (mng_uint16)((mng_uint32)iBGr16 << 8) | iBGr16;
                iBGg16 = (mng_uint16)((mng_uint32)iBGg16 << 8) | iBGg16;
                iBGb16 = (mng_uint16)((mng_uint32)iBGb16 << 8) | iBGb16;
                                       /* now compose */
                MNG_COMPOSE16(iFGr16, iFGr16, iFGa16, iBGr16)
                MNG_COMPOSE16(iFGg16, iFGg16, iFGa16, iBGg16)
                MNG_COMPOSE16(iFGb16, iFGb16, iFGa16, iBGb16)
                                       /* and return the composed values */
                *pScanline     = (mng_uint8)(iFGr16 >> 8);
                *(pScanline+1) = (mng_uint8)(iFGg16 >> 8);
                *(pScanline+2) = (mng_uint8)(iFGb16 >> 8);
                                       /* alpha remains fully opaque !!! */
#endif
              }
              else
              {                        /* scale background up */
                iBGr16 = (mng_uint16)(*pScanline    );
                iBGg16 = (mng_uint16)(*(pScanline+1));
                iBGb16 = (mng_uint16)(*(pScanline+2));
                iBGr16 = (mng_uint16)((mng_uint32)iBGr16 << 8) | iBGr16;
                iBGg16 = (mng_uint16)((mng_uint32)iBGg16 << 8) | iBGg16;
                iBGb16 = (mng_uint16)((mng_uint32)iBGb16 << 8) | iBGb16;
                                       /* let's blend */
                MNG_BLEND16 (mng_get_uint16 (pDataline  ),
                             mng_get_uint16 (pDataline+2),
                             mng_get_uint16 (pDataline+4), iFGa16,
                             iBGr16, iBGg16, iBGb16, iBGa16,
                             iCr16,  iCg16,  iCb16,  iCa16)
                                       /* and return the composed values */
                *pScanline     = (mng_uint8)(iCr16 >> 8);
                *(pScanline+1) = (mng_uint8)(iCg16 >> 8);
                *(pScanline+2) = (mng_uint8)(iCb16 >> 8);
                *(pScanline+3) = (mng_uint8)(iCa16 >> 8);
              }
            }
          }

          pScanline += (pData->iColinc << 2);
          pDataline += 8;
        }
      }
      else
#endif
      {
        for (iX = pData->iSourcel + pData->iCol; iX < pData->iSourcer; iX += pData->iColinc)
        {
          iFGa8 = *(pDataline+3);      /* get alpha values */
          iBGa8 = *(pScanline+3);

          if (iFGa8)                   /* any opacity at all ? */
          {                            /* fully opaque or background fully transparent ? */
            if ((iFGa8 == 0xFF) || (iBGa8 == 0))
            {                          /* then simply copy the values */
              *pScanline     = *pDataline;
              *(pScanline+1) = *(pDataline+1);
              *(pScanline+2) = *(pDataline+2);
              *(pScanline+3) = *(pDataline+3);
            }
            else
            {
              if (iBGa8 == 0xFF)       /* background fully opaque ? */
              {                        /* do alpha composing */
#ifdef MNG_OPTIMIZE_FOOTPRINT_COMPOSE
              int i;
              for (i=2; i >= 0; i--)
              {
              MNG_COMPOSE8 (*(pScanline+i), *(pDataline+i), iFGa8, *(pScanline+i))
              }
#else
                MNG_COMPOSE8 (*pScanline,     *pDataline,     iFGa8, *pScanline    )
                MNG_COMPOSE8 (*(pScanline+1), *(pDataline+1), iFGa8, *(pScanline+1))
                MNG_COMPOSE8 (*(pScanline+2), *(pDataline+2), iFGa8, *(pScanline+2))
#endif
                                       /* alpha remains fully opaque !!! */
              }
              else
              {                        /* now blend */
                MNG_BLEND8 (*pDataline, *(pDataline+1), *(pDataline+2), iFGa8,
                            *pScanline, *(pScanline+1), *(pScanline+2), iBGa8,
                            iCr8, iCg8, iCb8, iCa8)
                                       /* and return the composed values */
                *pScanline     = iCr8;
                *(pScanline+1) = iCg8;
                *(pScanline+2) = iCb8;
                *(pScanline+3) = iCa8;
              }
            }
          }

          pScanline += (pData->iColinc << 2);
          pDataline += 4;
        }
      }
    }
  }

  check_update_region (pData);

#ifdef MNG_SUPPORT_TRACE
  MNG_TRACE (pData, MNG_FN_DISPLAY_RGBA8, MNG_LC_END)
#endif

  return MNG_NOERROR;
}
#endif /* MNG_SKIPCANVAS_RGBA8 */

/* ************************************************************************** */

#ifndef MNG_SKIPCANVAS_RGBA8_PM
mng_retcode mng_display_rgba8_pm (mng_datap pData)
{
  mng_uint8p pScanline;
  mng_uint8p pDataline;
  mng_int32  iX;
  mng_uint32 s, t;

#ifdef MNG_SUPPORT_TRACE
  MNG_TRACE (pData, MNG_FN_DISPLAY_RGBA8_PM, MNG_LC_START)
#endif
                                       /* viewable row ? */
  if ((pData->iRow >= pData->iSourcet) && (pData->iRow < pData->iSourceb))
  {                                    /* address destination row */
    pScanline = (mng_uint8p)pData->fGetcanvasline (((mng_handle)pData),
                                                   pData->iRow + pData->iDestt -
                                                   pData->iSourcet);
                                       /* adjust destination row starting-point */
    pScanline = pScanline + (pData->iCol << 2) + (pData->iDestl << 2);
    pDataline = pData->pRGBArow;       /* address source row */

#ifndef MNG_NO_16BIT_SUPPORT
    if (pData->bIsRGBA16)              /* adjust source row starting-point */
      pDataline = pDataline + ((pData->iSourcel / pData->iColinc) << 3);
    else
#endif
      pDataline = pDataline + ((pData->iSourcel / pData->iColinc) << 2);

    if (pData->bIsOpaque)              /* forget about transparency ? */
    {
#ifndef MNG_NO_16BIT_SUPPORT
      if (pData->bIsRGBA16)            /* 16-bit input row ? */
      {
        for (iX = pData->iSourcel + pData->iCol; iX < pData->iSourcer; iX += pData->iColinc)
        {                              /* scale down by dropping the LSB */
		  if ((s = pDataline[6]) == 0)
			*(mng_uint32*) pScanline = 0; /* set all components = 0 */
		  else
		  {
			if (s == 255)
			{
              pScanline[0] = pDataline[0];
              pScanline[1] = pDataline[2];
		      pScanline[2] = pDataline[4];
              pScanline[3] = 255;
			}
			else
			{
#ifdef MNG_OPTIMIZE_FOOTPRINT_DIV
              int i;
              for (i=2; i >= 0; i--)
              {
                pScanline[2-i] = DIV255B8(s * pDataline[4-i-i]);
              }
#else
              pScanline[0] = DIV255B8(s * pDataline[0]);
              pScanline[1] = DIV255B8(s * pDataline[2]);
              pScanline[2] = DIV255B8(s * pDataline[4]);
#endif           
              pScanline[3] = (mng_uint8)s;
			}
		  }
          pScanline += (pData->iColinc << 2);
          pDataline += 8;
        }
      }
      else
#endif
      {
        for (iX = pData->iSourcel + pData->iCol; iX < pData->iSourcer; iX += pData->iColinc)
        {                              /* copy the values and premultiply */
		  if ((s = pDataline[3]) == 0)
			*(mng_uint32*) pScanline = 0; /* set all components = 0 */
		  else
		  {
			if (s == 255)
			{
#ifdef MNG_BIGENDIAN_SUPPORTED
              *(mng_uint32*)pScanline = (*(mng_uint32*)pDataline) | 0x000000FF;
#else
              pScanline[0] = pDataline[0];
              pScanline[1] = pDataline[1];
		      pScanline[2] = pDataline[2];
              pScanline[3] = 255;
#endif
			}
			else
			{
#ifdef MNG_OPTIMIZE_FOOTPRINT_DIV
              int i;
              for (i=2; i >= 0; i--)
              {
                pScanline[2-i] = DIV255B8(s * pDataline[2-i]);
              }
#else
              pScanline[0] = DIV255B8(s * pDataline[0]);
              pScanline[1] = DIV255B8(s * pDataline[1]);
		      pScanline[2] = DIV255B8(s * pDataline[2]);
#endif
              pScanline[3] = (mng_uint8)s;
			}
		  }

          pScanline += (pData->iColinc << 2);
          pDataline += 4;
        }
      }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日本欧美一区二区| 91久久精品国产91性色tv| 国产毛片精品视频| 成人午夜电影久久影院| 一本久久精品一区二区| 日韩精品一区二区三区视频播放| 久久久蜜桃精品| 亚洲第一二三四区| 精品无码三级在线观看视频 | 粉嫩蜜臀av国产精品网站| 在线观看一区日韩| 久久综合色8888| 亚洲欧洲性图库| 91福利资源站| 国产精品免费网站在线观看| 一区二区三区四区亚洲| 国产99久久久精品| 欧美一级久久久| 香蕉成人伊视频在线观看| 成人av高清在线| 国产欧美精品国产国产专区| 麻豆视频一区二区| 91精品国产综合久久精品图片| 一区二区三区产品免费精品久久75| 国产精品一区二区91| 91精品国产黑色紧身裤美女| 亚洲午夜免费电影| 欧美午夜精品电影| 亚洲一区免费观看| 色屁屁一区二区| 亚洲精品乱码久久久久久日本蜜臀 | 国产日产欧美一区| 美洲天堂一区二卡三卡四卡视频| 成人黄色网址在线观看| 久久久精品综合| 国产九色sp调教91| 久久综合久久综合久久| 卡一卡二国产精品 | 91.麻豆视频| 一区二区久久久久久| 国产麻豆精品在线| 国产性做久久久久久| 国产裸体歌舞团一区二区| 亚洲精品一区二区三区在线观看| 国内外成人在线视频| 久久综合999| 国产成人自拍网| 国产女人水真多18毛片18精品视频| 国内久久婷婷综合| 日本一区二区三区免费乱视频| 国产一区二区在线看| 久久久精品国产99久久精品芒果| 精品成a人在线观看| 国产一区二区三区香蕉| 国产人久久人人人人爽| 成人精品鲁一区一区二区| 国产精品视频免费| 色婷婷av一区二区三区软件| 一区二区三区欧美视频| 欧洲精品一区二区| 亚洲一区二区三区中文字幕| 在线不卡一区二区| 麻豆成人在线观看| 久久亚洲二区三区| 97久久精品人人做人人爽50路| 亚洲午夜在线观看视频在线| 日韩午夜在线观看| 成人av午夜影院| 天堂久久一区二区三区| 久久蜜臀中文字幕| 在线看国产日韩| 日本免费新一区视频| 国产午夜精品理论片a级大结局| 成人国产精品免费观看动漫| 亚洲午夜一二三区视频| 久久久99免费| 欧美中文字幕一区| 国产在线精品一区二区不卡了| 亚洲精品视频一区| 精品福利一区二区三区免费视频| 色噜噜狠狠色综合中国| 亚洲综合一区二区精品导航| 久久久美女毛片| 欧洲一区二区av| 成人18视频日本| 男人的j进女人的j一区| 亚洲视频一二区| 久久婷婷一区二区三区| 欧美在线视频不卡| 国产成人精品免费| 免费国产亚洲视频| 国产精品久久久久久亚洲伦| 日韩无一区二区| 欧美日韩一级大片网址| 国产精品一区二区无线| 日本不卡一二三| 亚洲午夜在线观看视频在线| 国产精品丝袜久久久久久app| 欧美成人高清电影在线| 亚洲夂夂婷婷色拍ww47| 国产精品欧美一级免费| 久久久久久免费毛片精品| 正在播放亚洲一区| 欧美三级在线播放| 日本韩国精品在线| 色哟哟日韩精品| av爱爱亚洲一区| 成人精品免费网站| 成人高清伦理免费影院在线观看| 看国产成人h片视频| 日韩av中文在线观看| 亚洲h动漫在线| 亚洲五月六月丁香激情| 亚洲靠逼com| 亚洲婷婷在线视频| 亚洲视频免费在线| 中文字幕中文字幕一区| 中文字幕高清一区| 欧美国产一区二区在线观看| 国产日韩欧美一区二区三区综合 | 国产福利精品一区| 国产一区二区三区免费观看| 国产中文字幕一区| 国产美女av一区二区三区| 国产一区二区三区久久久| 国产自产2019最新不卡| 国产高清不卡一区二区| 粉嫩aⅴ一区二区三区四区| 国产91丝袜在线播放0| 成人午夜精品在线| 色老综合老女人久久久| 欧美亚洲国产怡红院影院| 欧美日韩国产美| 欧美一区二区三区视频免费| 日韩免费成人网| 久久精品欧美一区二区三区不卡| 久久精品视频在线看| 中文字幕在线观看一区| 国产三区在线成人av| 欧美大度的电影原声| 国产视频一区在线播放| 国产精品国产三级国产专播品爱网| 18成人在线观看| 亚洲午夜激情av| 国产麻豆一精品一av一免费| av不卡免费电影| 欧美丰满少妇xxxxx高潮对白| 国产人妖乱国产精品人妖| 久久精品二区亚洲w码| 色欧美88888久久久久久影院| 精品奇米国产一区二区三区| 婷婷一区二区三区| 99久久精品国产毛片| 久久一区二区三区国产精品| 久久伊人蜜桃av一区二区| 亚洲图片自拍偷拍| 91精选在线观看| 中文字幕一区二区三区在线观看| 亚洲bt欧美bt精品777| 高清不卡在线观看av| 国产精品久久久久久一区二区三区| 亚洲欧美激情在线| 成人免费在线视频观看| 欧美视频你懂的| 国产拍揄自揄精品视频麻豆| 成人国产精品免费观看视频| 中文字幕中文字幕在线一区 | 69p69国产精品| 天天综合网 天天综合色| 亚洲品质自拍视频网站| 国产麻豆91精品| 色激情天天射综合网| 欧美日韩综合不卡| √…a在线天堂一区| 欧美三区在线观看| 亚洲成人精品一区二区| 欧美色图12p| 欧洲精品在线观看| 337p亚洲精品色噜噜噜| 欧美一区二区三区人| 国产福利精品导航| 亚洲一区欧美一区| 一区在线观看视频| 99久久精品国产一区二区三区| 久久综合色鬼综合色| 国产乱国产乱300精品| 欧美日韩免费一区二区三区视频 | 亚洲精品视频在线观看免费| 国产成人午夜高潮毛片| 国产精品国产自产拍高清av| 色播五月激情综合网| 樱花草国产18久久久久| 欧美性生活久久| 国产精品99久久久久久似苏梦涵 | 精品日韩99亚洲| 国产高清不卡二三区| 日本欧美加勒比视频| 国产精品久久久久一区二区三区 | 国产精品第五页| 欧美性色黄大片|