node-native-win-utils 1.4.0 → 2.1.0

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 (204) hide show
  1. package/README.md +29 -82
  2. package/binding.gyp +2 -0
  3. package/dist/dirnameLocal.cjs +4 -0
  4. package/dist/dirnameLocal.d.cts +1 -0
  5. package/dist/dirnameLocal.d.mts +1 -0
  6. package/dist/dirnameLocal.mjs +2 -0
  7. package/dist/{index.js → index.cjs} +46 -15
  8. package/dist/{index.d.ts → index.d.cts} +24 -12
  9. package/dist/index.d.mts +191 -0
  10. package/dist/index.mjs +177 -0
  11. package/dist/keyCodes.d.mts +101 -0
  12. package/dist/keyCodes.mjs +201 -0
  13. package/node22.json +16 -0
  14. package/package.json +19 -9
  15. package/prebuilds/win32-x64/node-native-win-utils.node +0 -0
  16. package/src/cpp/keyboard.cpp +141 -140
  17. package/src/cpp/main.cpp +9 -3
  18. package/src/cpp/{capturewindow.cpp → screenshot.cpp} +174 -2
  19. package/src/dirnameLocal.mts +3 -0
  20. package/src/index.mts +454 -0
  21. package/src/keyCodes.mts +203 -0
  22. package/dllCopy.js +0 -14
  23. package/include/opencv2/core/affine.hpp +0 -678
  24. package/include/opencv2/core/async.hpp +0 -105
  25. package/include/opencv2/core/base.hpp +0 -664
  26. package/include/opencv2/core/bindings_utils.hpp +0 -325
  27. package/include/opencv2/core/bufferpool.hpp +0 -40
  28. package/include/opencv2/core/check.hpp +0 -170
  29. package/include/opencv2/core/core.hpp +0 -48
  30. package/include/opencv2/core/core_c.h +0 -3128
  31. package/include/opencv2/core/cuda/block.hpp +0 -211
  32. package/include/opencv2/core/cuda/border_interpolate.hpp +0 -722
  33. package/include/opencv2/core/cuda/color.hpp +0 -309
  34. package/include/opencv2/core/cuda/common.hpp +0 -131
  35. package/include/opencv2/core/cuda/datamov_utils.hpp +0 -113
  36. package/include/opencv2/core/cuda/detail/color_detail.hpp +0 -2018
  37. package/include/opencv2/core/cuda/detail/reduce.hpp +0 -365
  38. package/include/opencv2/core/cuda/detail/reduce_key_val.hpp +0 -502
  39. package/include/opencv2/core/cuda/detail/transform_detail.hpp +0 -392
  40. package/include/opencv2/core/cuda/detail/type_traits_detail.hpp +0 -191
  41. package/include/opencv2/core/cuda/detail/vec_distance_detail.hpp +0 -121
  42. package/include/opencv2/core/cuda/dynamic_smem.hpp +0 -88
  43. package/include/opencv2/core/cuda/emulation.hpp +0 -269
  44. package/include/opencv2/core/cuda/filters.hpp +0 -293
  45. package/include/opencv2/core/cuda/funcattrib.hpp +0 -79
  46. package/include/opencv2/core/cuda/functional.hpp +0 -805
  47. package/include/opencv2/core/cuda/limits.hpp +0 -128
  48. package/include/opencv2/core/cuda/reduce.hpp +0 -209
  49. package/include/opencv2/core/cuda/saturate_cast.hpp +0 -292
  50. package/include/opencv2/core/cuda/scan.hpp +0 -258
  51. package/include/opencv2/core/cuda/simd_functions.hpp +0 -869
  52. package/include/opencv2/core/cuda/transform.hpp +0 -75
  53. package/include/opencv2/core/cuda/type_traits.hpp +0 -90
  54. package/include/opencv2/core/cuda/utility.hpp +0 -230
  55. package/include/opencv2/core/cuda/vec_distance.hpp +0 -232
  56. package/include/opencv2/core/cuda/vec_math.hpp +0 -923
  57. package/include/opencv2/core/cuda/vec_traits.hpp +0 -288
  58. package/include/opencv2/core/cuda/warp.hpp +0 -139
  59. package/include/opencv2/core/cuda/warp_reduce.hpp +0 -76
  60. package/include/opencv2/core/cuda/warp_shuffle.hpp +0 -162
  61. package/include/opencv2/core/cuda.hpp +0 -1279
  62. package/include/opencv2/core/cuda.inl.hpp +0 -763
  63. package/include/opencv2/core/cuda_stream_accessor.hpp +0 -86
  64. package/include/opencv2/core/cuda_types.hpp +0 -144
  65. package/include/opencv2/core/cv_cpu_dispatch.h +0 -381
  66. package/include/opencv2/core/cv_cpu_helper.h +0 -550
  67. package/include/opencv2/core/cvdef.h +0 -973
  68. package/include/opencv2/core/cvstd.hpp +0 -190
  69. package/include/opencv2/core/cvstd.inl.hpp +0 -197
  70. package/include/opencv2/core/cvstd_wrapper.hpp +0 -154
  71. package/include/opencv2/core/detail/async_promise.hpp +0 -71
  72. package/include/opencv2/core/detail/dispatch_helper.impl.hpp +0 -49
  73. package/include/opencv2/core/detail/exception_ptr.hpp +0 -27
  74. package/include/opencv2/core/directx.hpp +0 -184
  75. package/include/opencv2/core/dualquaternion.hpp +0 -979
  76. package/include/opencv2/core/dualquaternion.inl.hpp +0 -487
  77. package/include/opencv2/core/eigen.hpp +0 -402
  78. package/include/opencv2/core/fast_math.hpp +0 -433
  79. package/include/opencv2/core/hal/hal.hpp +0 -256
  80. package/include/opencv2/core/hal/interface.h +0 -190
  81. package/include/opencv2/core/hal/intrin.hpp +0 -939
  82. package/include/opencv2/core/hal/intrin_avx.hpp +0 -3177
  83. package/include/opencv2/core/hal/intrin_avx512.hpp +0 -3090
  84. package/include/opencv2/core/hal/intrin_cpp.hpp +0 -3321
  85. package/include/opencv2/core/hal/intrin_forward.hpp +0 -191
  86. package/include/opencv2/core/hal/intrin_lasx.hpp +0 -3236
  87. package/include/opencv2/core/hal/intrin_msa.hpp +0 -1887
  88. package/include/opencv2/core/hal/intrin_neon.hpp +0 -2610
  89. package/include/opencv2/core/hal/intrin_rvv.hpp +0 -3320
  90. package/include/opencv2/core/hal/intrin_rvv071.hpp +0 -2545
  91. package/include/opencv2/core/hal/intrin_rvv_scalable.hpp +0 -2080
  92. package/include/opencv2/core/hal/intrin_sse.hpp +0 -3467
  93. package/include/opencv2/core/hal/intrin_sse_em.hpp +0 -180
  94. package/include/opencv2/core/hal/intrin_vsx.hpp +0 -1608
  95. package/include/opencv2/core/hal/intrin_wasm.hpp +0 -2782
  96. package/include/opencv2/core/hal/msa_macros.h +0 -1558
  97. package/include/opencv2/core/hal/simd_utils.impl.hpp +0 -186
  98. package/include/opencv2/core/llapi/llapi.h +0 -102
  99. package/include/opencv2/core/mat.hpp +0 -3775
  100. package/include/opencv2/core/mat.inl.hpp +0 -3422
  101. package/include/opencv2/core/matx.hpp +0 -1536
  102. package/include/opencv2/core/neon_utils.hpp +0 -128
  103. package/include/opencv2/core/ocl.hpp +0 -917
  104. package/include/opencv2/core/ocl_genbase.hpp +0 -69
  105. package/include/opencv2/core/opencl/ocl_defs.hpp +0 -82
  106. package/include/opencv2/core/opencl/opencl_info.hpp +0 -212
  107. package/include/opencv2/core/opencl/opencl_svm.hpp +0 -81
  108. package/include/opencv2/core/opencl/runtime/autogenerated/opencl_clblas.hpp +0 -602
  109. package/include/opencv2/core/opencl/runtime/autogenerated/opencl_clfft.hpp +0 -146
  110. package/include/opencv2/core/opencl/runtime/autogenerated/opencl_core.hpp +0 -371
  111. package/include/opencv2/core/opencl/runtime/autogenerated/opencl_core_wrappers.hpp +0 -272
  112. package/include/opencv2/core/opencl/runtime/autogenerated/opencl_gl.hpp +0 -62
  113. package/include/opencv2/core/opencl/runtime/autogenerated/opencl_gl_wrappers.hpp +0 -42
  114. package/include/opencv2/core/opencl/runtime/opencl_clblas.hpp +0 -53
  115. package/include/opencv2/core/opencl/runtime/opencl_clfft.hpp +0 -53
  116. package/include/opencv2/core/opencl/runtime/opencl_core.hpp +0 -84
  117. package/include/opencv2/core/opencl/runtime/opencl_core_wrappers.hpp +0 -47
  118. package/include/opencv2/core/opencl/runtime/opencl_gl.hpp +0 -53
  119. package/include/opencv2/core/opencl/runtime/opencl_gl_wrappers.hpp +0 -47
  120. package/include/opencv2/core/opencl/runtime/opencl_svm_20.hpp +0 -48
  121. package/include/opencv2/core/opencl/runtime/opencl_svm_definitions.hpp +0 -42
  122. package/include/opencv2/core/opencl/runtime/opencl_svm_hsa_extension.hpp +0 -166
  123. package/include/opencv2/core/opengl.hpp +0 -733
  124. package/include/opencv2/core/openvx/ovx_defs.hpp +0 -48
  125. package/include/opencv2/core/operations.hpp +0 -610
  126. package/include/opencv2/core/optim.hpp +0 -302
  127. package/include/opencv2/core/ovx.hpp +0 -28
  128. package/include/opencv2/core/parallel/backend/parallel_for.openmp.hpp +0 -72
  129. package/include/opencv2/core/parallel/backend/parallel_for.tbb.hpp +0 -153
  130. package/include/opencv2/core/parallel/parallel_backend.hpp +0 -90
  131. package/include/opencv2/core/persistence.hpp +0 -1350
  132. package/include/opencv2/core/private/cv_cpu_include_simd_declarations.hpp +0 -30
  133. package/include/opencv2/core/private.cuda.hpp +0 -169
  134. package/include/opencv2/core/private.hpp +0 -896
  135. package/include/opencv2/core/quaternion.hpp +0 -1696
  136. package/include/opencv2/core/quaternion.inl.hpp +0 -1063
  137. package/include/opencv2/core/saturate.hpp +0 -180
  138. package/include/opencv2/core/simd_intrinsics.hpp +0 -87
  139. package/include/opencv2/core/softfloat.hpp +0 -514
  140. package/include/opencv2/core/sse_utils.hpp +0 -652
  141. package/include/opencv2/core/traits.hpp +0 -417
  142. package/include/opencv2/core/types.hpp +0 -2457
  143. package/include/opencv2/core/types_c.h +0 -2126
  144. package/include/opencv2/core/utility.hpp +0 -1229
  145. package/include/opencv2/core/utils/allocator_stats.hpp +0 -29
  146. package/include/opencv2/core/utils/allocator_stats.impl.hpp +0 -158
  147. package/include/opencv2/core/utils/buffer_area.private.hpp +0 -136
  148. package/include/opencv2/core/utils/configuration.private.hpp +0 -22
  149. package/include/opencv2/core/utils/filesystem.hpp +0 -82
  150. package/include/opencv2/core/utils/filesystem.private.hpp +0 -66
  151. package/include/opencv2/core/utils/fp_control.private.hpp +0 -29
  152. package/include/opencv2/core/utils/fp_control_utils.hpp +0 -69
  153. package/include/opencv2/core/utils/instrumentation.hpp +0 -125
  154. package/include/opencv2/core/utils/lock.private.hpp +0 -119
  155. package/include/opencv2/core/utils/logger.defines.hpp +0 -42
  156. package/include/opencv2/core/utils/logger.hpp +0 -218
  157. package/include/opencv2/core/utils/logtag.hpp +0 -28
  158. package/include/opencv2/core/utils/plugin_loader.private.hpp +0 -165
  159. package/include/opencv2/core/utils/tls.hpp +0 -235
  160. package/include/opencv2/core/utils/trace.hpp +0 -252
  161. package/include/opencv2/core/utils/trace.private.hpp +0 -421
  162. package/include/opencv2/core/va_intel.hpp +0 -75
  163. package/include/opencv2/core/version.hpp +0 -26
  164. package/include/opencv2/core/vsx_utils.hpp +0 -1047
  165. package/include/opencv2/core.hpp +0 -3365
  166. package/include/opencv2/imgcodecs/imgcodecs.hpp +0 -48
  167. package/include/opencv2/imgcodecs/imgcodecs_c.h +0 -1
  168. package/include/opencv2/imgcodecs/ios.h +0 -59
  169. package/include/opencv2/imgcodecs/legacy/constants_c.h +0 -54
  170. package/include/opencv2/imgcodecs/macosx.h +0 -20
  171. package/include/opencv2/imgcodecs.hpp +0 -407
  172. package/include/opencv2/imgproc/bindings.hpp +0 -34
  173. package/include/opencv2/imgproc/detail/gcgraph.hpp +0 -395
  174. package/include/opencv2/imgproc/hal/hal.hpp +0 -246
  175. package/include/opencv2/imgproc/hal/interface.h +0 -46
  176. package/include/opencv2/imgproc/imgproc.hpp +0 -48
  177. package/include/opencv2/imgproc/imgproc_c.h +0 -1177
  178. package/include/opencv2/imgproc/segmentation.hpp +0 -141
  179. package/include/opencv2/imgproc/types_c.h +0 -659
  180. package/include/opencv2/imgproc.hpp +0 -5035
  181. package/include/opencv2/opencv_modules.hpp +0 -17
  182. package/include/tesseract/baseapi.h +0 -820
  183. package/include/tesseract/capi.h +0 -485
  184. package/include/tesseract/export.h +0 -37
  185. package/include/tesseract/ltrresultiterator.h +0 -235
  186. package/include/tesseract/ocrclass.h +0 -158
  187. package/include/tesseract/osdetect.h +0 -139
  188. package/include/tesseract/pageiterator.h +0 -364
  189. package/include/tesseract/publictypes.h +0 -281
  190. package/include/tesseract/renderer.h +0 -334
  191. package/include/tesseract/resultiterator.h +0 -250
  192. package/include/tesseract/tesseract.h +0 -40
  193. package/include/tesseract/unichar.h +0 -174
  194. package/include/tesseract/version.h +0 -34
  195. package/include/tesseract/version.h.in +0 -34
  196. package/libs/libjpeg-turbo.lib +0 -0
  197. package/libs/libpng.lib +0 -0
  198. package/libs/opencv_core470.lib +0 -0
  199. package/libs/opencv_imgcodecs470.lib +0 -0
  200. package/libs/opencv_imgproc470.lib +0 -0
  201. package/libs/tesseract.lib +0 -0
  202. package/libs/zlib.lib +0 -0
  203. /package/dist/{keyCodes.js → keyCodes.cjs} +0 -0
  204. /package/dist/{keyCodes.d.ts → keyCodes.d.cts} +0 -0
@@ -1,29 +0,0 @@
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_CORE_ALLOCATOR_STATS_HPP
6
- #define OPENCV_CORE_ALLOCATOR_STATS_HPP
7
-
8
- #include "../cvdef.h"
9
-
10
- namespace cv { namespace utils {
11
-
12
- class AllocatorStatisticsInterface
13
- {
14
- protected:
15
- AllocatorStatisticsInterface() {}
16
- virtual ~AllocatorStatisticsInterface() {}
17
- public:
18
- virtual uint64_t getCurrentUsage() const = 0;
19
- virtual uint64_t getTotalUsage() const = 0;
20
- virtual uint64_t getNumberOfAllocations() const = 0;
21
- virtual uint64_t getPeakUsage() const = 0;
22
-
23
- /** set peak usage = current usage */
24
- virtual void resetPeakUsage() = 0;
25
- };
26
-
27
- }} // namespace
28
-
29
- #endif // OPENCV_CORE_ALLOCATOR_STATS_HPP
@@ -1,158 +0,0 @@
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_CORE_ALLOCATOR_STATS_IMPL_HPP
6
- #define OPENCV_CORE_ALLOCATOR_STATS_IMPL_HPP
7
-
8
- #include "./allocator_stats.hpp"
9
-
10
- //#define OPENCV_DISABLE_ALLOCATOR_STATS
11
-
12
- #ifdef CV_CXX11
13
-
14
- #include <atomic>
15
-
16
- #ifndef OPENCV_ALLOCATOR_STATS_COUNTER_TYPE
17
- #if defined(__GNUC__) && (\
18
- (defined(__SIZEOF_POINTER__) && __SIZEOF_POINTER__ == 4) || \
19
- (defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) && !defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8)) \
20
- )
21
- #define OPENCV_ALLOCATOR_STATS_COUNTER_TYPE int
22
- #endif
23
- #endif
24
-
25
- #ifndef OPENCV_ALLOCATOR_STATS_COUNTER_TYPE
26
- #define OPENCV_ALLOCATOR_STATS_COUNTER_TYPE long long
27
- #endif
28
-
29
- #else // CV_CXX11
30
-
31
- #ifndef OPENCV_ALLOCATOR_STATS_COUNTER_TYPE
32
- #define OPENCV_ALLOCATOR_STATS_COUNTER_TYPE int // CV_XADD supports int only
33
- #endif
34
-
35
- #endif // CV_CXX11
36
-
37
- namespace cv { namespace utils {
38
-
39
- #ifdef CV__ALLOCATOR_STATS_LOG
40
- namespace {
41
- #endif
42
-
43
- class AllocatorStatistics : public AllocatorStatisticsInterface
44
- {
45
- #ifdef OPENCV_DISABLE_ALLOCATOR_STATS
46
-
47
- public:
48
- AllocatorStatistics() {}
49
- ~AllocatorStatistics() CV_OVERRIDE {}
50
-
51
- uint64_t getCurrentUsage() const CV_OVERRIDE { return 0; }
52
- uint64_t getTotalUsage() const CV_OVERRIDE { return 0; }
53
- uint64_t getNumberOfAllocations() const CV_OVERRIDE { return 0; }
54
- uint64_t getPeakUsage() const CV_OVERRIDE { return 0; }
55
-
56
- /** set peak usage = current usage */
57
- void resetPeakUsage() CV_OVERRIDE {};
58
-
59
- void onAllocate(size_t /*sz*/) {}
60
- void onFree(size_t /*sz*/) {}
61
-
62
- #elif defined(CV_CXX11)
63
-
64
- protected:
65
- typedef OPENCV_ALLOCATOR_STATS_COUNTER_TYPE counter_t;
66
- std::atomic<counter_t> curr, total, total_allocs, peak;
67
- public:
68
- AllocatorStatistics() {}
69
- ~AllocatorStatistics() CV_OVERRIDE {}
70
-
71
- uint64_t getCurrentUsage() const CV_OVERRIDE { return (uint64_t)curr.load(); }
72
- uint64_t getTotalUsage() const CV_OVERRIDE { return (uint64_t)total.load(); }
73
- uint64_t getNumberOfAllocations() const CV_OVERRIDE { return (uint64_t)total_allocs.load(); }
74
- uint64_t getPeakUsage() const CV_OVERRIDE { return (uint64_t)peak.load(); }
75
-
76
- /** set peak usage = current usage */
77
- void resetPeakUsage() CV_OVERRIDE { peak.store(curr.load()); }
78
-
79
- // Controller interface
80
- void onAllocate(size_t sz)
81
- {
82
- #ifdef CV__ALLOCATOR_STATS_LOG
83
- CV__ALLOCATOR_STATS_LOG(cv::format("allocate: %lld (curr=%lld)", (long long int)sz, (long long int)curr.load()));
84
- #endif
85
-
86
- counter_t new_curr = curr.fetch_add((counter_t)sz) + (counter_t)sz;
87
-
88
- // peak = std::max((uint64_t)peak, new_curr);
89
- auto prev_peak = peak.load();
90
- while (prev_peak < new_curr)
91
- {
92
- if (peak.compare_exchange_weak(prev_peak, new_curr))
93
- break;
94
- }
95
- // end of peak = max(...)
96
-
97
- total += (counter_t)sz;
98
- total_allocs++;
99
- }
100
- void onFree(size_t sz)
101
- {
102
- #ifdef CV__ALLOCATOR_STATS_LOG
103
- CV__ALLOCATOR_STATS_LOG(cv::format("free: %lld (curr=%lld)", (long long int)sz, (long long int)curr.load()));
104
- #endif
105
- curr -= (counter_t)sz;
106
- }
107
-
108
- #else // non C++11
109
-
110
- protected:
111
- typedef OPENCV_ALLOCATOR_STATS_COUNTER_TYPE counter_t;
112
- volatile counter_t curr, total, total_allocs, peak; // overflow is possible, CV_XADD operates with 'int' only
113
- public:
114
- AllocatorStatistics()
115
- : curr(0), total(0), total_allocs(0), peak(0)
116
- {}
117
- ~AllocatorStatistics() CV_OVERRIDE {}
118
-
119
- uint64_t getCurrentUsage() const CV_OVERRIDE { return (uint64_t)curr; }
120
- uint64_t getTotalUsage() const CV_OVERRIDE { return (uint64_t)total; }
121
- uint64_t getNumberOfAllocations() const CV_OVERRIDE { return (uint64_t)total_allocs; }
122
- uint64_t getPeakUsage() const CV_OVERRIDE { return (uint64_t)peak; }
123
-
124
- void resetPeakUsage() CV_OVERRIDE { peak = curr; }
125
-
126
- // Controller interface
127
- void onAllocate(size_t sz)
128
- {
129
- #ifdef CV__ALLOCATOR_STATS_LOG
130
- CV__ALLOCATOR_STATS_LOG(cv::format("allocate: %lld (curr=%lld)", (long long int)sz, (long long int)curr));
131
- #endif
132
-
133
- counter_t new_curr = (counter_t)CV_XADD(&curr, (counter_t)sz) + (counter_t)sz;
134
-
135
- peak = std::max((counter_t)peak, new_curr); // non-thread safe
136
-
137
- //CV_XADD(&total, (uint64_t)sz); // overflow with int, non-reliable...
138
- total += sz;
139
-
140
- CV_XADD(&total_allocs, (counter_t)1);
141
- }
142
- void onFree(size_t sz)
143
- {
144
- #ifdef CV__ALLOCATOR_STATS_LOG
145
- CV__ALLOCATOR_STATS_LOG(cv::format("free: %lld (curr=%lld)", (long long int)sz, (long long int)curr));
146
- #endif
147
- CV_XADD(&curr, (counter_t)-sz);
148
- }
149
- #endif
150
- };
151
-
152
- #ifdef CV__ALLOCATOR_STATS_LOG
153
- } // namespace
154
- #endif
155
-
156
- }} // namespace
157
-
158
- #endif // OPENCV_CORE_ALLOCATOR_STATS_IMPL_HPP
@@ -1,136 +0,0 @@
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
- #ifndef OPENCV_UTILS_BUFFER_AREA_HPP
5
- #define OPENCV_UTILS_BUFFER_AREA_HPP
6
-
7
- #include <opencv2/core/base.hpp>
8
- #include <opencv2/core/private.hpp>
9
- #include <opencv2/core/utility.hpp>
10
- #include <vector>
11
-
12
- namespace cv { namespace utils {
13
-
14
- //! @addtogroup core_utils
15
- //! @{
16
-
17
- /** @brief Manages memory block shared by muliple buffers.
18
-
19
- This class allows to allocate one large memory block and split it into several smaller
20
- non-overlapping buffers. In safe mode each buffer allocation will be performed independently,
21
- this mode allows dynamic memory access instrumentation using valgrind or memory sanitizer.
22
-
23
- Safe mode can be explicitly switched ON in constructor. It will also be enabled when compiling with
24
- memory sanitizer support or in runtime with the environment variable `OPENCV_BUFFER_AREA_ALWAYS_SAFE`.
25
-
26
- Example of usage:
27
- @code
28
- int * buf1 = 0;
29
- double * buf2 = 0;
30
- cv::util::BufferArea area;
31
- area.allocate(buf1, 200); // buf1 = new int[200];
32
- area.allocate(buf2, 1000, 64); // buf2 = new double[1000]; - aligned by 64
33
- area.commit();
34
- @endcode
35
-
36
- @note This class is considered private and should be used only in OpenCV itself. API can be changed.
37
- */
38
- class CV_EXPORTS BufferArea
39
- {
40
- public:
41
- /** @brief Class constructor.
42
-
43
- @param safe Enable _safe_ operation mode, each allocation will be performed independently.
44
- */
45
- BufferArea(bool safe = false);
46
-
47
- /** @brief Class destructor
48
-
49
- All allocated memory well be freed. Each bound pointer will be reset to NULL.
50
- */
51
- ~BufferArea();
52
-
53
- /** @brief Bind a pointer to local area.
54
-
55
- BufferArea will store reference to the pointer and allocation parameters effectively owning the
56
- pointer and allocated memory. This operation has the same parameters and does the same job
57
- as the operator `new`, except allocation can be performed later during the BufferArea::commit call.
58
-
59
- @param ptr Reference to a pointer of type T. Must be NULL
60
- @param count Count of objects to be allocated, it has the same meaning as in the operator `new`.
61
- @param alignment Alignment of allocated memory. same meaning as in the operator `new` (C++17).
62
- Must be divisible by sizeof(T). Must be power of two.
63
-
64
- @note In safe mode allocation will be performed immediatly.
65
- */
66
- template <typename T>
67
- void allocate(T*&ptr, size_t count, ushort alignment = sizeof(T))
68
- {
69
- CV_Assert(ptr == NULL);
70
- CV_Assert(count > 0);
71
- CV_Assert(alignment > 0);
72
- CV_Assert(alignment % sizeof(T) == 0);
73
- CV_Assert((alignment & (alignment - 1)) == 0);
74
- allocate_((void**)(&ptr), static_cast<ushort>(sizeof(T)), count, alignment);
75
- #ifndef OPENCV_ENABLE_MEMORY_SANITIZER
76
- if (safe)
77
- #endif
78
- CV_Assert(ptr != NULL);
79
- }
80
-
81
- /** @brief Fill one of buffers with zeroes
82
-
83
- @param ptr pointer to memory block previously added using BufferArea::allocate
84
-
85
- BufferArea::commit must be called before using this method
86
- */
87
- template <typename T>
88
- void zeroFill(T*&ptr)
89
- {
90
- CV_Assert(ptr);
91
- zeroFill_((void**)&ptr);
92
- }
93
-
94
- /** @brief Fill all buffers with zeroes
95
-
96
- BufferArea::commit must be called before using this method
97
- */
98
- void zeroFill();
99
-
100
- /** @brief Allocate memory and initialize all bound pointers
101
-
102
- Each pointer bound to the area with the BufferArea::allocate will be initialized and will be set
103
- to point to a memory block with requested size and alignment.
104
-
105
- @note Does nothing in safe mode as all allocations will be performed by BufferArea::allocate
106
- */
107
- void commit();
108
-
109
- /** @brief Release all memory and unbind all pointers
110
-
111
- All memory will be freed and all pointers will be reset to NULL and untied from the area allowing
112
- to call `allocate` and `commit` again.
113
- */
114
- void release();
115
-
116
- private:
117
- BufferArea(const BufferArea &); // = delete
118
- BufferArea &operator=(const BufferArea &); // = delete
119
- void allocate_(void **ptr, ushort type_size, size_t count, ushort alignment);
120
- void zeroFill_(void **ptr);
121
-
122
- private:
123
- class Block;
124
- std::vector<Block> blocks;
125
- #ifndef OPENCV_ENABLE_MEMORY_SANITIZER
126
- void * oneBuf;
127
- size_t totalSize;
128
- const bool safe;
129
- #endif
130
- };
131
-
132
- //! @}
133
-
134
- }} // cv::utils::
135
-
136
- #endif
@@ -1,22 +0,0 @@
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_CONFIGURATION_PRIVATE_HPP
6
- #define OPENCV_CONFIGURATION_PRIVATE_HPP
7
-
8
- #include "opencv2/core/cvstd.hpp"
9
- #include <vector>
10
- #include <string>
11
-
12
- namespace cv { namespace utils {
13
-
14
- typedef std::vector<std::string> Paths;
15
- CV_EXPORTS bool getConfigurationParameterBool(const char* name, bool defaultValue);
16
- CV_EXPORTS size_t getConfigurationParameterSizeT(const char* name, size_t defaultValue);
17
- CV_EXPORTS cv::String getConfigurationParameterString(const char* name, const char* defaultValue);
18
- CV_EXPORTS Paths getConfigurationParameterPaths(const char* name, const Paths &defaultValue = Paths());
19
-
20
- }} // namespace
21
-
22
- #endif // OPENCV_CONFIGURATION_PRIVATE_HPP
@@ -1,82 +0,0 @@
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_UTILS_FILESYSTEM_HPP
6
- #define OPENCV_UTILS_FILESYSTEM_HPP
7
-
8
- namespace cv { namespace utils { namespace fs {
9
-
10
-
11
- CV_EXPORTS bool exists(const cv::String& path);
12
- CV_EXPORTS bool isDirectory(const cv::String& path);
13
-
14
- CV_EXPORTS void remove_all(const cv::String& path);
15
-
16
-
17
- CV_EXPORTS cv::String getcwd();
18
-
19
- /** @brief Converts path p to a canonical absolute path
20
- * Symlinks are processed if there is support for them on running platform.
21
- *
22
- * @param path input path. Target file/directory should exist.
23
- */
24
- CV_EXPORTS cv::String canonical(const cv::String& path);
25
-
26
- /** Join path components */
27
- CV_EXPORTS cv::String join(const cv::String& base, const cv::String& path);
28
-
29
- /** Get parent directory */
30
- CV_EXPORTS cv::String getParent(const cv::String &path);
31
- CV_EXPORTS std::wstring getParent(const std::wstring& path);
32
-
33
- /**
34
- * Generate a list of all files that match the globbing pattern.
35
- *
36
- * Result entries are prefixed by base directory path.
37
- *
38
- * @param directory base directory
39
- * @param pattern filter pattern (based on '*'/'?' symbols). Use empty string to disable filtering and return all results
40
- * @param[out] result result of globing.
41
- * @param recursive scan nested directories too
42
- * @param includeDirectories include directories into results list
43
- */
44
- CV_EXPORTS void glob(const cv::String& directory, const cv::String& pattern,
45
- CV_OUT std::vector<cv::String>& result,
46
- bool recursive = false, bool includeDirectories = false);
47
-
48
- /**
49
- * Generate a list of all files that match the globbing pattern.
50
- *
51
- * @param directory base directory
52
- * @param pattern filter pattern (based on '*'/'?' symbols). Use empty string to disable filtering and return all results
53
- * @param[out] result globbing result with relative paths from base directory
54
- * @param recursive scan nested directories too
55
- * @param includeDirectories include directories into results list
56
- */
57
- CV_EXPORTS void glob_relative(const cv::String& directory, const cv::String& pattern,
58
- CV_OUT std::vector<cv::String>& result,
59
- bool recursive = false, bool includeDirectories = false);
60
-
61
-
62
- CV_EXPORTS bool createDirectory(const cv::String& path);
63
- CV_EXPORTS bool createDirectories(const cv::String& path);
64
-
65
- #if defined(__OPENCV_BUILD) || defined(BUILD_PLUGIN)
66
- // TODO
67
- //CV_EXPORTS cv::String getTempDirectory();
68
-
69
- /**
70
- * @brief Returns directory to store OpenCV cache files
71
- * Create sub-directory in common OpenCV cache directory if it doesn't exist.
72
- * @param sub_directory_name name of sub-directory. NULL or "" value asks to return root cache directory.
73
- * @param configuration_name optional name of configuration parameter name which overrides default behavior.
74
- * @return Path to cache directory. Returns empty string if cache directories support is not available. Returns "disabled" if cache disabled by user.
75
- */
76
- CV_EXPORTS cv::String getCacheDirectory(const char* sub_directory_name, const char* configuration_name = NULL);
77
-
78
- #endif
79
-
80
- }}} // namespace
81
-
82
- #endif // OPENCV_UTILS_FILESYSTEM_HPP
@@ -1,66 +0,0 @@
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_UTILS_FILESYSTEM_PRIVATE_HPP
6
- #define OPENCV_UTILS_FILESYSTEM_PRIVATE_HPP
7
-
8
- // TODO Move to CMake?
9
- #ifndef OPENCV_HAVE_FILESYSTEM_SUPPORT
10
- # if defined(__EMSCRIPTEN__) || defined(__native_client__)
11
- /* no support */
12
- # elif defined WINRT || defined _WIN32_WCE
13
- /* not supported */
14
- # elif defined __ANDROID__ || defined __linux__ || defined _WIN32 || \
15
- defined __FreeBSD__ || defined __bsdi__ || defined __HAIKU__
16
- # define OPENCV_HAVE_FILESYSTEM_SUPPORT 1
17
- # elif defined(__APPLE__)
18
- # include <TargetConditionals.h>
19
- # if (defined(TARGET_OS_OSX) && TARGET_OS_OSX) || (defined(TARGET_OS_IOS) && TARGET_OS_IOS)
20
- # define OPENCV_HAVE_FILESYSTEM_SUPPORT 1 // OSX, iOS only
21
- # endif
22
- # else
23
- /* unknown */
24
- # endif
25
- # ifndef OPENCV_HAVE_FILESYSTEM_SUPPORT
26
- # define OPENCV_HAVE_FILESYSTEM_SUPPORT 0
27
- # endif
28
- #endif
29
-
30
- #if OPENCV_HAVE_FILESYSTEM_SUPPORT
31
- namespace cv { namespace utils { namespace fs {
32
-
33
- /**
34
- * File-based lock object.
35
- *
36
- * Provides interprocess synchronization mechanism.
37
- * Platform dependent.
38
- *
39
- * Supports multiple readers / single writer access pattern (RW / readers-writer / shared-exclusive lock).
40
- *
41
- * File must exist.
42
- * File can't be re-used (for example, I/O operations via std::fstream is not safe)
43
- */
44
- class CV_EXPORTS FileLock {
45
- public:
46
- explicit FileLock(const char* fname);
47
- ~FileLock();
48
-
49
- void lock(); //< acquire exclusive (writer) lock
50
- void unlock(); //< release exclusive (writer) lock
51
-
52
- void lock_shared(); //< acquire shareable (reader) lock
53
- void unlock_shared(); //< release shareable (reader) lock
54
-
55
- struct Impl;
56
- protected:
57
- Impl* pImpl;
58
-
59
- private:
60
- FileLock(const FileLock&); // disabled
61
- FileLock& operator=(const FileLock&); // disabled
62
- };
63
-
64
- }}} // namespace
65
- #endif
66
- #endif // OPENCV_UTILS_FILESYSTEM_PRIVATE_HPP
@@ -1,29 +0,0 @@
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_CORE_FP_CONTROL_UTILS_PRIVATE_HPP
6
- #define OPENCV_CORE_FP_CONTROL_UTILS_PRIVATE_HPP
7
-
8
- #include "fp_control_utils.hpp"
9
-
10
- #if OPENCV_SUPPORTS_FP_DENORMALS_HINT == 0
11
- // disabled
12
- #elif defined(OPENCV_IMPL_FP_HINTS)
13
- // custom
14
- #elif defined(OPENCV_IMPL_FP_HINTS_X86)
15
- // custom
16
- #elif defined(__SSE__) || defined(__SSE2__) || defined(_M_X64) || (defined(_M_IX86_FP) && _M_IX86_FP >= 1)
17
- #include <xmmintrin.h>
18
- #define OPENCV_IMPL_FP_HINTS_X86 1
19
- #define OPENCV_IMPL_FP_HINTS 1
20
- #endif
21
-
22
- #ifndef OPENCV_IMPL_FP_HINTS
23
- #define OPENCV_IMPL_FP_HINTS 0
24
- #endif
25
- #ifndef OPENCV_IMPL_FP_HINTS_X86
26
- #define OPENCV_IMPL_FP_HINTS_X86 0
27
- #endif
28
-
29
- #endif // OPENCV_CORE_FP_CONTROL_UTILS_PRIVATE_HPP
@@ -1,69 +0,0 @@
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_CORE_FP_CONTROL_UTILS_HPP
6
- #define OPENCV_CORE_FP_CONTROL_UTILS_HPP
7
-
8
- namespace cv {
9
-
10
- namespace details {
11
-
12
- struct FPDenormalsModeState
13
- {
14
- uint32_t reserved[16]; // 64-bytes
15
- }; // FPDenormalsModeState
16
-
17
- CV_EXPORTS void setFPDenormalsIgnoreHint(bool ignore, CV_OUT FPDenormalsModeState& state);
18
- CV_EXPORTS int saveFPDenormalsState(CV_OUT FPDenormalsModeState& state);
19
- CV_EXPORTS bool restoreFPDenormalsState(const FPDenormalsModeState& state);
20
-
21
- class FPDenormalsIgnoreHintScope
22
- {
23
- public:
24
- inline explicit FPDenormalsIgnoreHintScope(bool ignore = true)
25
- {
26
- details::setFPDenormalsIgnoreHint(ignore, saved_state);
27
- }
28
-
29
- inline explicit FPDenormalsIgnoreHintScope(const FPDenormalsModeState& state)
30
- {
31
- details::saveFPDenormalsState(saved_state);
32
- details::restoreFPDenormalsState(state);
33
- }
34
-
35
- inline ~FPDenormalsIgnoreHintScope()
36
- {
37
- details::restoreFPDenormalsState(saved_state);
38
- }
39
-
40
- protected:
41
- FPDenormalsModeState saved_state;
42
- }; // FPDenormalsIgnoreHintScope
43
-
44
- class FPDenormalsIgnoreHintScopeNOOP
45
- {
46
- public:
47
- inline FPDenormalsIgnoreHintScopeNOOP(bool ignore = true) { CV_UNUSED(ignore); }
48
- inline FPDenormalsIgnoreHintScopeNOOP(const FPDenormalsModeState& state) { CV_UNUSED(state); }
49
- inline ~FPDenormalsIgnoreHintScopeNOOP() { }
50
- }; // FPDenormalsIgnoreHintScopeNOOP
51
-
52
- } // namespace details
53
-
54
-
55
- // Should depend on target compilation architecture only
56
- // Note: previously added archs should NOT be removed to preserve ABI compatibility
57
- #if defined(OPENCV_SUPPORTS_FP_DENORMALS_HINT)
58
- // preserve configuration overloading through ports
59
- #elif defined(__i386__) || defined(__x86_64__) || defined(_M_X64) || defined(_X86_)
60
- typedef details::FPDenormalsIgnoreHintScope FPDenormalsIgnoreHintScope;
61
- #define OPENCV_SUPPORTS_FP_DENORMALS_HINT 1
62
- #else
63
- #define OPENCV_SUPPORTS_FP_DENORMALS_HINT 0
64
- typedef details::FPDenormalsIgnoreHintScopeNOOP FPDenormalsIgnoreHintScope;
65
- #endif
66
-
67
- } // namespace cv
68
-
69
- #endif // OPENCV_CORE_FP_CONTROL_UTILS_HPP