16 #ifndef __IPSDKIMAGEPROCESSING_IMAGEPROCESSINGALGORITHMSRCMACROS_H__ 17 #define __IPSDKIMAGEPROCESSING_IMAGEPROCESSINGALGORITHMSRCMACROS_H__ 20 #include <IPSDKImageProcessing/Algorithm/Function/AlgorithmFunctionEfficiency.h> 28 #define CAT_IS_MACRO(s, data, elem) eInstructionSet::elem 32 #define IPSDK_GET_FUNCTION_EFFICIENCY(isSeq) \ 33 (ipsdk::imaproc::AlgorithmFunctionEfficiency< \ 34 BOOST_PP_SEQ_ENUM(BOOST_PP_SEQ_TRANSFORM(CAT_IS_MACRO, _, isSeq))>::getEfficiency()) 39 #define IPSDK_REGISTER_GENERIC_STRIP_ALGORITHM_FUNCTION(bufferTypeSeq, isSeq, \ 41 IPSDK_REGISTER_GENERIC_ALGORITHM_FUNCTION( \ 42 IPSDK_TRANSFORM_SEQ(bufferTypeSeq, STRIP), \ 43 isSeq, IPSDK_GET_FUNCTION_EFFICIENCY(isSeq), \ 48 #define IPSDK_REGISTER_GENERIC_STRIP_ALGORITHM_FUNCTION_COLL_MACRO(r, dataInfo) \ 49 IPSDK_REGISTER_GENERIC_STRIP_ALGORITHM_FUNCTION(BOOST_PP_SEQ_REST_N(2, dataInfo), \ 50 BOOST_PP_SEQ_ELEM(0, dataInfo), \ 51 BOOST_PP_SEQ_ELEM(1, dataInfo)) 56 #define IPSDK_REGISTER_GENERIC_STRIP_ALGORITHM_FUNCTION_COLL(bufferTypeSeqColl, isSeq, \ 58 BOOST_PP_SEQ_FOR_EACH_PRODUCT(IPSDK_REGISTER_GENERIC_STRIP_ALGORITHM_FUNCTION_COLL_MACRO, \ 59 ((isSeq))((functionName)) bufferTypeSeqColl) 67 #define IPSDK_REGISTER_SPECIFIC_STRIP_ALGORITHM_FUNCTION(bufferTypeSeq, isSeq, \ 69 IPSDK_REGISTER_SPECIFIC_ALGORITHM_FUNCTION( \ 70 IPSDK_TRANSFORM_SEQ(bufferTypeSeq, STRIP), \ 71 isSeq, IPSDK_GET_FUNCTION_EFFICIENCY(isSeq), functionName) 75 #define IPSDK_REGISTER_SPECIFIC_STRIP_ALGORITHM_FUNCTION_COLL_MACRO(r, dataInfo) \ 76 IPSDK_REGISTER_SPECIFIC_STRIP_ALGORITHM_FUNCTION(BOOST_PP_SEQ_REST_N(2, dataInfo), \ 77 BOOST_PP_SEQ_ELEM(0, dataInfo), \ 78 BOOST_PP_SEQ_ELEM(1, dataInfo)) 83 #define IPSDK_REGISTER_SPECIFIC_STRIP_ALGORITHM_FUNCTION_COLL(bufferTypeSeqColl, isSeq, \ 85 BOOST_PP_SEQ_FOR_EACH_PRODUCT(IPSDK_REGISTER_SPECIFIC_STRIP_ALGORITHM_FUNCTION_COLL_MACRO, \ 86 ((isSeq))((functionName)) bufferTypeSeqColl) 93 #endif // __IPSDKIMAGEPROCESSING_IMAGEPROCESSINGALGORITHMSRCMACROS_H__ Source part of macros set for image processing algorithm class implementation.
Source part of macros set for processing algorithm class implementation.