node-native-win-utils 1.1.1 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/README.md +144 -27
  2. package/binding.gyp +18 -5
  3. package/dist/index.d.ts +146 -4
  4. package/dist/index.js +107 -3
  5. package/include/opencv2/core/affine.hpp +678 -0
  6. package/include/opencv2/core/async.hpp +105 -0
  7. package/include/opencv2/core/base.hpp +664 -0
  8. package/include/opencv2/core/bindings_utils.hpp +325 -0
  9. package/include/opencv2/core/bufferpool.hpp +40 -0
  10. package/include/opencv2/core/check.hpp +170 -0
  11. package/include/opencv2/core/core.hpp +48 -0
  12. package/include/opencv2/core/core_c.h +3128 -0
  13. package/include/opencv2/core/cuda/block.hpp +211 -0
  14. package/include/opencv2/core/cuda/border_interpolate.hpp +722 -0
  15. package/include/opencv2/core/cuda/color.hpp +309 -0
  16. package/include/opencv2/core/cuda/common.hpp +131 -0
  17. package/include/opencv2/core/cuda/datamov_utils.hpp +113 -0
  18. package/include/opencv2/core/cuda/detail/color_detail.hpp +2018 -0
  19. package/include/opencv2/core/cuda/detail/reduce.hpp +365 -0
  20. package/include/opencv2/core/cuda/detail/reduce_key_val.hpp +502 -0
  21. package/include/opencv2/core/cuda/detail/transform_detail.hpp +392 -0
  22. package/include/opencv2/core/cuda/detail/type_traits_detail.hpp +191 -0
  23. package/include/opencv2/core/cuda/detail/vec_distance_detail.hpp +121 -0
  24. package/include/opencv2/core/cuda/dynamic_smem.hpp +88 -0
  25. package/include/opencv2/core/cuda/emulation.hpp +269 -0
  26. package/include/opencv2/core/cuda/filters.hpp +293 -0
  27. package/include/opencv2/core/cuda/funcattrib.hpp +79 -0
  28. package/include/opencv2/core/cuda/functional.hpp +805 -0
  29. package/include/opencv2/core/cuda/limits.hpp +128 -0
  30. package/include/opencv2/core/cuda/reduce.hpp +209 -0
  31. package/include/opencv2/core/cuda/saturate_cast.hpp +292 -0
  32. package/include/opencv2/core/cuda/scan.hpp +258 -0
  33. package/include/opencv2/core/cuda/simd_functions.hpp +869 -0
  34. package/include/opencv2/core/cuda/transform.hpp +75 -0
  35. package/include/opencv2/core/cuda/type_traits.hpp +90 -0
  36. package/include/opencv2/core/cuda/utility.hpp +230 -0
  37. package/include/opencv2/core/cuda/vec_distance.hpp +232 -0
  38. package/include/opencv2/core/cuda/vec_math.hpp +923 -0
  39. package/include/opencv2/core/cuda/vec_traits.hpp +288 -0
  40. package/include/opencv2/core/cuda/warp.hpp +139 -0
  41. package/include/opencv2/core/cuda/warp_reduce.hpp +76 -0
  42. package/include/opencv2/core/cuda/warp_shuffle.hpp +162 -0
  43. package/include/opencv2/core/cuda.hpp +1279 -0
  44. package/include/opencv2/core/cuda.inl.hpp +763 -0
  45. package/include/opencv2/core/cuda_stream_accessor.hpp +86 -0
  46. package/include/opencv2/core/cuda_types.hpp +144 -0
  47. package/include/opencv2/core/cv_cpu_dispatch.h +381 -0
  48. package/include/opencv2/core/cv_cpu_helper.h +550 -0
  49. package/include/opencv2/core/cvdef.h +973 -0
  50. package/include/opencv2/core/cvstd.hpp +190 -0
  51. package/include/opencv2/core/cvstd.inl.hpp +197 -0
  52. package/include/opencv2/core/cvstd_wrapper.hpp +154 -0
  53. package/include/opencv2/core/detail/async_promise.hpp +71 -0
  54. package/include/opencv2/core/detail/dispatch_helper.impl.hpp +49 -0
  55. package/include/opencv2/core/detail/exception_ptr.hpp +27 -0
  56. package/include/opencv2/core/directx.hpp +184 -0
  57. package/include/opencv2/core/dualquaternion.hpp +979 -0
  58. package/include/opencv2/core/dualquaternion.inl.hpp +487 -0
  59. package/include/opencv2/core/eigen.hpp +402 -0
  60. package/include/opencv2/core/fast_math.hpp +433 -0
  61. package/include/opencv2/core/hal/hal.hpp +256 -0
  62. package/include/opencv2/core/hal/interface.h +190 -0
  63. package/include/opencv2/core/hal/intrin.hpp +939 -0
  64. package/include/opencv2/core/hal/intrin_avx.hpp +3177 -0
  65. package/include/opencv2/core/hal/intrin_avx512.hpp +3090 -0
  66. package/include/opencv2/core/hal/intrin_cpp.hpp +3321 -0
  67. package/include/opencv2/core/hal/intrin_forward.hpp +191 -0
  68. package/include/opencv2/core/hal/intrin_lasx.hpp +3236 -0
  69. package/include/opencv2/core/hal/intrin_msa.hpp +1887 -0
  70. package/include/opencv2/core/hal/intrin_neon.hpp +2610 -0
  71. package/include/opencv2/core/hal/intrin_rvv.hpp +3320 -0
  72. package/include/opencv2/core/hal/intrin_rvv071.hpp +2545 -0
  73. package/include/opencv2/core/hal/intrin_rvv_scalable.hpp +2080 -0
  74. package/include/opencv2/core/hal/intrin_sse.hpp +3467 -0
  75. package/include/opencv2/core/hal/intrin_sse_em.hpp +180 -0
  76. package/include/opencv2/core/hal/intrin_vsx.hpp +1608 -0
  77. package/include/opencv2/core/hal/intrin_wasm.hpp +2782 -0
  78. package/include/opencv2/core/hal/msa_macros.h +1558 -0
  79. package/include/opencv2/core/hal/simd_utils.impl.hpp +186 -0
  80. package/include/opencv2/core/llapi/llapi.h +102 -0
  81. package/include/opencv2/core/mat.hpp +3775 -0
  82. package/include/opencv2/core/mat.inl.hpp +3422 -0
  83. package/include/opencv2/core/matx.hpp +1536 -0
  84. package/include/opencv2/core/neon_utils.hpp +128 -0
  85. package/include/opencv2/core/ocl.hpp +917 -0
  86. package/include/opencv2/core/ocl_genbase.hpp +69 -0
  87. package/include/opencv2/core/opencl/ocl_defs.hpp +82 -0
  88. package/include/opencv2/core/opencl/opencl_info.hpp +212 -0
  89. package/include/opencv2/core/opencl/opencl_svm.hpp +81 -0
  90. package/include/opencv2/core/opencl/runtime/autogenerated/opencl_clblas.hpp +602 -0
  91. package/include/opencv2/core/opencl/runtime/autogenerated/opencl_clfft.hpp +146 -0
  92. package/include/opencv2/core/opencl/runtime/autogenerated/opencl_core.hpp +371 -0
  93. package/include/opencv2/core/opencl/runtime/autogenerated/opencl_core_wrappers.hpp +272 -0
  94. package/include/opencv2/core/opencl/runtime/autogenerated/opencl_gl.hpp +62 -0
  95. package/include/opencv2/core/opencl/runtime/autogenerated/opencl_gl_wrappers.hpp +42 -0
  96. package/include/opencv2/core/opencl/runtime/opencl_clblas.hpp +53 -0
  97. package/include/opencv2/core/opencl/runtime/opencl_clfft.hpp +53 -0
  98. package/include/opencv2/core/opencl/runtime/opencl_core.hpp +84 -0
  99. package/include/opencv2/core/opencl/runtime/opencl_core_wrappers.hpp +47 -0
  100. package/include/opencv2/core/opencl/runtime/opencl_gl.hpp +53 -0
  101. package/include/opencv2/core/opencl/runtime/opencl_gl_wrappers.hpp +47 -0
  102. package/include/opencv2/core/opencl/runtime/opencl_svm_20.hpp +48 -0
  103. package/include/opencv2/core/opencl/runtime/opencl_svm_definitions.hpp +42 -0
  104. package/include/opencv2/core/opencl/runtime/opencl_svm_hsa_extension.hpp +166 -0
  105. package/include/opencv2/core/opengl.hpp +733 -0
  106. package/include/opencv2/core/openvx/ovx_defs.hpp +48 -0
  107. package/include/opencv2/core/operations.hpp +610 -0
  108. package/include/opencv2/core/optim.hpp +302 -0
  109. package/include/opencv2/core/ovx.hpp +28 -0
  110. package/include/opencv2/core/parallel/backend/parallel_for.openmp.hpp +72 -0
  111. package/include/opencv2/core/parallel/backend/parallel_for.tbb.hpp +153 -0
  112. package/include/opencv2/core/parallel/parallel_backend.hpp +90 -0
  113. package/include/opencv2/core/persistence.hpp +1350 -0
  114. package/include/opencv2/core/private/cv_cpu_include_simd_declarations.hpp +30 -0
  115. package/include/opencv2/core/private.cuda.hpp +169 -0
  116. package/include/opencv2/core/private.hpp +896 -0
  117. package/include/opencv2/core/quaternion.hpp +1696 -0
  118. package/include/opencv2/core/quaternion.inl.hpp +1063 -0
  119. package/include/opencv2/core/saturate.hpp +180 -0
  120. package/include/opencv2/core/simd_intrinsics.hpp +87 -0
  121. package/include/opencv2/core/softfloat.hpp +514 -0
  122. package/include/opencv2/core/sse_utils.hpp +652 -0
  123. package/include/opencv2/core/traits.hpp +417 -0
  124. package/include/opencv2/core/types.hpp +2457 -0
  125. package/include/opencv2/core/types_c.h +2126 -0
  126. package/include/opencv2/core/utility.hpp +1229 -0
  127. package/include/opencv2/core/utils/allocator_stats.hpp +29 -0
  128. package/include/opencv2/core/utils/allocator_stats.impl.hpp +158 -0
  129. package/include/opencv2/core/utils/buffer_area.private.hpp +136 -0
  130. package/include/opencv2/core/utils/configuration.private.hpp +22 -0
  131. package/include/opencv2/core/utils/filesystem.hpp +82 -0
  132. package/include/opencv2/core/utils/filesystem.private.hpp +66 -0
  133. package/include/opencv2/core/utils/fp_control.private.hpp +29 -0
  134. package/include/opencv2/core/utils/fp_control_utils.hpp +69 -0
  135. package/include/opencv2/core/utils/instrumentation.hpp +125 -0
  136. package/include/opencv2/core/utils/lock.private.hpp +119 -0
  137. package/include/opencv2/core/utils/logger.defines.hpp +42 -0
  138. package/include/opencv2/core/utils/logger.hpp +218 -0
  139. package/include/opencv2/core/utils/logtag.hpp +28 -0
  140. package/include/opencv2/core/utils/plugin_loader.private.hpp +165 -0
  141. package/include/opencv2/core/utils/tls.hpp +235 -0
  142. package/include/opencv2/core/utils/trace.hpp +252 -0
  143. package/include/opencv2/core/utils/trace.private.hpp +421 -0
  144. package/include/opencv2/core/va_intel.hpp +75 -0
  145. package/include/opencv2/core/version.hpp +26 -0
  146. package/include/opencv2/core/vsx_utils.hpp +1047 -0
  147. package/include/opencv2/core.hpp +3365 -0
  148. package/include/opencv2/imgcodecs/imgcodecs.hpp +48 -0
  149. package/include/opencv2/imgcodecs/imgcodecs_c.h +1 -0
  150. package/include/opencv2/imgcodecs/ios.h +59 -0
  151. package/include/opencv2/imgcodecs/legacy/constants_c.h +54 -0
  152. package/include/opencv2/imgcodecs/macosx.h +20 -0
  153. package/include/opencv2/imgcodecs.hpp +407 -0
  154. package/include/opencv2/imgproc/bindings.hpp +34 -0
  155. package/include/opencv2/imgproc/detail/gcgraph.hpp +395 -0
  156. package/include/opencv2/imgproc/hal/hal.hpp +246 -0
  157. package/include/opencv2/imgproc/hal/interface.h +46 -0
  158. package/include/opencv2/imgproc/imgproc.hpp +48 -0
  159. package/include/opencv2/imgproc/imgproc_c.h +1177 -0
  160. package/include/opencv2/imgproc/segmentation.hpp +141 -0
  161. package/include/opencv2/imgproc/types_c.h +659 -0
  162. package/include/opencv2/imgproc.hpp +5035 -0
  163. package/include/opencv2/opencv_modules.hpp +17 -0
  164. package/libs/libjpeg-turbo.lib +0 -0
  165. package/libs/libpng.lib +0 -0
  166. package/libs/opencv_core470.lib +0 -0
  167. package/libs/opencv_imgcodecs470.lib +0 -0
  168. package/libs/opencv_imgproc470.lib +0 -0
  169. package/libs/zlib.lib +0 -0
  170. package/package.json +8 -2
  171. package/prebuilds/win32-x64/node.napi.node +0 -0
  172. package/src/cpp/capturewindow.cpp +37 -47
  173. package/src/cpp/main.cpp +10 -2
  174. package/src/cpp/opencv.cpp +425 -0
@@ -0,0 +1,180 @@
1
+ // This file is part of OpenCV project.
2
+ // It is subject to the license terms in the LICENSE file found in the top-level directory
3
+ // of this distribution and at http://opencv.org/license.html
4
+
5
+ #ifndef OPENCV_HAL_INTRIN_SSE_EM_HPP
6
+ #define OPENCV_HAL_INTRIN_SSE_EM_HPP
7
+
8
+ namespace cv
9
+ {
10
+
11
+ //! @cond IGNORED
12
+
13
+ CV_CPU_OPTIMIZATION_HAL_NAMESPACE_BEGIN
14
+
15
+ #define OPENCV_HAL_SSE_WRAP_1(fun, tp) \
16
+ inline tp _v128_##fun(const tp& a) \
17
+ { return _mm_##fun(a); }
18
+
19
+ #define OPENCV_HAL_SSE_WRAP_2(fun, tp) \
20
+ inline tp _v128_##fun(const tp& a, const tp& b) \
21
+ { return _mm_##fun(a, b); }
22
+
23
+ #define OPENCV_HAL_SSE_WRAP_3(fun, tp) \
24
+ inline tp _v128_##fun(const tp& a, const tp& b, const tp& c) \
25
+ { return _mm_##fun(a, b, c); }
26
+
27
+ ///////////////////////////// XOP /////////////////////////////
28
+
29
+ // [todo] define CV_XOP
30
+ #if 1 // CV_XOP
31
+ inline __m128i _v128_comgt_epu32(const __m128i& a, const __m128i& b)
32
+ {
33
+ const __m128i delta = _mm_set1_epi32((int)0x80000000);
34
+ return _mm_cmpgt_epi32(_mm_xor_si128(a, delta), _mm_xor_si128(b, delta));
35
+ }
36
+ // wrapping XOP
37
+ #else
38
+ OPENCV_HAL_SSE_WRAP_2(_v128_comgt_epu32, __m128i)
39
+ #endif // !CV_XOP
40
+
41
+ ///////////////////////////// SSE4.1 /////////////////////////////
42
+
43
+ #if !CV_SSE4_1
44
+
45
+ /** Swizzle **/
46
+ inline __m128i _v128_blendv_epi8(const __m128i& a, const __m128i& b, const __m128i& mask)
47
+ { return _mm_xor_si128(a, _mm_and_si128(_mm_xor_si128(b, a), mask)); }
48
+
49
+ /** Convert **/
50
+ // 8 >> 16
51
+ inline __m128i _v128_cvtepu8_epi16(const __m128i& a)
52
+ {
53
+ const __m128i z = _mm_setzero_si128();
54
+ return _mm_unpacklo_epi8(a, z);
55
+ }
56
+ inline __m128i _v128_cvtepi8_epi16(const __m128i& a)
57
+ { return _mm_srai_epi16(_mm_unpacklo_epi8(a, a), 8); }
58
+ // 8 >> 32
59
+ inline __m128i _v128_cvtepu8_epi32(const __m128i& a)
60
+ {
61
+ const __m128i z = _mm_setzero_si128();
62
+ return _mm_unpacklo_epi16(_mm_unpacklo_epi8(a, z), z);
63
+ }
64
+ inline __m128i _v128_cvtepi8_epi32(const __m128i& a)
65
+ {
66
+ __m128i r = _mm_unpacklo_epi8(a, a);
67
+ r = _mm_unpacklo_epi8(r, r);
68
+ return _mm_srai_epi32(r, 24);
69
+ }
70
+ // 16 >> 32
71
+ inline __m128i _v128_cvtepu16_epi32(const __m128i& a)
72
+ {
73
+ const __m128i z = _mm_setzero_si128();
74
+ return _mm_unpacklo_epi16(a, z);
75
+ }
76
+ inline __m128i _v128_cvtepi16_epi32(const __m128i& a)
77
+ { return _mm_srai_epi32(_mm_unpacklo_epi16(a, a), 16); }
78
+ // 32 >> 64
79
+ inline __m128i _v128_cvtepu32_epi64(const __m128i& a)
80
+ {
81
+ const __m128i z = _mm_setzero_si128();
82
+ return _mm_unpacklo_epi32(a, z);
83
+ }
84
+ inline __m128i _v128_cvtepi32_epi64(const __m128i& a)
85
+ { return _mm_unpacklo_epi32(a, _mm_srai_epi32(a, 31)); }
86
+
87
+ /** Arithmetic **/
88
+ inline __m128i _v128_mullo_epi32(const __m128i& a, const __m128i& b)
89
+ {
90
+ __m128i c0 = _mm_mul_epu32(a, b);
91
+ __m128i c1 = _mm_mul_epu32(_mm_srli_epi64(a, 32), _mm_srli_epi64(b, 32));
92
+ __m128i d0 = _mm_unpacklo_epi32(c0, c1);
93
+ __m128i d1 = _mm_unpackhi_epi32(c0, c1);
94
+ return _mm_unpacklo_epi64(d0, d1);
95
+ }
96
+
97
+ /** Math **/
98
+ inline __m128i _v128_min_epu32(const __m128i& a, const __m128i& b)
99
+ { return _v128_blendv_epi8(a, b, _v128_comgt_epu32(a, b)); }
100
+
101
+ // wrapping SSE4.1
102
+ #else
103
+ OPENCV_HAL_SSE_WRAP_1(cvtepu8_epi16, __m128i)
104
+ OPENCV_HAL_SSE_WRAP_1(cvtepi8_epi16, __m128i)
105
+ OPENCV_HAL_SSE_WRAP_1(cvtepu8_epi32, __m128i)
106
+ OPENCV_HAL_SSE_WRAP_1(cvtepi8_epi32, __m128i)
107
+ OPENCV_HAL_SSE_WRAP_1(cvtepu16_epi32, __m128i)
108
+ OPENCV_HAL_SSE_WRAP_1(cvtepi16_epi32, __m128i)
109
+ OPENCV_HAL_SSE_WRAP_1(cvtepu32_epi64, __m128i)
110
+ OPENCV_HAL_SSE_WRAP_1(cvtepi32_epi64, __m128i)
111
+ OPENCV_HAL_SSE_WRAP_2(min_epu32, __m128i)
112
+ OPENCV_HAL_SSE_WRAP_2(mullo_epi32, __m128i)
113
+ OPENCV_HAL_SSE_WRAP_3(blendv_epi8, __m128i)
114
+ #endif // !CV_SSE4_1
115
+
116
+ ///////////////////////////// Revolutionary /////////////////////////////
117
+
118
+ /** Convert **/
119
+ // 16 << 8
120
+ inline __m128i _v128_cvtepu8_epi16_high(const __m128i& a)
121
+ {
122
+ const __m128i z = _mm_setzero_si128();
123
+ return _mm_unpackhi_epi8(a, z);
124
+ }
125
+ inline __m128i _v128_cvtepi8_epi16_high(const __m128i& a)
126
+ { return _mm_srai_epi16(_mm_unpackhi_epi8(a, a), 8); }
127
+ // 32 << 16
128
+ inline __m128i _v128_cvtepu16_epi32_high(const __m128i& a)
129
+ {
130
+ const __m128i z = _mm_setzero_si128();
131
+ return _mm_unpackhi_epi16(a, z);
132
+ }
133
+ inline __m128i _v128_cvtepi16_epi32_high(const __m128i& a)
134
+ { return _mm_srai_epi32(_mm_unpackhi_epi16(a, a), 16); }
135
+ // 64 << 32
136
+ inline __m128i _v128_cvtepu32_epi64_high(const __m128i& a)
137
+ {
138
+ const __m128i z = _mm_setzero_si128();
139
+ return _mm_unpackhi_epi32(a, z);
140
+ }
141
+ inline __m128i _v128_cvtepi32_epi64_high(const __m128i& a)
142
+ { return _mm_unpackhi_epi32(a, _mm_srai_epi32(a, 31)); }
143
+
144
+ /** Miscellaneous **/
145
+ inline __m128i _v128_packs_epu32(const __m128i& a, const __m128i& b)
146
+ {
147
+ const __m128i m = _mm_set1_epi32(65535);
148
+ __m128i am = _v128_min_epu32(a, m);
149
+ __m128i bm = _v128_min_epu32(b, m);
150
+ #if CV_SSE4_1
151
+ return _mm_packus_epi32(am, bm);
152
+ #else
153
+ const __m128i d = _mm_set1_epi32(32768), nd = _mm_set1_epi16(-32768);
154
+ am = _mm_sub_epi32(am, d);
155
+ bm = _mm_sub_epi32(bm, d);
156
+ am = _mm_packs_epi32(am, bm);
157
+ return _mm_sub_epi16(am, nd);
158
+ #endif
159
+ }
160
+
161
+ template<int i>
162
+ inline int64 _v128_extract_epi64(const __m128i& a)
163
+ {
164
+ #if defined(CV__SIMD_HAVE_mm_extract_epi64) || (CV_SSE4_1 && (defined(__x86_64__)/*GCC*/ || defined(_M_X64)/*MSVC*/))
165
+ #define CV__SIMD_NATIVE_mm_extract_epi64 1
166
+ return _mm_extract_epi64(a, i);
167
+ #else
168
+ CV_DECL_ALIGNED(16) int64 tmp[2];
169
+ _mm_store_si128((__m128i*)tmp, a);
170
+ return tmp[i];
171
+ #endif
172
+ }
173
+
174
+ CV_CPU_OPTIMIZATION_HAL_NAMESPACE_END
175
+
176
+ //! @endcond
177
+
178
+ } // cv::
179
+
180
+ #endif // OPENCV_HAL_INTRIN_SSE_EM_HPP