Skip to content

Commit abb4db7

Browse files
committed
Change order of parameters to common parameters first. Use dummy variable as temporary safety measure.
1 parent 809f8ca commit abb4db7

16 files changed

+168
-109
lines changed

SerialPrograms/Source/CommonTools/Images/ImageFilter.cpp

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ ImageRGB32 filter_rgb32_range(
2323
ImageRGB32 ret(image.width(), image.height());
2424
Kernels::filter_rgb32_range(
2525
image.data(), image.bytes_per_row(), image.width(), image.height(),
26-
ret.data(), ret.bytes_per_row(), mins, maxs, (uint32_t)replace_with, replace_color_within_range
26+
ret.data(), ret.bytes_per_row(),
27+
(uint32_t)replace_with, replace_color_within_range,
28+
mins, maxs, nullptr
2729
);
2830
return ret;
2931
}
@@ -35,7 +37,9 @@ ImageRGB32 filter_rgb32_range(
3537
ImageRGB32 ret(image.width(), image.height());
3638
pixels_in_range = Kernels::filter_rgb32_range(
3739
image.data(), image.bytes_per_row(), image.width(), image.height(),
38-
ret.data(), ret.bytes_per_row(), mins, maxs, (uint32_t)replace_with, replace_color_within_range
40+
ret.data(), ret.bytes_per_row(),
41+
(uint32_t)replace_with, replace_color_within_range,
42+
mins, maxs, nullptr
3943
);
4044
return ret;
4145
}
@@ -50,7 +54,8 @@ std::vector<std::pair<ImageRGB32, size_t>> filter_rgb32_range(
5054
out = ImageRGB32(image.width(), image.height());
5155
subfilters.emplace_back(
5256
out.data(), out.bytes_per_row(),
53-
filters[c].mins, filters[c].maxs, (uint32_t)filters[c].replacement_color, filters[c].replace_color_within_range
57+
(uint32_t)filters[c].replacement_color, filters[c].replace_color_within_range,
58+
filters[c].mins, filters[c].maxs, nullptr
5459
);
5560
}
5661
Kernels::filter_rgb32_range(
@@ -75,7 +80,9 @@ ImageRGB32 filter_rgb32_euclidean(
7580
ImageRGB32 ret(image.width(), image.height());
7681
Kernels::filter_rgb32_euclidean(
7782
image.data(), image.bytes_per_row(), image.width(), image.height(),
78-
ret.data(), ret.bytes_per_row(), expected, max_euclidean_distance, (uint32_t)replace_with, replace_color_within_range
83+
ret.data(), ret.bytes_per_row(),
84+
(uint32_t)replace_with, replace_color_within_range,
85+
expected, max_euclidean_distance, nullptr
7986
);
8087
return ret;
8188
}
@@ -88,7 +95,9 @@ ImageRGB32 filter_rgb32_euclidean(
8895
ImageRGB32 ret(image.width(), image.height());
8996
pixels_in_range = Kernels::filter_rgb32_euclidean(
9097
image.data(), image.bytes_per_row(), image.width(), image.height(),
91-
ret.data(), ret.bytes_per_row(), expected, max_euclidean_distance, (uint32_t)replace_with, replace_color_within_range
98+
ret.data(), ret.bytes_per_row(),
99+
(uint32_t)replace_with, replace_color_within_range,
100+
expected, max_euclidean_distance, nullptr
92101
);
93102
return ret;
94103
}

SerialPrograms/Source/Kernels/ImageFilters/RGB32_EuclideanDistance/Kernels_ImageFilter_RGB32_Euclidean.cpp

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -15,38 +15,38 @@ namespace Kernels{
1515
size_t filter_rgb32_euclidean_Default(
1616
const uint32_t* in, size_t in_bytes_per_row, size_t width, size_t height,
1717
uint32_t* out, size_t out_bytes_per_row,
18-
uint32_t expected, double max_euclidean_distance,
19-
uint32_t replacement, bool replace_color_within_range
18+
uint32_t replacement, bool replace_color_within_range,
19+
uint32_t expected, double max_euclidean_distance, void*
2020
);
2121
size_t filter_rgb32_euclidean_x64_SSE42(
2222
const uint32_t* in, size_t in_bytes_per_row, size_t width, size_t height,
2323
uint32_t* out, size_t out_bytes_per_row,
24-
uint32_t expected, double max_euclidean_distance,
25-
uint32_t replacement, bool replace_color_within_range
24+
uint32_t replacement, bool replace_color_within_range,
25+
uint32_t expected, double max_euclidean_distance, void*
2626
);
2727
size_t filter_rgb32_euclidean_x64_AVX2(
2828
const uint32_t* in, size_t in_bytes_per_row, size_t width, size_t height,
2929
uint32_t* out, size_t out_bytes_per_row,
30-
uint32_t expected, double max_euclidean_distance,
31-
uint32_t replacement, bool replace_color_within_range
30+
uint32_t replacement, bool replace_color_within_range,
31+
uint32_t expected, double max_euclidean_distance, void*
3232
);
3333
size_t filter_rgb32_euclidean_x64_AVX512(
3434
const uint32_t* in, size_t in_bytes_per_row, size_t width, size_t height,
3535
uint32_t* out, size_t out_bytes_per_row,
36-
uint32_t expected, double max_euclidean_distance,
37-
uint32_t replacement, bool replace_color_within_range
36+
uint32_t replacement, bool replace_color_within_range,
37+
uint32_t expected, double max_euclidean_distance, void*
3838
);
3939
size_t filter_rgb32_euclidean_arm64_NEON(
4040
const uint32_t* in, size_t in_bytes_per_row, size_t width, size_t height,
4141
uint32_t* out, size_t out_bytes_per_row,
42-
uint32_t expected, double max_euclidean_distance,
43-
uint32_t replacement, bool replace_color_within_range
42+
uint32_t replacement, bool replace_color_within_range,
43+
uint32_t expected, double max_euclidean_distance, void*
4444
);
4545
size_t filter_rgb32_euclidean(
4646
const uint32_t* in, size_t in_bytes_per_row, size_t width, size_t height,
4747
uint32_t* out, size_t out_bytes_per_row,
48-
uint32_t expected, double max_euclidean_distance,
49-
uint32_t replacement, bool replace_color_within_range
48+
uint32_t replacement, bool replace_color_within_range,
49+
uint32_t expected, double max_euclidean_distance, void*
5050
){
5151
if (width * height > 0xffffffff){
5252
throw InternalProgramError(nullptr, PA_CURRENT_FUNCTION, "Image is too large. more than 2^32 pixels.");
@@ -56,8 +56,8 @@ size_t filter_rgb32_euclidean(
5656
return filter_rgb32_euclidean_x64_AVX512(
5757
in, in_bytes_per_row, width, height,
5858
out, out_bytes_per_row,
59-
expected, max_euclidean_distance,
60-
replacement, replace_color_within_range
59+
replacement, replace_color_within_range,
60+
expected, max_euclidean_distance, nullptr
6161
);
6262
}
6363
#endif
@@ -66,8 +66,8 @@ size_t filter_rgb32_euclidean(
6666
return filter_rgb32_euclidean_x64_AVX2(
6767
in, in_bytes_per_row, width, height,
6868
out, out_bytes_per_row,
69-
expected, max_euclidean_distance,
70-
replacement, replace_color_within_range
69+
replacement, replace_color_within_range,
70+
expected, max_euclidean_distance, nullptr
7171
);
7272
}
7373
#endif
@@ -76,8 +76,8 @@ size_t filter_rgb32_euclidean(
7676
return filter_rgb32_euclidean_x64_SSE42(
7777
in, in_bytes_per_row, width, height,
7878
out, out_bytes_per_row,
79-
expected, max_euclidean_distance,
80-
replacement, replace_color_within_range
79+
replacement, replace_color_within_range,
80+
expected, max_euclidean_distance, nullptr
8181
);
8282
}
8383
#endif
@@ -86,16 +86,16 @@ size_t filter_rgb32_euclidean(
8686
return filter_rgb32_euclidean_arm64_NEON(
8787
in, in_bytes_per_row, width, height,
8888
out, out_bytes_per_row,
89-
expected, max_euclidean_distance,
90-
replacement, replace_color_within_range
89+
replacement, replace_color_within_range,
90+
expected, max_euclidean_distance, nullptr
9191
);
9292
}
9393
#endif
9494
return filter_rgb32_euclidean_Default(
9595
in, in_bytes_per_row, width, height,
9696
out, out_bytes_per_row,
97-
expected, max_euclidean_distance,
98-
replacement, replace_color_within_range
97+
replacement, replace_color_within_range,
98+
expected, max_euclidean_distance, nullptr
9999
);
100100
}
101101

SerialPrograms/Source/Kernels/ImageFilters/RGB32_EuclideanDistance/Kernels_ImageFilter_RGB32_Euclidean.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ namespace Kernels{
2020
size_t filter_rgb32_euclidean(
2121
const uint32_t* in, size_t in_bytes_per_row, size_t width, size_t height,
2222
uint32_t* out, size_t out_bytes_per_row,
23-
uint32_t expected, double max_euclidean_distance,
24-
uint32_t replacement, bool replace_color_within_range
23+
uint32_t replacement, bool replace_color_within_range,
24+
uint32_t expected, double max_euclidean_distance, void*
2525
);
2626

2727

SerialPrograms/Source/Kernels/ImageFilters/RGB32_EuclideanDistance/Kernels_ImageFilter_RGB32_Euclidean_ARM64_NEON.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ class ImageFilter_RgbEuclidean_arm64_NEON{
2222

2323
public:
2424
ImageFilter_RgbEuclidean_arm64_NEON(
25-
uint32_t expected_color, double max_euclidean_distance,
26-
uint32_t replacement_color, bool replace_color_within_range
25+
uint32_t replacement_color, bool replace_color_within_range,
26+
uint32_t expected_color, double max_euclidean_distance
2727
)
2828
: m_expected_color_rgb_u8(vreinterpretq_u8_u32(vdupq_n_u32(expected_color & 0x00ffffff)))
2929
, m_distance_squared_u32(vdupq_n_u32((uint32_t)(max_euclidean_distance * max_euclidean_distance)))
@@ -92,10 +92,13 @@ class ImageFilter_RgbEuclidean_arm64_NEON{
9292
size_t filter_rgb32_euclidean_arm64_NEON(
9393
const uint32_t* in, size_t in_bytes_per_row, size_t width, size_t height,
9494
uint32_t* out, size_t out_bytes_per_row,
95-
uint32_t expected, double max_euclidean_distance,
96-
uint32_t replacement_color, bool replace_color_within_range
95+
uint32_t replacement, bool replace_color_within_range,
96+
uint32_t expected, double max_euclidean_distance, void*
9797
){
98-
ImageFilter_RgbEuclidean_arm64_NEON filter(expected, max_euclidean_distance, replacement_color, replace_color_within_range);
98+
ImageFilter_RgbEuclidean_arm64_NEON filter(
99+
replacement, replace_color_within_range,
100+
expected, max_euclidean_distance
101+
);
99102
filter_per_pixel(in, in_bytes_per_row, width, height, filter, out, out_bytes_per_row);
100103
return filter.count();
101104
}

SerialPrograms/Source/Kernels/ImageFilters/RGB32_EuclideanDistance/Kernels_ImageFilter_RGB32_Euclidean_Default.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ class ImageFilter_RgbEuclidean_Default{
2020

2121
public:
2222
ImageFilter_RgbEuclidean_Default(
23-
uint32_t expected_color, double max_euclidean_distance,
24-
uint32_t replacement_color, bool replace_color_within_range
23+
uint32_t replacement_color, bool replace_color_within_range,
24+
uint32_t expected_color, double max_euclidean_distance
2525
)
2626
: m_replacement_color(replacement_color)
2727
, m_replace_color_within_range(replace_color_within_range ? 1 : 0)
@@ -75,10 +75,13 @@ class ImageFilter_RgbEuclidean_Default{
7575
size_t filter_rgb32_euclidean_Default(
7676
const uint32_t* in, size_t in_bytes_per_row, size_t width, size_t height,
7777
uint32_t* out, size_t out_bytes_per_row,
78-
uint32_t expected_color, double max_euclidean_distance,
79-
uint32_t replacement_color, bool replace_color_within_range
78+
uint32_t replacement, bool replace_color_within_range,
79+
uint32_t expected, double max_euclidean_distance, void*
8080
){
81-
ImageFilter_RgbEuclidean_Default filter(expected_color, max_euclidean_distance, replacement_color, replace_color_within_range);
81+
ImageFilter_RgbEuclidean_Default filter(
82+
replacement, replace_color_within_range,
83+
expected, max_euclidean_distance
84+
);
8285
filter_per_pixel(in, in_bytes_per_row, width, height, filter, out, out_bytes_per_row);
8386
return filter.count();
8487
}

SerialPrograms/Source/Kernels/ImageFilters/RGB32_EuclideanDistance/Kernels_ImageFilter_RGB32_Euclidean_x64_AVX2.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ class ImageFilter_RgbEuclidean_x64_AVX2{
2323

2424
public:
2525
ImageFilter_RgbEuclidean_x64_AVX2(
26-
uint32_t expected, double max_euclidean_distance,
27-
uint32_t replacement, bool replace_color_within_range
26+
uint32_t replacement, bool replace_color_within_range,
27+
uint32_t expected, double max_euclidean_distance
2828
)
2929
: m_replacement(_mm256_set1_epi32(replacement))
3030
, m_invert(replace_color_within_range ? _mm256_set1_epi32(-1) : _mm256_setzero_si256())
@@ -83,10 +83,13 @@ class ImageFilter_RgbEuclidean_x64_AVX2{
8383
size_t filter_rgb32_euclidean_x64_AVX2(
8484
const uint32_t* in, size_t in_bytes_per_row, size_t width, size_t height,
8585
uint32_t* out, size_t out_bytes_per_row,
86-
uint32_t expected, double max_euclidean_distance,
87-
uint32_t replacement, bool replace_color_within_range
86+
uint32_t replacement, bool replace_color_within_range,
87+
uint32_t expected, double max_euclidean_distance, void*
8888
){
89-
ImageFilter_RgbEuclidean_x64_AVX2 filter(expected, max_euclidean_distance, replacement, replace_color_within_range);
89+
ImageFilter_RgbEuclidean_x64_AVX2 filter(
90+
replacement, replace_color_within_range,
91+
expected, max_euclidean_distance
92+
);
9093
filter_per_pixel(in, in_bytes_per_row, width, height, filter, out, out_bytes_per_row);
9194
return filter.count();
9295
}

SerialPrograms/Source/Kernels/ImageFilters/RGB32_EuclideanDistance/Kernels_ImageFilter_RGB32_Euclidean_x64_AVX512.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ class ImageFilterRunner_Rgb32Euclidean_x64_AVX512{
3535

3636
public:
3737
ImageFilterRunner_Rgb32Euclidean_x64_AVX512(
38-
uint32_t expected, double max_euclidean_distance,
39-
uint32_t replacement, bool replace_color_within_range
38+
uint32_t replacement, bool replace_color_within_range,
39+
uint32_t expected, double max_euclidean_distance
4040
)
4141
: m_replacement(_mm512_set1_epi32(replacement))
4242
, m_invert(replace_color_within_range ? 0xffff : 0)
@@ -95,10 +95,13 @@ class ImageFilterRunner_Rgb32Euclidean_x64_AVX512{
9595
size_t filter_rgb32_euclidean_x64_AVX512(
9696
const uint32_t* in, size_t in_bytes_per_row, size_t width, size_t height,
9797
uint32_t* out, size_t out_bytes_per_row,
98-
uint32_t expected, double max_euclidean_distance,
99-
uint32_t replacement, bool replace_color_within_range
98+
uint32_t replacement, bool replace_color_within_range,
99+
uint32_t expected, double max_euclidean_distance, void*
100100
){
101-
ImageFilterRunner_Rgb32Euclidean_x64_AVX512 filter(expected, max_euclidean_distance, replacement, replace_color_within_range);
101+
ImageFilterRunner_Rgb32Euclidean_x64_AVX512 filter(
102+
replacement, replace_color_within_range,
103+
expected, max_euclidean_distance
104+
);
102105
filter_per_pixel(in, in_bytes_per_row, width, height, filter, out, out_bytes_per_row);
103106
return filter.count();
104107
}

SerialPrograms/Source/Kernels/ImageFilters/RGB32_EuclideanDistance/Kernels_ImageFilter_RGB32_Euclidean_x64_SSE42.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ class ImageFilter_RgbEuclidean_x64_SSE42{
4141

4242
public:
4343
ImageFilter_RgbEuclidean_x64_SSE42(
44-
uint32_t expected, double max_euclidean_distance,
45-
uint32_t replacement, bool replace_color_within_range
44+
uint32_t replacement, bool replace_color_within_range,
45+
uint32_t expected, double max_euclidean_distance
4646
)
4747
: m_replacement(_mm_set1_epi32(replacement))
4848
, m_invert(replace_color_within_range ? _mm_set1_epi32(-1) : _mm_setzero_si128())
@@ -115,10 +115,13 @@ class ImageFilter_RgbEuclidean_x64_SSE42{
115115
size_t filter_rgb32_euclidean_x64_SSE42(
116116
const uint32_t* in, size_t in_bytes_per_row, size_t width, size_t height,
117117
uint32_t* out, size_t out_bytes_per_row,
118-
uint32_t expected, double max_euclidean_distance,
119-
uint32_t replacement, bool replace_color_within_range
118+
uint32_t replacement, bool replace_color_within_range,
119+
uint32_t expected, double max_euclidean_distance, void*
120120
){
121-
ImageFilter_RgbEuclidean_x64_SSE42 filter(expected, max_euclidean_distance, replacement, replace_color_within_range);
121+
ImageFilter_RgbEuclidean_x64_SSE42 filter(
122+
replacement, replace_color_within_range,
123+
expected, max_euclidean_distance
124+
);
122125
filter_per_pixel(in, in_bytes_per_row, width, height, filter, out, out_bytes_per_row);
123126
return filter.count();
124127
}

0 commit comments

Comments
 (0)