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

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

?? func.h

?? Intel開發的IPP庫的應用例程
?? H
字號:
/*
//
//               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.h: interface for the CFunc class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_FUNC_H__3517F47B_3053_4120_B591_459351A85BD8__INCLUDED_)
#define AFX_FUNC_H__3517F47B_3053_4120_B591_459351A85BD8__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "MyString.h"

//////////////////////////////////////////////////////////////////////
// ppType enumerator is used to identify IPP data types,
// such as Ipp8u, Ipp16sc, Ipp32f, etc.

#define PP_MASK  0x0FF
#define PP_SIGN  0x100
#define PP_FLOAT 0x200
#define PP_CPLX  0x400

typedef enum {
   ppNONE = 0 , 
   pp8u   = 8 , 
   pp8s   = 8  | PP_SIGN,
   pp8sc  = 8  | PP_SIGN | PP_CPLX,
   pp16u  = 16,
   pp16s  = 16 | PP_SIGN,
   pp16f  = 16 | PP_FLOAT,
   pp16sc = 16 | PP_SIGN | PP_CPLX,
   pp24u  = 24,
   pp24s  = 24 | PP_SIGN,
   pp32u  = 32,
   pp32s  = 32 | PP_SIGN,
   pp32sc = 32 | PP_SIGN | PP_CPLX,
   pp32f  = 32 | PP_FLOAT ,
   pp32fc = 32 | PP_FLOAT  | PP_CPLX,
   pp64s  = 64 | PP_SIGN,
   pp64sc = 64 | PP_SIGN | PP_CPLX,
   pp64f  = 64 | PP_FLOAT ,
   pp64fc = 64 | PP_FLOAT  | PP_CPLX,
} ppType;

//////////////////////////////////////////////////////////////////////
// VEC_*** constants are used to identify IPP function source or 
// destination vector(image) parameters

enum {VEC_SRC  = 0x01,
      VEC_SRC2 = 0x02,
      VEC_SRC3 = 0x04,
      VEC_MASK = 0x08,
      VEC_DST  = 0x10,
      VEC_DST2 = 0x20};

class CVector;
class CImage;

//////////////////////////////////////////////////////////////////////
// class CFunc helps to extract maximum information about IPP function 
//////////////////////////////////////////////////////////////////////

class CFunc : public CMyString  
{
public:
/////////////////////////////////////////////////////////////////////////////
// Constructor/destructor
   CFunc();
   virtual ~CFunc();
   CFunc(const CFunc& fnc) {*this = fnc;}
   CFunc(const CMyString& str) {*this = str;}
   CFunc(const CString& str) {*this = str;}
   CFunc(LPCSTR str) {*this = str;}
   CFunc(LPCWSTR str) {*this = str;}
   
/////////////////////////////////////////////////////////////////////////////
// Operators
   // operator =
   CFunc& operator =(const CFunc& fnc) {*((CString*)this) = (CString)fnc; return *this;}
   CFunc& operator =(const CMyString& str) {*((CString*)this) = (CString)str; return *this;}
   CFunc& operator =(const CString& str) {*((CString*)this) = str; return *this;}
   CFunc& operator =(LPCSTR str) {*((CString*)this) = str; return *this;}
   CFunc& operator =(LPCWSTR str) {*((CString*)this) = str; return *this;}

   // operator LPCTSTR 
   operator LPCTSTR() const {return (LPCTSTR)(*(CString*)this);} 

/////////////////////////////////////////////////////////////////////////////
// Attributes
   
   // Prefix returns IPP function prefix (for example, "ipps")
   CMyString Prefix() const;
   // BaseName returns IPP function base name (part after prefix and before
   // types, not including '_' symbol)
   CMyString BaseName() const;
   // TypeName returns IPP function type string, not including '_' symbol
   CMyString TypeName() const;
   // DescrName returns IPP function description, not including '_' symbol
   CMyString DescrName() const;

   // SrcChannelsName returns description of source image channels
   CString SrcChannelsName() const;
   // DstChannelsName returns description of destination image channels
   CString DstChannelsName() const;
   // GetChannelsName returns the same as Src/Dst ChannelsName but simultaneously
   void GetChannelsName(CMyString& s, CMyString& d) const;
   
   // SrcType returns type of first source vector(image)
   ppType SrcType() const;
   // DstType returns type of first destination vector(image)
   ppType DstType() const;
   // Src2Type returns type of second source vector(image)
   ppType Src2Type() const;
   // Dst2Type returns type of second destination vector(image)
   ppType Dst2Type() const;
   // BaseType returns type extracted from base name
   ppType BaseType() const;
   // GetTypes returns the same as Src/Dst/Src2/Dst2 Types but simultaneously
   void GetTypes(ppType& s1, ppType& s2, ppType& d1, ppType& d2) const;
   
   // SrcChannels returns number of source image channels
   int SrcChannels() const;
   // DstChannels returns number of destination image channels
   int DstChannels() const;
   // GetChannels returns the same as Src/Dst Channels but simultaneously
   void GetChannels(int& s, int& d) const;

   // SrcPlane returns weather source image has plane structure
   BOOL SrcPlane() const;
   // DstPlane returns weather destination image has plane structure
   BOOL DstPlane() const;
   // GetPlanes returns the same as Src/Dst Plane but simultaneously
   void GetPlanes(BOOL& s, BOOL& d) const;

   // SrcAlpha returns weather source image has alpha channel
   BOOL SrcAlpha() const;
   // DstAlpha returns weather destination image has alpha channel
   BOOL DstAlpha() const;
   // GetAlpha returns the same as Src/Dst Alpha but simultaneously
   void GetAlpha(BOOL& s, BOOL& d) const;
   
   // Inplace returns weather this function operates in-place
   BOOL Inplace() const;
   // Mask returns weather this function has mask parameter
   BOOL Mask() const;
   // NoDst returns weather this function has no destination images
   BOOL NoDst() const;
   // OnlyDst returns weather this function has no source images
   BOOL OnlyDst() const;
   // Scale returns weather this function has scale factor
   BOOL Scale() const;
   // Roi returns weather this function has "R" specificator in description
   BOOL Roi() const;

   // Valid returns weather specified vector is valid paramter for IPP
   // function in specified position 
   BOOL Valid(CVector* pVec, int vecPos = VEC_SRC) const;

   // VecName returns vector(image) parameter name according to its
   // position
   CMyString VecName(int vecPos, int usedVectors = 0) const;
   // GetVecNames returns vector(image) parameter names according to four
   // positions - src1, src2, dst1, dst2
   void GetVecNames(CMyString& src, CMyString& src2, CMyString& dst, CMyString& dst2,
                    int usedVectors = 0) const;

   // GetPair returns this function name in common case; if this function 
   // has inverse operation then that inverse function is returned
   CFunc GetPair() const;
   // InvBase returns this function base name in common case; if it is possible,
   // base name is formally changed to inverce base name and returns
   CString InvBase() const;

   // FuncWithBase change this function base name to specified base name
   // and returns result 
   CFunc FuncWithBase(CMyString baseName) const;
   // FuncWithBase_InvType change this function base name to specified 
   // base name, exchange source and destination types and returns result 
   CFunc FuncWithBase_InvType(CMyString baseName) const;
   // FuncWithBase_InvChannels change this function base name to specified
   // base name, exchange source and destination channels and returns result 
   CFunc FuncWithBase_InvChannels(CMyString baseName) const;   

   // ParseFunction returns parsed elements of IPP function name
   void ParseFunction(CMyString& base, CMyString& type, CMyString& descr) const;
   void ParseFunction(CMyString& base, CMyString& type1, CMyString& type2,
                          CMyString& type3, CMyString& descr) const;

   // TypeToString converts type enumerator to type name 
   static CString TypeToString(ppType type);
   // StringToType converts type name to type enumerator 
   static ppType StringToType(CString type);
   // TypeToIpp converts type enumerator to IPP standard type enumerator 
   static IppDataType TypeToIpp(ppType type);
protected:

/////////////////////////////////////////////////////////////////////////////
// These functions bodies are not exist in func.cpp file
// Each Demo application should write there own functions to support their
// specifics

   // UpdateTypes updates function types
   void UpdateTypes(ppType& src1, ppType& src2, 
                    ppType& dst1, ppType& dst2) const;
   // UpdateChannels update function channels 
   void UpdateChannels(int& src, int& dst) const;
   // UpdatePlanes updates function plane flags
   void UpdatePlanes(BOOL& s, BOOL& d) const;
   // UpdateVecNames updates function vector(image) parameter names
   void UpdateVecNames(CMyString& src, CMyString& src2, 
                       CMyString& dst, CMyString& dst2, int usedVectors) const;
};

typedef CArray<CFunc,CFunc&> CFuncArray;

//////////////////////////////////////////////////////////////////////
// class CFuncList is the IPP functions list that can be created
// using IPP library header
//////////////////////////////////////////////////////////////////////

class CFuncList : public CList<CFunc,CFunc&>
{
public:
/////////////////////////////////////////////////////////////////////////////
// Constructor/destructor
   CFuncList();
   virtual ~CFuncList();

/////////////////////////////////////////////////////////////////////////////
// Operations
   
   // CreateFuncList creates this list as the list of all functions
   // in IPP library header file; the index of library is specified.
   // In addition, the internal outstanding function list is created:
   // all implemented and all non-processing function are extracted from
   // the full function list.
   void  CreateFuncList(int libIdx);
   // GetOutstandList return outstanding function list
   CFuncList* GetOutstandList() {return m_pOutstandList;}

/////////////////////////////////////////////////////////////////////////////
// Attributes

   // Find searches for function with specified name
   POSITION Find(LPCTSTR funcName, POSITION startAfter = NULL) const; 
protected:
   CMyString  m_baseName;
   POSITION m_position;
   CFuncList* m_pOutstandList;

   int SetOutstandList(int libIdx);
   int SubtractThisList(CStringList& rList);
};

//////////////////////////////////////////////////////////////////////
// class CRecentFuncList supports MRU recent functions list
//////////////////////////////////////////////////////////////////////

class CRecentFuncList : public CStringList
{
public:
   CRecentFuncList() : m_MaxSize(4) {}
   virtual ~CRecentFuncList() {}
   void UpdateMenu(CCmdUI* pCmdUI, CVector* pVec, BOOL bEnable = TRUE);
   void AddFunc(CFunc func);
   CFunc GetFunc(int index);
protected:
   int m_MaxSize;
};

#endif // !defined(AFX_FUNC_H__3517F47B_3053_4120_B591_459351A85BD8__INCLUDED_)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆自制传媒国产之光| 日韩av电影一区| 播五月开心婷婷综合| 中文字幕精品—区二区四季| 暴力调教一区二区三区| 亚洲欧洲精品一区二区精品久久久| 99在线精品一区二区三区| 亚洲黄色免费电影| 欧美日韩国产123区| 国产在线精品一区在线观看麻豆| 精品国产免费人成在线观看| 99综合电影在线视频| 亚洲成a人片综合在线| 日韩一级黄色大片| www.亚洲精品| 日本在线播放一区二区三区| 国产女主播一区| 欧美视频日韩视频| 国产美女一区二区| 夜夜嗨av一区二区三区中文字幕| 91精品国产综合久久久久久 | 九色综合狠狠综合久久| 日本一区二区免费在线观看视频 | 欧美日韩在线观看一区二区| 美女一区二区三区| 亚洲视频1区2区| 日韩亚洲电影在线| 色偷偷久久一区二区三区| 另类欧美日韩国产在线| 日韩久久一区二区| 精品不卡在线视频| 欧美在线999| 国产.精品.日韩.另类.中文.在线.播放| 亚洲欧洲综合另类在线 | 久久新电视剧免费观看| 91免费小视频| 国产精选一区二区三区| 午夜精品在线看| 亚洲欧洲日韩在线| 久久久久高清精品| 91精品国产欧美一区二区| 91色.com| 成人网在线免费视频| 麻豆成人av在线| 午夜视频一区二区三区| 亚洲欧美激情插| 国产精品毛片大码女人| 精品久久久久久久一区二区蜜臀| 欧美性受xxxx| 91在线视频播放地址| 国产风韵犹存在线视精品| 免费日本视频一区| 亚洲午夜免费视频| 亚洲欧美日韩人成在线播放| 国产精品你懂的在线| 久久婷婷一区二区三区| 91麻豆精品国产91久久久使用方法 | 91.com视频| 欧美亚洲愉拍一区二区| 91在线丨porny丨国产| 成人免费视频网站在线观看| 国产一区二区免费看| 久久69国产一区二区蜜臀| 免费在线看成人av| 日本特黄久久久高潮| 五月天视频一区| 天天射综合影视| 日韩精品一二区| 五月天久久比比资源色| 午夜精品视频在线观看| 视频一区欧美精品| 午夜欧美在线一二页| 首页国产欧美日韩丝袜| 午夜电影久久久| 免费观看30秒视频久久| 看电影不卡的网站| 国产综合成人久久大片91| 国产成人精品网址| 成人精品电影在线观看| bt欧美亚洲午夜电影天堂| 97久久超碰国产精品电影| 色综合一个色综合| 欧美视频第二页| 欧美一区二区三区播放老司机| 日韩精品一区二区三区老鸭窝| 日韩欧美成人午夜| 国产亚洲精品久| ...av二区三区久久精品| 亚洲美女淫视频| 婷婷开心激情综合| 激情综合五月天| 成人高清在线视频| 欧美日韩综合不卡| 精品美女在线观看| 中文字幕一区二区三区四区不卡| 亚洲毛片av在线| 日本在线观看不卡视频| 国产成人日日夜夜| 欧美自拍偷拍午夜视频| 精品欧美一区二区三区精品久久| 久久久久久久电影| 亚洲精品中文字幕乱码三区| 无码av免费一区二区三区试看| 国产综合久久久久久久久久久久| 成人美女视频在线观看18| 欧美日韩国产小视频在线观看| 精品伦理精品一区| 亚洲激情欧美激情| 精品中文字幕一区二区小辣椒 | 精品一区二区综合| 成人理论电影网| 3atv一区二区三区| 国产精品网站在线播放| 日韩电影在线免费| 99久久综合精品| 欧美一区二区三区免费在线看| 国产精品国产三级国产aⅴ无密码| 亚州成人在线电影| 成人av集中营| 欧美成人a视频| 一区二区三区在线免费| 国产精品中文字幕日韩精品| 欧美午夜精品免费| 国产精品色婷婷久久58| 久色婷婷小香蕉久久| 在线一区二区三区四区| 国产亚洲一二三区| 日韩av一区二| 色偷偷久久一区二区三区| 国产日韩欧美高清| 蜜臀av性久久久久av蜜臀妖精| 91免费观看视频在线| 久久久精品国产免大香伊| 日韩av在线播放中文字幕| 色婷婷av一区二区三区gif| 国产视频在线观看一区二区三区| 日韩国产欧美在线播放| 日本道在线观看一区二区| 国产日韩成人精品| 激情综合网最新| 日韩欧美国产三级电影视频| 亚洲国产精品天堂| 一本久久综合亚洲鲁鲁五月天 | 午夜在线成人av| 色综合久久中文综合久久97| 亚洲国产精品激情在线观看| 久久精品99国产精品日本| 欧美日韩在线精品一区二区三区激情 | 亚洲精品五月天| 99v久久综合狠狠综合久久| 久久久久久久国产精品影院| 久久99热99| 欧美草草影院在线视频| 日韩主播视频在线| 欧美日韩精品电影| 亚洲mv在线观看| 欧美老人xxxx18| 香蕉久久夜色精品国产使用方法| 欧美中文字幕久久| 亚洲小说欧美激情另类| 91热门视频在线观看| 亚洲视频一区二区免费在线观看| 不卡av在线免费观看| ㊣最新国产の精品bt伙计久久| 粉嫩av一区二区三区| 国产精品情趣视频| 99精品视频在线观看| 亚洲日本中文字幕区| 91片黄在线观看| 亚洲一卡二卡三卡四卡五卡| 欧美在线观看视频一区二区| 午夜伊人狠狠久久| 欧美成人国产一区二区| 国产精品综合视频| 中文字幕在线一区免费| 91福利视频网站| 日韩国产高清影视| www国产精品av| 国产精品香蕉一区二区三区| 国产欧美日韩激情| 色欧美乱欧美15图片| 日韩国产一区二| 久久久久久久久久久久久夜| www.欧美亚洲| 国产一级精品在线| 亚洲视频图片小说| 欧美精品三级日韩久久| 激情综合色播五月| 国产精品久久久久久久久免费樱桃| eeuss鲁片一区二区三区在线观看| 夜夜嗨av一区二区三区网页| 日韩你懂的在线播放| 成人自拍视频在线| 亚洲一区影音先锋| 精品少妇一区二区三区视频免付费 | 日韩一区二区麻豆国产| 国产成人免费视频一区| 亚洲主播在线观看| 精品美女在线观看| 一本色道亚洲精品aⅴ|