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

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

?? func.cpp

?? Intel開發(fā)的IPP庫的應(yīng)用例程
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*
//
//               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
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲高清免费观看| 在线不卡一区二区| 国产天堂亚洲国产碰碰| 国内精品写真在线观看| 日韩精品在线网站| 国产精品亚洲第一区在线暖暖韩国| 日韩三级伦理片妻子的秘密按摩| 免费的国产精品| 国产人成一区二区三区影院| caoporn国产一区二区| 亚洲色图在线播放| 欧美二区三区的天堂| 麻豆91在线观看| 国产女同互慰高潮91漫画| 91视频观看免费| 性欧美疯狂xxxxbbbb| 日韩欧美色电影| 99久久婷婷国产| 肉色丝袜一区二区| 国产日产精品一区| 色偷偷成人一区二区三区91| 亚洲国产裸拍裸体视频在线观看乱了| 51久久夜色精品国产麻豆| 韩国一区二区在线观看| 亚洲理论在线观看| 精品日韩一区二区三区| 97久久久精品综合88久久| 日本91福利区| 亚洲欧洲一区二区在线播放| 欧美日韩成人综合| 岛国精品在线播放| 日韩在线观看一区二区| 国产女人18毛片水真多成人如厕| 在线观看视频欧美| 国产一区二区三区不卡在线观看| 亚洲精品高清在线观看| 久久午夜老司机| 欧美日韩中文精品| 成人性视频免费网站| 青青草伊人久久| 一区二区三区在线视频免费 | 五月婷婷激情综合| 久久久久国产精品人| 91极品视觉盛宴| 成人高清伦理免费影院在线观看| 日韩av一区二| 亚洲综合小说图片| 中文字幕第一区第二区| 欧美哺乳videos| 欧美三级电影精品| 91毛片在线观看| 风间由美中文字幕在线看视频国产欧美| 一区二区三区影院| 综合精品久久久| 久久久91精品国产一区二区精品| 欧美一区午夜精品| 欧美体内she精视频| av综合在线播放| 国产福利不卡视频| 国产乱码精品一品二品| 日韩av午夜在线观看| 亚洲成av人片观看| 夜夜爽夜夜爽精品视频| 亚洲天堂成人在线观看| 欧美国产激情一区二区三区蜜月| 欧美成人a视频| 日韩一区二区电影在线| 欧美另类videos死尸| 欧美性生活影院| 91精彩视频在线观看| 日本电影亚洲天堂一区| 91亚洲精品久久久蜜桃| 91理论电影在线观看| 91色porny蝌蚪| 色综合夜色一区| 一本色道综合亚洲| 色诱视频网站一区| 欧洲一区二区三区免费视频| hitomi一区二区三区精品| 成人av网站在线观看免费| 成人h精品动漫一区二区三区| 国产精品 欧美精品| 成人免费av网站| 一本色道久久综合精品竹菊| 色吊一区二区三区| 欧美日韩亚洲综合一区| 在线综合视频播放| 日韩欧美一区二区久久婷婷| 日韩精品专区在线影院观看| 精品国产一区二区三区av性色| 26uuuu精品一区二区| 久久综合九色综合欧美亚洲| 久久精品一级爱片| 综合中文字幕亚洲| 亚洲最大色网站| 蜜臀av亚洲一区中文字幕| 国产一区二区三区精品视频| 不卡影院免费观看| 欧美午夜宅男影院| 精品99999| 亚洲少妇最新在线视频| 午夜日韩在线电影| 黑人精品欧美一区二区蜜桃| 成人av免费观看| 欧美日韩和欧美的一区二区| 精品日韩在线观看| 亚洲天堂精品在线观看| 日韩精品亚洲一区| 国产精品一级在线| 在线观看日韩精品| 亚洲精品在线电影| 亚洲乱码国产乱码精品精可以看| 日本在线播放一区二区三区| 国产专区综合网| 91理论电影在线观看| 精品久久久久久久人人人人传媒| 国产精品久久久久四虎| 亚洲国产欧美在线人成| 久久99国产精品麻豆| 99久久精品一区二区| 欧美一区二区三区免费| 综合分类小说区另类春色亚洲小说欧美| 亚洲国产一区二区三区| 国产专区综合网| 欧美乱妇23p| 国产精品久久毛片a| 久久激五月天综合精品| 91免费在线播放| 久久综合九色综合97婷婷| 亚洲午夜三级在线| 成人精品国产福利| 日韩一级成人av| 亚洲综合久久av| 成人h精品动漫一区二区三区| 日韩欧美卡一卡二| 亚洲国产精品视频| 99国产精品久久久久| 久久久久一区二区三区四区| 亚洲成人精品影院| 97se狠狠狠综合亚洲狠狠| 久久中文字幕电影| 免费在线一区观看| 欧洲一区在线电影| 亚洲精品写真福利| av午夜精品一区二区三区| www国产精品av| 麻豆精品国产91久久久久久| 欧美无乱码久久久免费午夜一区| 国产精品青草综合久久久久99| 激情文学综合插| 欧美一级二级在线观看| 日韩黄色小视频| 欧美日韩成人激情| 一区二区三区 在线观看视频| 成人av在线播放网站| 国产日韩欧美精品在线| 国内精品伊人久久久久av一坑| 日韩欧美亚洲另类制服综合在线| 午夜精品爽啪视频| 欧美日韩精品电影| 日韩专区一卡二卡| 欧美精品久久天天躁| 亚洲1区2区3区视频| 欧美性大战久久久久久久蜜臀| 亚洲久本草在线中文字幕| 99久久精品情趣| 亚洲欧美视频在线观看| 色综合婷婷久久| 一区av在线播放| 欧美三级电影精品| 日本不卡高清视频| 日韩欧美一级特黄在线播放| 免费xxxx性欧美18vr| 日韩欧美国产wwwww| 精品一区二区在线播放| 精品久久久久久久久久久久久久久| 久久精品噜噜噜成人88aⅴ| 久久综合九色综合97婷婷女人| 国产伦精品一区二区三区在线观看| 久久久久久久网| 成人av电影在线网| 亚洲一区中文日韩| 欧美一级二级三级蜜桃| 国产精品自拍毛片| 中文字幕在线播放不卡一区| 91亚洲精品一区二区乱码| 悠悠色在线精品| 欧美一区二区三区在线| 韩国av一区二区| 中文字幕日韩精品一区| 欧美亚洲高清一区二区三区不卡| 午夜久久久久久久久| 日韩欧美久久一区| av男人天堂一区| 亚洲成a人v欧美综合天堂下载| 日韩一区二区麻豆国产| 国产福利91精品一区| 亚洲电影激情视频网站| 欧美一区二区三区精品| 成人一级视频在线观看|