vx_compatibility.h 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. /*
  2. * Copyright (c) 2012-2017 The Khronos Group Inc.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. #ifndef VX_1_0_1_NAMING_COMPATIBILITY
  17. #define VX_1_0_1_NAMING_COMPATIBILITY
  18. #define VX_TYPE_SCALAR_MAX (VX_TYPE_BOOL + 1)
  19. #define vx_border_mode_e vx_border_e
  20. #define vx_border_mode_policy_e vx_border_policy_e
  21. #define _vx_border_mode_t _vx_border_t
  22. #define vx_border_mode_t vx_border_t
  23. #define VX_REF_ATTRIBUTE_COUNT VX_REFERENCE_COUNT
  24. #define VX_REF_ATTRIBUTE_TYPE VX_REFERENCE_TYPE
  25. #define VX_REF_ATTRIBUTE_NAME VX_REFERENCE_NAME
  26. #define VX_CONTEXT_ATTRIBUTE_VENDOR_ID VX_CONTEXT_VENDOR_ID
  27. #define VX_CONTEXT_ATTRIBUTE_VERSION VX_CONTEXT_VERSION
  28. #define VX_CONTEXT_ATTRIBUTE_UNIQUE_KERNELS VX_CONTEXT_UNIQUE_KERNELS
  29. #define VX_CONTEXT_ATTRIBUTE_MODULES VX_CONTEXT_MODULES
  30. #define VX_CONTEXT_ATTRIBUTE_REFERENCES VX_CONTEXT_REFERENCES
  31. #define VX_CONTEXT_ATTRIBUTE_IMPLEMENTATION VX_CONTEXT_IMPLEMENTATION
  32. #define VX_CONTEXT_ATTRIBUTE_EXTENSIONS_SIZE VX_CONTEXT_EXTENSIONS_SIZE
  33. #define VX_CONTEXT_ATTRIBUTE_EXTENSIONS VX_CONTEXT_EXTENSIONS
  34. #define VX_CONTEXT_ATTRIBUTE_CONVOLUTION_MAXIMUM_DIMENSION VX_CONTEXT_CONVOLUTION_MAX_DIMENSION
  35. #define VX_CONTEXT_ATTRIBUTE_UNIQUE_KERNEL_TABLE VX_CONTEXT_UNIQUE_KERNEL_TABLE
  36. #define VX_KERNEL_ATTRIBUTE_PARAMETERS VX_KERNEL_PARAMETERS
  37. #define VX_KERNEL_ATTRIBUTE_NAME VX_KERNEL_NAME
  38. #define VX_KERNEL_ATTRIBUTE_ENUM VX_KERNEL_ENUM
  39. #define VX_NODE_ATTRIBUTE_STATUS VX_NODE_STATUS
  40. #define VX_NODE_ATTRIBUTE_PERFORMANCE VX_NODE_PERFORMANCE
  41. #define VX_NODE_ATTRIBUTE_BORDER_MODE VX_NODE_BORDER
  42. #define VX_PARAMETER_ATTRIBUTE_INDEX VX_PARAMETER_INDEX
  43. #define VX_PARAMETER_ATTRIBUTE_DIRECTION VX_PARAMETER_DIRECTION
  44. #define VX_PARAMETER_ATTRIBUTE_TYPE VX_PARAMETER_TYPE
  45. #define VX_PARAMETER_ATTRIBUTE_STATE VX_PARAMETER_STATE
  46. #define VX_PARAMETER_ATTRIBUTE_REF VX_PARAMETER_REF
  47. #define VX_IMAGE_ATTRIBUTE_WIDTH VX_IMAGE_WIDTH
  48. #define VX_IMAGE_ATTRIBUTE_HEIGHT VX_IMAGE_HEIGHT
  49. #define VX_IMAGE_ATTRIBUTE_FORMAT VX_IMAGE_FORMAT
  50. #define VX_IMAGE_ATTRIBUTE_PLANES VX_IMAGE_PLANES
  51. #define VX_IMAGE_ATTRIBUTE_SPACE VX_IMAGE_SPACE
  52. #define VX_IMAGE_ATTRIBUTE_RANGE VX_IMAGE_RANGE
  53. #define VX_IMAGE_ATTRIBUTE_SIZE VX_IMAGE_SIZE
  54. #define VX_SCALAR_ATTRIBUTE_TYPE VX_SCALAR_TYPE
  55. #define VX_GRAPH_ATTRIBUTE_NUMNODES VX_GRAPH_NUMNODES
  56. #define VX_GRAPH_ATTRIBUTE_STATUS (VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_GRAPH) + 0x1)
  57. #define VX_GRAPH_ATTRIBUTE_NUMPARAMETERS VX_GRAPH_NUMPARAMETERS
  58. #define VX_LUT_ATTRIBUTE_TYPE VX_LUT_TYPE
  59. #define VX_LUT_ATTRIBUTE_COUNT VX_LUT_COUNT
  60. #define VX_LUT_ATTRIBUTE_SIZE VX_LUT_SIZE
  61. #define VX_DISTRIBUTION_ATTRIBUTE_DIMENSIONS VX_DISTRIBUTION_DIMENSIONS
  62. #define VX_DISTRIBUTION_ATTRIBUTE_OFFSET VX_DISTRIBUTION_OFFSET
  63. #define VX_DISTRIBUTION_ATTRIBUTE_RANGE VX_DISTRIBUTION_RANGE
  64. #define VX_DISTRIBUTION_ATTRIBUTE_BINS VX_DISTRIBUTION_BINS
  65. #define VX_DISTRIBUTION_ATTRIBUTE_WINDOW VX_DISTRIBUTION_WINDOW
  66. #define VX_DISTRIBUTION_ATTRIBUTE_SIZE VX_DISTRIBUTION_SIZE
  67. #define VX_THRESHOLD_ATTRIBUTE_TYPE VX_THRESHOLD_TYPE
  68. #define VX_THRESHOLD_ATTRIBUTE_THRESHOLD_VALUE VX_THRESHOLD_THRESHOLD_VALUE
  69. #define VX_THRESHOLD_ATTRIBUTE_THRESHOLD_LOWER VX_THRESHOLD_THRESHOLD_LOWER
  70. #define VX_THRESHOLD_ATTRIBUTE_THRESHOLD_UPPER VX_THRESHOLD_THRESHOLD_UPPER
  71. #define VX_THRESHOLD_ATTRIBUTE_TRUE_VALUE VX_THRESHOLD_TRUE_VALUE
  72. #define VX_THRESHOLD_ATTRIBUTE_FALSE_VALUE VX_THRESHOLD_FALSE_VALUE
  73. #define VX_THRESHOLD_ATTRIBUTE_DATA_TYPE VX_THRESHOLD_DATA_TYPE
  74. #define VX_MATRIX_ATTRIBUTE_TYPE VX_MATRIX_TYPE
  75. #define VX_MATRIX_ATTRIBUTE_ROWS VX_MATRIX_ROWS
  76. #define VX_MATRIX_ATTRIBUTE_COLUMNS VX_MATRIX_COLUMNS
  77. #define VX_MATRIX_ATTRIBUTE_SIZE VX_MATRIX_SIZE
  78. #define VX_CONVOLUTION_ATTRIBUTE_ROWS VX_CONVOLUTION_ROWS
  79. #define VX_CONVOLUTION_ATTRIBUTE_COLUMNS VX_CONVOLUTION_COLUMNS
  80. #define VX_CONVOLUTION_ATTRIBUTE_SCALE VX_CONVOLUTION_SCALE
  81. #define VX_CONVOLUTION_ATTRIBUTE_SIZE VX_CONVOLUTION_SIZE
  82. #define VX_PYRAMID_ATTRIBUTE_LEVELS VX_PYRAMID_LEVELS
  83. #define VX_PYRAMID_ATTRIBUTE_SCALE VX_PYRAMID_SCALE
  84. #define VX_PYRAMID_ATTRIBUTE_WIDTH VX_PYRAMID_WIDTH
  85. #define VX_PYRAMID_ATTRIBUTE_HEIGHT VX_PYRAMID_HEIGHT
  86. #define VX_PYRAMID_ATTRIBUTE_FORMAT VX_PYRAMID_FORMAT
  87. #define VX_REMAP_ATTRIBUTE_SOURCE_WIDTH VX_REMAP_SOURCE_WIDTH
  88. #define VX_REMAP_ATTRIBUTE_SOURCE_HEIGHT VX_REMAP_SOURCE_HEIGHT
  89. #define VX_REMAP_ATTRIBUTE_DESTINATION_WIDTH VX_REMAP_DESTINATION_WIDTH
  90. #define VX_REMAP_ATTRIBUTE_DESTINATION_HEIGHT VX_REMAP_DESTINATION_HEIGHT
  91. #define VX_ARRAY_ATTRIBUTE_ITEMTYPE VX_ARRAY_ITEMTYPE
  92. #define VX_ARRAY_ATTRIBUTE_NUMITEMS VX_ARRAY_NUMITEMS
  93. #define VX_ARRAY_ATTRIBUTE_CAPACITY VX_ARRAY_CAPACITY
  94. #define VX_ARRAY_ATTRIBUTE_ITEMSIZE VX_ARRAY_ITEMSIZE
  95. #define VX_DELAY_ATTRIBUTE_TYPE VX_DELAY_TYPE
  96. #define VX_DELAY_ATTRIBUTE_SLOTS VX_DELAY_SLOTS
  97. #define VX_INTERPOLATION_TYPE_AREA VX_INTERPOLATION_AREA
  98. #define VX_INTERPOLATION_TYPE_BILINEAR VX_INTERPOLATION_BILINEAR
  99. #define VX_INTERPOLATION_TYPE_NEAREST_NEIGHBOR VX_INTERPOLATION_NEAREST_NEIGHBOR
  100. #define VX_IMAGE_SIZE (VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_IMAGE) + 0x6)
  101. #define VX_META_FORMAT_ATTRIBUTE_DELTA_RECTANGLE (VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_META_FORMAT) + 0x0)
  102. #define VX_HINT_SERIALIZE (VX_ENUM_BASE(VX_ID_KHRONOS, VX_ENUM_HINT) + 0x0)
  103. #define vx_import_type_e vx_memory_type_e
  104. #define VX_ENUM_IMPORT_MEM VX_ENUM_MEMORY_TYPE
  105. #define VX_IMPORT_TYPE_NONE VX_MEMORY_TYPE_NONE
  106. #define VX_IMPORT_TYPE_HOST VX_MEMORY_TYPE_HOST
  107. #define VX_TYPE_OBJECT_MAX VX_TYPE_KHRONOS_OBJECT_END
  108. #define VX_TYPE_STRUCT_MAX VX_TYPE_KHRONOS_STRUCT_MAX
  109. #define VX_KERNEL_INVALID (VX_KERNEL_BASE(VX_ID_KHRONOS, VX_LIBRARY_KHR_BASE) + 0x0)
  110. #define VX_THRESHOLD_THRESHOLD_VALUE (VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_THRESHOLD) + 0x1)
  111. #define VX_THRESHOLD_THRESHOLD_LOWER (VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_THRESHOLD) + 0x2)
  112. #define VX_THRESHOLD_THRESHOLD_UPPER (VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_THRESHOLD) + 0x3)
  113. #define VX_THRESHOLD_TRUE_VALUE (VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_THRESHOLD) + 0x4)
  114. #define VX_THRESHOLD_FALSE_VALUE (VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_THRESHOLD) + 0x5)
  115. #define VX_THRESHOLD_DATA_TYPE (VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_THRESHOLD) + 0x6)
  116. typedef vx_status(VX_CALLBACK *vx_kernel_input_validate_f)(vx_node node, vx_uint32 index);
  117. typedef vx_status(VX_CALLBACK *vx_kernel_output_validate_f)(vx_node node, vx_uint32 index, vx_meta_format meta);
  118. typedef struct _vx_delta_rectangle_t {
  119. vx_int32 delta_start_x; /*!< \brief The change in the start x. */
  120. vx_int32 delta_start_y; /*!< \brief The change in the start y. */
  121. vx_int32 delta_end_x; /*!< \brief The change in the end x. */
  122. vx_int32 delta_end_y; /*!< \brief The change in the end y. */
  123. } vx_delta_rectangle_t;
  124. #ifdef __cplusplus
  125. extern "C" {
  126. #endif
  127. VX_API_ENTRY vx_kernel VX_API_CALL vxAddKernel(vx_context context,
  128. const vx_char name[VX_MAX_KERNEL_NAME],
  129. vx_enum enumeration,
  130. vx_kernel_f func_ptr,
  131. vx_uint32 numParams,
  132. vx_kernel_input_validate_f input,
  133. vx_kernel_output_validate_f output,
  134. vx_kernel_initialize_f init,
  135. vx_kernel_deinitialize_f deinit);
  136. VX_API_ENTRY vx_status VX_API_CALL vxReadScalarValue(vx_scalar ref, void *ptr);
  137. VX_API_ENTRY vx_status VX_API_CALL vxWriteScalarValue(vx_scalar ref, const void *ptr);
  138. #ifdef __cplusplus
  139. }
  140. #endif
  141. #endif /* VX_1_0_1_NAMING_COMPATIBILITY */