summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bx/src/sort.cpp
diff options
context:
space:
mode:
author R. Belmont <rb6502@users.noreply.github.com>2023-01-04 23:29:18 -0500
committer GitHub <noreply@github.com>2023-01-04 23:29:18 -0500
commit94b1e168b2b97b48b81f7a8f64406b0a6f64184e (patch)
treef57362a0fa01bfe8f0ad75a447c4c9e10bc15756 /3rdparty/bx/src/sort.cpp
parent5581eaa50a42256242f32569f59ce10d70ddd8c2 (diff)
Revert "Update BGFX, BX and BIMG (#10750)" (#10787)
This reverts commit 5581eaa50a42256242f32569f59ce10d70ddd8c2 due to link failure on macOS.
Diffstat (limited to '3rdparty/bx/src/sort.cpp')
-rw-r--r--3rdparty/bx/src/sort.cpp124
1 files changed, 3 insertions, 121 deletions
diff --git a/3rdparty/bx/src/sort.cpp b/3rdparty/bx/src/sort.cpp
index 31ad8c795f4..ce1b3e3a8a4 100644
--- a/3rdparty/bx/src/sort.cpp
+++ b/3rdparty/bx/src/sort.cpp
@@ -1,8 +1,9 @@
/*
- * Copyright 2010-2022 Branimir Karadzic. All rights reserved.
- * License: https://github.com/bkaradzic/bx/blob/master/LICENSE
+ * Copyright 2010-2021 Branimir Karadzic. All rights reserved.
+ * License: https://github.com/bkaradzic/bx#license-bsd-2-clause
*/
+#include "bx_p.h"
#include <bx/sort.h>
namespace bx
@@ -51,124 +52,5 @@ namespace bx
quickSortR(pivot, _data, _num, _stride, _fn);
}
- bool isSorted(const void* _data, uint32_t _num, uint32_t _stride, const ComparisonFn _fn)
- {
- const uint8_t* data = (uint8_t*)_data;
-
- for (uint32_t ii = 1; ii < _num; ++ii)
- {
- int32_t result = _fn(&data[(ii-1)*_stride], &data[ii*_stride]);
-
- if (0 < result)
- {
- return false;
- }
- }
-
- return true;
- }
-
- uint32_t unique(void* _data, uint32_t _num, uint32_t _stride, const ComparisonFn _fn)
- {
- if (0 == _num)
- {
- return 0;
- }
-
- uint8_t* data = (uint8_t*)_data;
-
- uint32_t last = 0;
-
- for (uint32_t ii = 1; ii < _num; ++ii)
- {
- int32_t result = _fn(&data[last*_stride], &data[ii*_stride]);
- BX_ASSERT(0 >= result, "Performing unique on non-sorted array (ii %d, last %d)!", ii, last);
-
- if (0 > result)
- {
- last++;
- swap(&data[last*_stride], &data[ii*_stride], _stride);
- }
- }
-
- return last+1;
- }
-
- uint32_t lowerBound(const void* _key, const void* _data, uint32_t _num, uint32_t _stride, const ComparisonFn _fn)
- {
- uint32_t offset = 0;
- const uint8_t* data = (uint8_t*)_data;
-
- for (uint32_t ll = _num; offset < ll;)
- {
- const uint32_t idx = (offset + ll) / 2;
-
- int32_t result = _fn(_key, &data[idx * _stride]);
-
- if (result <= 0)
- {
- ll = idx;
- }
- else
- {
- offset = idx + 1;
- }
- }
-
- return offset;
- }
-
- uint32_t upperBound(const void* _key, const void* _data, uint32_t _num, uint32_t _stride, const ComparisonFn _fn)
- {
- uint32_t offset = 0;
- const uint8_t* data = (uint8_t*)_data;
-
- for (uint32_t ll = _num; offset < ll;)
- {
- const uint32_t idx = (offset + ll) / 2;
-
- int32_t result = _fn(_key, &data[idx * _stride]);
-
- if (result < 0)
- {
- ll = idx;
- }
- else
- {
- offset = idx + 1;
- }
- }
-
- return offset;
- }
-
- int32_t binarySearch(const void* _key, const void* _data, uint32_t _num, uint32_t _stride, const ComparisonFn _fn)
- {
- uint32_t offset = 0;
- const uint8_t* data = (uint8_t*)_data;
-
- for (uint32_t ll = _num; offset < ll;)
- {
- const uint32_t idx = (offset + ll) / 2;
-
- int32_t result = _fn(_key, &data[idx * _stride]);
-
- if (result < 0)
- {
- ll = idx;
- }
- else if (result > 0)
- {
- offset = idx + 1;
- }
- else
- {
- return idx;
- }
- }
-
- return ~offset;
- }
-
} // namespace bx