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

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

?? func.cpp

?? Intel開發的IPP庫的應用例程
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
   return dst;
}

void CFunc::GetTypes(ppType& src1, ppType& src2, 
                     ppType& dst1, ppType& dst2) const
{
   CMyString sBase, sType1, sType2, sType3, sDescr;
   ParseFunction(sBase, sType1, sType2, sType3, sDescr);
   if (sType1.IsEmpty()) 
      throw _T("Bad function type");
   src1 = StringToType(sType1);
   src2 = StringToType(sType2);
   dst1 = StringToType(sType3);
   dst2 = dst1;
   UpdateTypes(src1, src2, dst1, dst2);
}

static CMyString firstChanStr(CMyString& descr)
{
   CMyString numStr = _T("1234");
   int index = descr.Find(_T("C"));
   int iP = descr.Find(_T("P"));
   int len = 0;
   CMyString chanStr = _T("");
   if ((iP >= 0) && (index < 0 || (iP < index))) index = iP;
   if ((index < 0) ||
       (descr.GetLength() == index + 1) ||
       (!numStr.Found(descr[index + 1]))) {
      len = 0;
   } else {
      len = 2;
      if ((index > 0) && (descr[index - 1] == 'A')) {
         index--;
         len++;
      }
   }
   CMyString str = descr.Mid(index,len);
   descr = descr.Mid(index + len);
   return str;
}

static int numChannels(CMyString str)
{
   if (str.IsEmpty()) return 0;
   CMyString numStr((str[0] == 'A') ? str[2] : str[1]);
   int num = _ttoi(numStr);
   if (num > 4) num = 0;
   return num;
}

static BOOL alphaChannel(CMyString str)
{
   if (str.IsEmpty()) return 0;
   return str[0] == 'A';
}

static BOOL planeChannel(CMyString str)
{
   if (str.IsEmpty()) return 0;
   _TCHAR symb = (str[0] == 'A') ? str[1] : str[0];
   return symb == 'P';
}

void CFunc::GetChannelsName(CMyString& src, CMyString& dst) const
{
   src = dst = _T("");
   CMyString sDescr = DescrName();
   src = firstChanStr(sDescr);
   dst = firstChanStr(sDescr);
   if (dst.IsEmpty()) dst = src;
}

void CFunc::GetChannels(int& src, int& dst) const
{
   src = dst = 0;
   CMyString sDescr = DescrName();
   CMyString srcStr = firstChanStr(sDescr);
   CMyString dstStr = firstChanStr(sDescr);
   src = numChannels(srcStr);
   if (dstStr.IsEmpty())
      dst = src;
   else
      dst = numChannels(dstStr);
   UpdateChannels(src, dst);
}

void CFunc::GetPlanes(BOOL& src, BOOL& dst) const
{
   src = dst = FALSE;
   CMyString sDescr = DescrName();
   CMyString srcStr = firstChanStr(sDescr);
   CMyString dstStr = firstChanStr(sDescr);
   src = planeChannel(srcStr);
   if (dstStr.IsEmpty())
      dst = src;
   else
      dst = planeChannel(dstStr);
   if (!src && !dst && sDescr.Found(_T("P")))
      src = dst = TRUE;
   UpdatePlanes(src,dst);
}

void CFunc::GetAlpha(BOOL& src, BOOL& dst) const
{
   src = dst = FALSE;
   CMyString sDescr = DescrName();
   CMyString srcStr = firstChanStr(sDescr);
   CMyString dstStr = firstChanStr(sDescr);
   src = alphaChannel(srcStr);
   if (dstStr.IsEmpty())
      dst = src;
   else
      dst = alphaChannel(dstStr);
}

CString CFunc::InvBase()  const
{
   CString baseName = BaseName();

   int iFwd = baseName.Find(_T("Fwd"));
   int iInv = baseName.Find(_T("Inv"));
   if (iFwd >= 0) 
      baseName = baseName.Left(iFwd) + _T("Inv") + baseName.Mid(iFwd + 3);
   if (iInv >= 0) 
      baseName = baseName.Left(iInv) + _T("Fwd") + baseName.Mid(iInv + 3);
   int iEmph = baseName.Find(_T("_"));
   CString startName;
   if (iEmph > 0) {
      startName = baseName.Left(iEmph + 1);
      baseName = baseName.Mid(iEmph + 1);
   }
   int iTo = baseName.Find(_T("To"));
   if (iTo < 0) return startName + baseName;
   baseName = baseName.Mid(iTo + 2) + _T("To") + baseName.Left(iTo);
   return startName + baseName;
}

CFunc CFunc::FuncWithBase(CMyString baseName) const
{
   CFunc func = Prefix() + baseName + _T("_") + TypeName();
   if (!DescrName().IsEmpty())
      func += _T("_") + DescrName();
   return func;
}

CFunc CFunc::FuncWithBase_InvType(CMyString baseName) const
{
   CMyString sBase, sType1, sType2, sType3, sDescr;
   ParseFunction(sBase, sType1, sType2, sType3, sDescr);
   CFunc func = Prefix() + baseName + _T("_");
   if (sType1 == sType3)
      func += sType1 ;
   else
      func += sType3 + sType1 ;
   if (!sDescr.IsEmpty())
      func += _T("_") + sDescr;
   return func;
}

CFunc CFunc::FuncWithBase_InvChannels(CMyString baseName) const
{
   CMyString sBase, sType, sChan1, sChan2, sDescr;
   ParseFunction(sBase, sType, sDescr);
   if (sDescr.IsEmpty())
      return Prefix() + baseName + _T("_") + sType;
   sChan1 = firstChanStr(sDescr);
   sChan2 = firstChanStr(sDescr);
   CFunc func = Prefix() + baseName + _T("_") + sType + _T("_");
   if (sChan2.IsEmpty())
      func += sChan1 ;
   else
      func += sChan2 + sChan1 ;
   func += sDescr;
   return func;
}

CMyString CFunc::VecName(int vecPos, int usedVectors) const
{
   CMyString src, src2, dst, dst2;
   GetVecNames(src, src2, dst, dst2, usedVectors);
   switch (vecPos) {
   case VEC_SRC: return src;
   case VEC_SRC2: return src2;
   case VEC_DST: return dst;
   case VEC_DST2: return dst2;
   case VEC_MASK: return _T("Mask");
   }
   return _T("");
}

void CFunc::GetVecNames(CMyString& src, CMyString& src2, 
                        CMyString& dst, CMyString& dst2,
                       int usedVectors) const
{
   src = _T(""); src2 = _T(""); dst = _T(""); dst2 = _T("");
   if (usedVectors & VEC_SRC2) {
      if (Inplace()) {
         src = _T("Src"); src2 = _T("SrcDst");
      } else {
         src = _T("Src1"); src2 = _T("Src2");
      }
   } else {
      if (Inplace()) src = _T("SrcDst");
      else           src = _T("Src");
   }
   if (usedVectors & VEC_DST2) {
      dst = _T("Dst1"); dst2 = _T("Dst2");
   } else {
      dst = _T("Dst");
   }
   UpdateVecNames(src,src2,dst,dst2,usedVectors);
}

////////////////////////////////////////////////////////////////////

CFuncList::CFuncList()
{
    m_position = NULL;
    m_baseName = _T("");
    m_pOutstandList = NULL;
}

CFuncList::~CFuncList()
{
}

void CFuncList::CreateFuncList(int idx)
{
   if (pGlobalFuncList == NULL) return;
   if (idx >= pGlobalFuncList->GetSize()) return;
   AddTail(pGlobalFuncList->ElementAt(idx));
   SetOutstandList(idx);
   m_position = GetHeadPosition();
}

POSITION CFuncList::Find(LPCTSTR funcName, POSITION pos) const
{
   if (pos == NULL) pos = GetHeadPosition(); 
   else             GetNext(pos);
   while (pos) {
      POSITION curPos = pos;
      if (GetNext(pos) == funcName) return curPos;
   }
   return NULL;
}

int CFuncList::SubtractThisList(CStringList& rList)
{
   POSITION rPos = rList.GetHeadPosition(); 
   while (rPos) {
      POSITION tPos = rPos;
      CString tName = rList.GetNext(rPos);
      POSITION fPos = GetHeadPosition();
      while (fPos) {
         if (tName == GetNext(fPos)) {
            rList.RemoveAt(tPos);
            break;
         }
      }
   }
   return (int)GetCount();
}

int CFuncList::SetOutstandList(int idx) 
{
   CFuncList dirList;;
   DEMO_APP->GetDirector()->GetFunctions(dirList, idx);
   if (m_pOutstandList) delete m_pOutstandList;
   m_pOutstandList = new CFuncList;
   POSITION pos = GetHeadPosition(); 
   while (pos) {
      POSITION delPos = pos;
      CFunc func = GetNext(pos);
      if (func.Find(_T("Set")) != -1 && func.BaseName() != _T("Set")) continue;
      if (func.Find(_T("Get")) != -1) continue;
      if (func.Find(_T("Init")) != -1) continue;
      if (func.Find(_T("Close")) != -1) continue;
      if (func.Find(_T("Malloc")) != -1) continue;
      if (func.Find(_T("Free")) != -1) continue;
      if (func.Found(_T("AlphaPremul"))) continue;
      if (func.Found(_T("AddRotateShift"))) continue;
      if (func.Found(_T("PutVal"))) continue;
      if (func.Found(_T("UpdateTaps"))) continue;
      if (func.Found(_T("DrawText"))) continue;
      if (func.Found(_T("DV"))) continue;
      POSITION dirPos = dirList.Find(func);
      if (dirPos) {
         dirList.RemoveAt(dirPos);
         continue;
      }
      m_pOutstandList->AddTail(func);
      RemoveAt(delPos);
   }
   return (int)m_pOutstandList->GetCount();
}

void CRecentFuncList::AddFunc(CFunc func)
{
   POSITION rPos = GetHeadPosition();
   while (rPos) {
      POSITION pos = rPos;
      if (GetNext(rPos) == func) RemoveAt(pos);
   }
   AddHead(func);
   if (GetCount() > m_MaxSize) RemoveTail();
}

CFunc CRecentFuncList::GetFunc(int index)
{
   POSITION rPos = GetHeadPosition();
   for (int i = 1; rPos; i++) {
      CFunc func = GetNext(rPos);
      if (i == index) return func;
   }
   CFunc emptyFunc;
   return emptyFunc;
}

static CVector* pMruVec = NULL;
static BOOL ValidMru(CString name)
{
   CFunc func(name);
   return func.Valid(pMruVec);
}
static BOOL InvalidMru(CString name)
{
   return FALSE;
}

void CRecentFuncList::UpdateMenu(CCmdUI* pCmdUI, CVector* pVec, BOOL bEnable)
{
   CMruMenu menu(8,_T("Recent Function"));
   pMruVec = pVec;
   if (GetCount() == 0) {
      CFunc func = DEMO_APP->GetDirector()->GetProcess()->GetCurrentFunction();
      if (!func.IsEmpty()) AddFunc(func);
   }
   menu.SetList(this);
   menu.UpdateMenu(pCmdUI, bEnable ? ValidMru : InvalidMru);
}
/*
void CMruMenu::UpdateMenu(CCmdUI* pCmdUI)
{
   CMenu* pMenu = pCmdUI->m_pMenu;
   if (pMenu == NULL || GetSize() == 0) {
      pCmdUI->Enable(FALSE);
      pCmdUI->SetText(m_EmptyName);
      return;
   }

   for (int iMRU = 0; iMRU < m_MenuSize; iMRU++)
      pMenu->DeleteMenu(pCmdUI->m_nID + iMRU, MF_BYCOMMAND);

   int nID = pCmdUI->m_nID;
   POSITION pos = GetHeadPosition();
   for (int i=0; i<mru.GetSize(); i++) {
      pMenu->InsertMenu(pCmdUI->m_nIndex++, MF_STRING | MF_BYPOSITION, 
         nID, GetAt(i).name);
      pMenu->EnableMenuItem(nID, MF_BYCOMMAND |  
         (GetAt(i).enable) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED)));
      nID++;
   }

   pCmdUI->m_nIndex--;
   pCmdUI->m_nIndexMax = pMenu->GetMenuItemCount();

   pCmdUI->m_bEnableChanged = TRUE;    // all the added items are enabled
   m_MenuSize = GetCount();
}
*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品一区二区三区三上悠亚| 精品国产精品一区二区夜夜嗨| 国产精品视频观看| 国产成人av电影在线| 久久久亚洲综合| 精品一区二区三区免费视频| 精品久久久久香蕉网| 卡一卡二国产精品 | 丁香婷婷综合五月| 久久精品在这里| 狠狠色狠狠色综合系列| 欧美激情自拍偷拍| 99精品国产一区二区三区不卡| 国产精品免费免费| 九色综合狠狠综合久久| 欧美mv日韩mv国产网站app| 日产精品久久久久久久性色| 欧美一区二区三区爱爱| 美女在线观看视频一区二区| 欧美成人一级视频| 日韩电影免费在线| 欧美国产禁国产网站cc| 一本色道久久加勒比精品 | 免费观看在线综合色| 精品黑人一区二区三区久久| 国产激情精品久久久第一区二区| 中日韩免费视频中文字幕| 国产一区在线观看视频| 亚洲精品亚洲人成人网| 91麻豆精品国产自产在线| 麻豆精品一区二区综合av| 一区在线观看免费| 欧美美女一区二区三区| 久久69国产一区二区蜜臀| 国产精品久久久久四虎| 99久久精品免费看国产免费软件| 亚洲va天堂va国产va久| 精品国产亚洲在线| 99精品视频在线观看免费| 亚洲国产乱码最新视频| 久久婷婷国产综合国色天香| 色婷婷综合久久久中文字幕| 性久久久久久久久| 国产亚洲人成网站| 欧美老人xxxx18| 99视频精品在线| 久久精品99久久久| 亚洲日本护士毛茸茸| 久久久久久久久久美女| 欧美伊人精品成人久久综合97| 激情伊人五月天久久综合| 亚洲一区二区欧美日韩| 亚洲国产高清在线| 日韩亚洲欧美中文三级| 欧美日韩综合一区| 国产69精品久久久久毛片| 日本中文字幕一区二区视频| 亚洲精品菠萝久久久久久久| 久久久久久影视| 欧美二区三区91| 欧美片在线播放| 99久久婷婷国产| 国产精品亚洲成人| 韩国三级在线一区| 日日摸夜夜添夜夜添国产精品| 国产精品美女久久久久久久久久久 | 成人app下载| 国产成人综合精品三级| 日韩精品亚洲一区| 一级精品视频在线观看宜春院 | 精品一区二区三区久久| 日本视频一区二区| 亚洲亚洲精品在线观看| 亚洲欧美综合另类在线卡通| 国产精品色哟哟| 日本一区二区三区国色天香| 日韩精品一区二区三区视频| 日韩情涩欧美日韩视频| 欧美三级电影网| 欧美亚洲国产一卡| 欧美特级限制片免费在线观看| 成人精品一区二区三区中文字幕| 激情综合色综合久久| 韩国一区二区视频| 久久99国产乱子伦精品免费| 男女男精品视频| 国产在线不卡一区| 黄色日韩三级电影| 久久69国产一区二区蜜臀| 韩国成人在线视频| 国产一区二区调教| 麻豆91在线看| 亚洲自拍欧美精品| 亚洲h精品动漫在线观看| 亚洲国产欧美日韩另类综合| 日日夜夜精品视频天天综合网| 视频在线观看一区二区三区| 午夜精品免费在线观看| 六月丁香综合在线视频| 国产一区二区免费在线| 国产精品99久久久| 色综合久久88色综合天天6 | gogogo免费视频观看亚洲一| 色综合天天综合| 欧美亚洲高清一区二区三区不卡| 欧洲精品一区二区| 日韩欧美亚洲另类制服综合在线| 欧美一区三区二区| 欧美不卡一区二区三区| 中文字幕在线不卡国产视频| 亚洲蜜桃精久久久久久久| 亚洲一区二区三区四区的| 奇米888四色在线精品| 国产自产2019最新不卡| av一本久道久久综合久久鬼色| 色天天综合久久久久综合片| 88在线观看91蜜桃国自产| 日韩欧美国产三级电影视频| 久久九九99视频| 亚洲欧美一区二区久久| 日本午夜一区二区| 大美女一区二区三区| 在线观看日韩毛片| 久久蜜桃香蕉精品一区二区三区| 成人欧美一区二区三区在线播放| 亚洲国产中文字幕| 成人av第一页| 欧美一区二区三区爱爱| 中文字幕av一区二区三区高| 日韩高清欧美激情| 成人av网站免费| 在线不卡中文字幕播放| 精品国产免费一区二区三区四区| 国产精品高潮呻吟| 青青草国产精品亚洲专区无| 国产精品影音先锋| 欧美日本一区二区| 国产精品网站一区| 蜜桃视频一区二区三区在线观看| 99久久精品免费看国产免费软件| 日韩一级欧美一级| 亚洲男同性恋视频| 成人18精品视频| 欧美videos大乳护士334| 一区二区三区国产精华| 国产精品一区久久久久| 91丨porny丨蝌蚪视频| 久久影院电视剧免费观看| 亚洲大型综合色站| 一本色道亚洲精品aⅴ| 久久久久久久久97黄色工厂| 丝袜美腿成人在线| 欧美性猛交xxxx黑人交| 国产精品久久看| 国产一区二区调教| 26uuu国产电影一区二区| 亚洲成人自拍一区| 99精品视频在线观看免费| 国产精品国产自产拍高清av王其| 老司机精品视频导航| 欧美日韩国产另类一区| 亚洲一级二级在线| 99久久婷婷国产综合精品电影| 久久久亚洲午夜电影| 国产精品88888| www一区二区| 久久精品国产亚洲高清剧情介绍| 日韩欧美中文一区| 首页欧美精品中文字幕| 欧美在线不卡一区| 亚洲午夜电影在线| 欧亚一区二区三区| 久久久国产一区二区三区四区小说| 久久97超碰国产精品超碰| 日韩欧美的一区二区| 亚洲动漫第一页| 日韩一区二区在线看| 日本不卡在线视频| 欧美日韩视频在线第一区| 日韩电影在线观看电影| 欧美一区二区三区四区视频| 日韩美女视频一区二区| 91传媒视频在线播放| 亚洲精品国产视频| 国产精品免费网站在线观看| 自拍偷拍欧美激情| 欧洲激情一区二区| 日韩专区中文字幕一区二区| 欧美一区二区三区色| 国产老妇另类xxxxx| 国产亚洲精品资源在线26u| 91在线观看视频| 午夜成人在线视频| 久久网站热最新地址| 91免费看`日韩一区二区| 日韩综合一区二区| 国产精品女主播在线观看| 一本在线高清不卡dvd| 日韩精品视频网站| 欧美激情在线看|