Updated OpenVX detector and wrappers to handle Reference attribute names change

This commit is contained in:
Vitaly Tuzov 2017-03-14 15:24:21 +03:00
parent 3e2b05b096
commit 5ebf066dd5
4 changed files with 27 additions and 1 deletions

View File

@ -11,6 +11,7 @@
#include <cfloat> #include <cfloat>
#include <climits> #include <climits>
#include <cmath> #include <cmath>
#include <cstring>
//================================================================================================== //==================================================================================================
// utility // utility
@ -1076,7 +1077,7 @@ int ovx_hal_integral(int depth, int sdepth, int, const uchar * a, size_t astep,
ib = ivx::Image::createFromHandle(ctx, VX_DF_IMAGE_U32, ib = ivx::Image::createFromHandle(ctx, VX_DF_IMAGE_U32,
ivx::Image::createAddressing(w, h, 4, (vx_int32)bstep), (unsigned int *)(b + bstep + sizeof(unsigned int))); ivx::Image::createAddressing(w, h, 4, (vx_int32)bstep), (unsigned int *)(b + bstep + sizeof(unsigned int)));
ivx::IVX_CHECK_STATUS(vxuIntegralImage(ctx, ia, ib)); ivx::IVX_CHECK_STATUS(vxuIntegralImage(ctx, ia, ib));
memset(b, 0, (w + 1) * sizeof(unsigned int)); std::memset(b, 0, (w + 1) * sizeof(unsigned int));
b += bstep; b += bstep;
for (int i = 0; i < h; i++, b += bstep) for (int i = 0; i < h; i++, b += bstep)
{ {

View File

@ -32,6 +32,12 @@ static const vx_enum VX_INTERPOLATION_NEAREST_NEIGHBOR = VX_INTERPOLATION_TYPE_N
static const vx_enum VX_BORDER_CONSTANT = VX_BORDER_MODE_CONSTANT; static const vx_enum VX_BORDER_CONSTANT = VX_BORDER_MODE_CONSTANT;
static const vx_enum VX_BORDER_REPLICATE = VX_BORDER_MODE_REPLICATE; static const vx_enum VX_BORDER_REPLICATE = VX_BORDER_MODE_REPLICATE;
#else
#ifdef IVX_RENAMED_REFS
static const vx_enum VX_REF_ATTRIBUTE_TYPE = VX_REFERENCE_TYPE;
#endif
#endif #endif
#ifndef IVX_USE_CXX98 #ifndef IVX_USE_CXX98

View File

@ -25,6 +25,20 @@ endif()
if(OPENVX_INCLUDE_DIR AND OPENVX_LIBRARIES) if(OPENVX_INCLUDE_DIR AND OPENVX_LIBRARIES)
set(HAVE_OPENVX TRUE) set(HAVE_OPENVX TRUE)
try_compile(OPENVX_RENAMED_REF
"${OpenCV_BINARY_DIR}"
"${OpenCV_SOURCE_DIR}/cmake/checks/openvx_refenum_test.cpp"
CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:STRING=${OPENVX_INCLUDE_DIR}"
LINK_LIBRARIES ${OPENVX_LIBRARIES}
OUTPUT_VARIABLE OUTPUT
)
if(OPENVX_RENAMED_REF)
add_definitions(-DIVX_RENAMED_REFS=1)
message(STATUS "OpenVX: Checking reference attribute name convention... New")
else()
message(STATUS "OpenVX: Checking reference attribute name convention... Old")
endif()
endif() endif()
if(NOT HAVE_OPENVX) if(NOT HAVE_OPENVX)

View File

@ -0,0 +1,5 @@
#include <VX/vx.h>
int main()
{
return VX_REFERENCE_COUNT == VX_REFERENCE_TYPE ? VX_REFERENCE_NAME : 0;
}