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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? func.cpp

?? Intel開發(fā)的IPP庫的應(yīng)用例程
?? CPP
?? 第 1 頁 / 共 2 頁
字號(hào):
/*
//
//               INTEL CORPORATION PROPRIETARY INFORMATION
//  This software is supplied under the terms of a license agreement or
//  nondisclosure agreement with Intel Corporation and may not be copied
//  or disclosed except in accordance with the terms of that agreement.
//        Copyright(c) 1999-2006 Intel Corporation. All Rights Reserved.
//
*/

// Func.cpp: implementation of the CFunc, CFuncList, CRecentFuncList 
// classes.
//
// class CFunc helps to extract maximum information about IPP function 
//
// class CFuncList is the IPP functions list that can be created
// using IPP library header
//
// class CRecentFuncList supports MRU recent function list
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "demo.h"
#include "Func.h"
#include "Vector.h"
#include "Process.h"
#include "Director.h"
#include "MruMenu.h"
#include "ipp_List.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CFunc::CFunc()
{
}

CFunc::~CFunc()
{

}

CString CFunc::TypeToString(ppType type)
{
   switch (type) {
   case pp8u  : return _T("8u");
   case pp8s  : return _T("8s");
   case pp8sc : return _T("8sc");
   case pp16u : return _T("16u");
   case pp16s : return _T("16s");
   case pp16sc: return _T("16sc");
   case pp16f : return _T("16f");
   case pp24u : return _T("24u");
   case pp24s : return _T("24s");
   case pp32u : return _T("32u");
   case pp32s : return _T("32s");
   case pp32sc: return _T("32sc");
   case pp32f : return _T("32f");
   case pp32fc: return _T("32fc");
   case pp64s : return _T("64s");
   case pp64sc: return _T("64sc");
   case pp64f : return _T("64f");
   case pp64fc: return _T("64fc");
   default: return _T("");
   }
}

ppType CFunc::StringToType(CString type)
{
   if (type == _T("8u")  ) return pp8u  ;
   if (type == _T("8s")  ) return pp8s  ;
   if (type == _T("8sc") ) return pp8sc ;
   if (type == _T("16u") ) return pp16u ;
   if (type == _T("16s") ) return pp16s ;
   if (type == _T("16sc")) return pp16sc;
   if (type == _T("16f") ) return pp16f ;
   if (type == _T("24u") ) return pp24u ;
   if (type == _T("24s") ) return pp24s ;
   if (type == _T("32u") ) return pp32u ;
   if (type == _T("32s") ) return pp32s ;
   if (type == _T("32sc")) return pp32sc;
   if (type == _T("32f") ) return pp32f ;
   if (type == _T("32fc")) return pp32fc;
   if (type == _T("64s") ) return pp64s ;
   if (type == _T("64sc")) return pp64sc;
   if (type == _T("64f") ) return pp64f ;
   if (type == _T("64fc")) return pp64fc;
   return ppNONE;
}

IppDataType CFunc::TypeToIpp(ppType type)
{
   switch (type) {
   case pp8u  : return ipp8u  ;
   case pp8s  : return ipp8s  ;
//   case pp8sc : return ipp8sc ;
   case pp16u : return ipp16u ;
   case pp16s : return ipp16s ;
   case pp16sc: return ipp16sc;
   case pp32u : return ipp32u ;
   case pp32s : return ipp32s ;
   case pp32sc: return ipp32sc;
   case pp32f : return ipp32f ;
   case pp32fc: return ipp32fc;
   case pp64s : return ipp64s ;
   case pp64sc: return ipp64sc;
   case pp64f : return ipp64f ;
   case pp64fc: return ipp64fc;
   default:     return (IppDataType)-1;
   }
}

static CMyString firstType(CMyString type)
{
   if (type.Find(_T("64fc")) == 0) return _T("64fc");
   if (type.Find(_T("64sc")) == 0) return _T("64sc");
   if (type.Find(_T("64s" )) == 0) return _T("64s") ;
   if (type.Find(_T("64f" )) == 0) return _T("64f") ;
   if (type.Find(_T("32fc")) == 0) return _T("32fc");
   if (type.Find(_T("32sc")) == 0) return _T("32sc");
   if (type.Find(_T("32u" )) == 0) return _T("32u") ;
   if (type.Find(_T("32s" )) == 0) return _T("32s") ;
   if (type.Find(_T("32f" )) == 0) return _T("32f") ;
   if (type.Find(_T("24u" )) == 0) return _T("24u") ;
   if (type.Find(_T("24s" )) == 0) return _T("24s") ;
   if (type.Find(_T("16sc")) == 0) return _T("16sc");
   if (type.Find(_T("16u" )) == 0) return _T("16u") ;
   if (type.Find(_T("16s" )) == 0) return _T("16s") ;
   if (type.Find(_T("16f" )) == 0) return _T("16f") ;
   if (type.Find(_T("8sc" )) == 0) return _T("8sc")  ;
   if (type.Find(_T("8u"  )) == 0) return _T("8u")  ;
   if (type.Find(_T("8s"  )) == 0) return _T("8s")  ;
   if (type.Find(_T("1u"  )) == 0) return _T("8u")  ;
   return _T("");
}

ppType CFunc::BaseType() const
{
   CMyString base = BaseName();
   if (base.Found(_T("64fc"))) return pp64fc;
   if (base.Found(_T("64sc"))) return pp64sc;
   if (base.Found(_T("64s" ))) return pp64s;
   if (base.Found(_T("64f" ))) return pp64f;
   if (base.Found(_T("32fc"))) return pp32fc;
   if (base.Found(_T("32sc"))) return pp32sc;
   if (base.Found(_T("32u" ))) return pp32u;
   if (base.Found(_T("32s" ))) return pp32s;
   if (base.Found(_T("32f" ))) return pp32f;
   if (base.Found(_T("24u" ))) return pp24u;
   if (base.Found(_T("24s" ))) return pp24s;
   if (base.Found(_T("16sc"))) return pp16sc;
   if (base.Found(_T("16f" ))) return pp16f;
   if (base.Found(_T("16u" ))) return pp16u;
   if (base.Found(_T("16s" ))) return pp16s;
   if (base.Found(_T("8sc" ))) return pp8sc;
   if (base.Found(_T("8u"  ))) return pp8u;
   if (base.Found(_T("8s"  ))) return pp8s;
   if (base.Found(_T("1u"  ))) return pp8u;
   return ppNONE;
}

static BOOL isType(CMyString typeStr)
{
   CMyString firstStr = firstType(typeStr);
   return !firstStr.IsEmpty();
}

void CFunc::ParseFunction(CMyString& base, CMyString& type, CMyString& descr) const
{
   base = type = descr = _T("");
   int i0 = Find(_T("ipps")) == 0 ? 4 : 
            Find(_T("ippi")) == 0 ? 4 : 
                                0;
   int i1 = Find('_');
   if (!isType(Mid(i1+1)))
      i1 = Find('_', i1 + 1);
   int i2 = Find('_', i1 + 1);
   if (i1 < 0) {
      base = Mid(i0);
      return;
   }
   base = Mid(i0,i1 - i0);
   if (i2 < 0) {
      type = Mid(i1 + 1);
      return;
   }
   type = Mid(i1 + 1, i2 - (i1 + 1));
   descr = Mid(i2 + 1);
}   


void CFunc::ParseFunction(CMyString& base, CMyString& type1, CMyString& type2,
                          CMyString& type3, CMyString& descr) const
{
   CMyString type;
   ParseFunction(base,type,descr);
   int len = type.GetLength();
   type1 = firstType(type);
   int len1 = type1.GetLength();
   if (len1 == len) {
      type2 = type3 = type1;
   } else {
      type2 = firstType(type.Mid(len1));
      int len2 = type2.GetLength();
      if (len1 + len2 == len) {
         type3 = type2;
         if (!descr.Found(_T("I")))
            type2 = type1;
      } else {
         type3 = firstType(type.Mid(len1+len2));
      }
   }
} 
  
CMyString CFunc::Prefix() const
{
   if (GetLength() < 4) return _T("");
   if (GetAt(3) == 'i' || GetAt(3) == 's') return Left(4);
   return Left(3);
}

CMyString CFunc::BaseName() const
{
   CMyString base, type, descr;
   ParseFunction(base,type,descr);
   return base;
}
  
CMyString CFunc::TypeName() const
{
   CMyString base, type, descr;
   ParseFunction(base,type,descr);
   return type;
}
  
CMyString CFunc::DescrName() const
{
   CMyString base, type, descr;
   ParseFunction(base,type,descr);
   return descr;
}

ppType CFunc::SrcType() const
{
   ppType ts1, ts2, td1, td2;
   GetTypes(ts1, ts2, td1, td2);
   return ts1;
}

ppType CFunc::DstType() const
{
   ppType ts1, ts2, td1, td2;
   GetTypes(ts1, ts2, td1, td2);
   return td1;
}

ppType CFunc::Src2Type() const
{
   ppType ts1, ts2, td1, td2;
   GetTypes(ts1, ts2, td1, td2);
   return ts2;
}

ppType CFunc::Dst2Type() const
{
   ppType ts1, ts2, td1, td2;
   GetTypes(ts1, ts2, td1, td2);
   return td2;
}

int CFunc::SrcChannels() const
{
   int src, dst;
   GetChannels(src, dst);
   return src;
}

int CFunc::DstChannels() const
{
   int src, dst;
   GetChannels(src, dst);
   return dst;
}

BOOL CFunc::OnlyDst() const
{
   if (BaseName() == _T("Set") || BaseName() == _T("Zero")) return TRUE;
   if (BaseName().Found(_T("Draw"))) return TRUE;
   if (BaseName().Found(_T("Image")) || BaseName().Found(_T("Vector"))) return TRUE;
   if (BaseName().Found(_T("RandGauss")) || BaseName().Found(_T("RandUniform"))) return TRUE;
   if (BaseName().Found(_T("Tone")) || BaseName().Found(_T("Triangle"))) return TRUE;
   if (BaseName().Found(_T("FIRGen"))) return TRUE;
   return FALSE;
}

BOOL CFunc::Inplace() const
{
   if (OnlyDst()) return TRUE;
   if (BaseName() == _T("Preemphasize")) return TRUE;
   if (BaseName() == _T("AddProduct")) return TRUE;
   if (BaseName() == _T("AddProductC")) return TRUE;
   if (BaseName() == _T("Move")) return TRUE;
   return DescrName().Found(_T("I"));
}

BOOL CFunc::Mask() const
{
   return DescrName().Found(_T("M"));
}

BOOL CFunc::Scale() const
{
   CMyString base, type, descr;
   ParseFunction(base,type,descr);
   return descr.Find(_T("Sfs")) != -1;
}

BOOL CFunc::Roi() const
{
   CMyString base, type, descr;
   ParseFunction(base,type,descr);
   return descr.Find(_T("R")) != -1;
}

BOOL CFunc::SrcPlane() const
{
   BOOL src, dst;
   GetPlanes(src,dst);
   return src;
}

BOOL CFunc::DstPlane() const
{
   BOOL src, dst;
   GetPlanes(src,dst);
   return dst;
}

BOOL CFunc::SrcAlpha() const
{
   BOOL src, dst;
   GetAlpha(src,dst);
   return src;
}

BOOL CFunc::DstAlpha() const
{
   BOOL src, dst;
   GetAlpha(src,dst);
   return dst;
}

CString CFunc::SrcChannelsName() const
{
   CMyString src, dst;
   GetChannelsName(src,dst);
   return src;
}

CString CFunc::DstChannelsName() const
{
   CMyString src, dst;
   GetChannelsName(src,dst);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩专区在线视频| 国产欧美日本一区二区三区| 亚洲综合色成人| 91视频xxxx| 91在线精品一区二区| 国产视频一区在线观看 | 91麻豆国产福利精品| 亚洲欧洲精品天堂一级| 欧美综合久久久| 日本欧美一区二区在线观看| 337p日本欧洲亚洲大胆色噜噜| 韩国中文字幕2020精品| 日本一区二区三区国色天香 | 色综合天天综合给合国产| 国产欧美日韩三级| 色系网站成人免费| 免费成人在线观看视频| 欧美大片免费久久精品三p| 久久精品久久综合| 国产精品污网站| 成人国产精品视频| 亚洲一区二区3| 91精品国产欧美日韩| 国产在线一区观看| 成人免费在线播放视频| 欧美日韩一区二区电影| 蜜臀久久久99精品久久久久久| 久久午夜羞羞影院免费观看| 色菇凉天天综合网| 国产精品资源网站| 日韩精品一级中文字幕精品视频免费观看| 欧美日韩国产系列| www.成人在线| 国产一区亚洲一区| 日韩中文字幕不卡| ...中文天堂在线一区| 日韩一区二区在线看片| 在线欧美小视频| 成人综合在线观看| 六月丁香综合在线视频| 亚洲欧美日韩国产综合在线| 国产精品毛片无遮挡高清| 精品成人一区二区三区| 日韩精品一区二区三区中文不卡| 在线免费亚洲电影| 色欧美乱欧美15图片| 91在线精品一区二区| 国产精品18久久久久久久网站| 精品在线你懂的| 另类欧美日韩国产在线| 国产一区在线看| 国产乱妇无码大片在线观看| 国产精品一品视频| 国产91丝袜在线观看| 色哟哟精品一区| 欧美性做爰猛烈叫床潮| 欧美日韩一区中文字幕| 欧美日韩国产天堂| 国产偷国产偷精品高清尤物| 中文字幕av一区二区三区高| 国产精品久久看| 亚洲国产一区二区视频| 免费人成精品欧美精品 | 一区二区三区日韩欧美精品| 亚洲视频免费观看| 免费在线观看一区二区三区| 国产精华液一区二区三区| 不卡av电影在线播放| 欧美一级高清片| 亚洲蜜臀av乱码久久精品蜜桃| 秋霞国产午夜精品免费视频| 久久精品国产网站| 色播五月激情综合网| 欧美一区二区三区在线| 国产女主播在线一区二区| 亚洲欧美韩国综合色| 美女久久久精品| 成人国产精品免费观看动漫| 在线成人免费视频| 国产欧美日韩综合精品一区二区 | 亚洲视频一二区| 久久成人免费电影| 色综合久久综合网97色综合| 日韩一区二区三区视频| 亚洲素人一区二区| 国产精品一区二区在线看| 欧美另类久久久品| 一区二区三区在线视频观看| 懂色av中文一区二区三区 | 欧美精品在线视频| 亚洲午夜精品网| 91视视频在线观看入口直接观看www| 26uuu国产日韩综合| 国产在线播精品第三| 久久在线观看免费| 久久机这里只有精品| 日韩精品中午字幕| 亚洲va在线va天堂| 欧美日韩国产欧美日美国产精品| 亚洲男人都懂的| 在线观看网站黄不卡| 亚洲成a人在线观看| 欧美mv日韩mv国产网站| 国产精品综合网| 国产精品国产三级国产aⅴ无密码| 成人午夜激情在线| 国产精品污污网站在线观看 | 国产一区二区三区四| 欧美经典一区二区三区| 国产91精品露脸国语对白| 久久精品在线免费观看| av一区二区三区黑人| 亚洲乱码国产乱码精品精可以看| 国产女同性恋一区二区| 97精品久久久午夜一区二区三区| 亚洲在线免费播放| 26uuu精品一区二区三区四区在线| 国产在线精品国自产拍免费| 国产精品久久久久三级| 日本伦理一区二区| 另类小说图片综合网| 欧美韩国一区二区| 欧美日韩你懂的| 国产99精品视频| 丝袜亚洲另类丝袜在线| 国产精品三级久久久久三级| 91精品国产综合久久久久久| 国产成人三级在线观看| 免费精品视频在线| 亚洲综合色视频| 亚洲精品福利视频网站| 日韩一级免费一区| 精品视频在线免费观看| 色综合天天视频在线观看| 另类小说图片综合网| 亚洲国产精品久久艾草纯爱| 国产精品女同一区二区三区| 精品va天堂亚洲国产| 日韩三级视频在线观看| 色狠狠色狠狠综合| 欧美日韩国产一二三| 欧美偷拍一区二区| 欧美日韩亚洲综合一区| 色婷婷精品久久二区二区蜜臀av| 国产福利91精品一区二区三区| 婷婷成人综合网| 一区二区三区蜜桃网| 亚洲综合自拍偷拍| 亚洲成a人片在线不卡一二三区| 中文字幕在线观看不卡| 国产精品久久久久久久浪潮网站| 精品国产青草久久久久福利| 欧美一区二区三区视频免费播放| 色美美综合视频| 欧美日韩高清不卡| 在线播放视频一区| 日韩精品综合一本久道在线视频| 9191久久久久久久久久久| 欧美日韩激情一区二区| 日韩欧美亚洲另类制服综合在线| 4438x亚洲最大成人网| 91麻豆精品国产91久久久资源速度| 欧美精品久久久久久久多人混战| 欧美丝袜自拍制服另类| 欧美日韩精品一区二区三区蜜桃| 91麻豆精品国产91久久久久久久久 | 日欧美一区二区| 韩国在线一区二区| 在线观看av不卡| 国产欧美精品一区二区色综合朱莉| 亚洲一区影音先锋| 国产精品一区二区在线看| 91福利在线导航| 久久久www成人免费无遮挡大片| 洋洋成人永久网站入口| 成人av在线观| 欧美zozo另类异族| 亚洲mv在线观看| 成人午夜视频免费看| 精品区一区二区| 日本网站在线观看一区二区三区| 高清不卡在线观看| 日韩欧美www| 亚洲成人一二三| 色综合中文字幕国产| 精品免费日韩av| 日韩在线a电影| 在线中文字幕不卡| 国产精品免费看片| 豆国产96在线|亚洲| 久久天天做天天爱综合色| 日韩电影在线观看一区| 欧美色视频一区| 午夜免费久久看| 色av一区二区| 一区二区三区鲁丝不卡| 欧美性受xxxx| 蜜臀久久99精品久久久画质超高清| 欧美日韩亚州综合| 麻豆精品视频在线|