Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2018-05-07 18:54:10 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-05-07 18:54:10 +0300
commitf62b826533422e5de3b08601e5511c233deda529 (patch)
treec9d57326dfe030ba9c39060c0bdf1d3933e4c81b /source/blender/blenlib
parentb0b2a478539500b112a0f4b002a9d3d2123be0d0 (diff)
parent905eeb0bc7f46efb95cb5450cc6c2ec27f02730c (diff)
Merge branch 'master' into blender2.8
Diffstat (limited to 'source/blender/blenlib')
-rw-r--r--source/blender/blenlib/BLI_utildefines.h23
-rw-r--r--source/blender/blenlib/intern/math_base_inline.c32
2 files changed, 32 insertions, 23 deletions
diff --git a/source/blender/blenlib/BLI_utildefines.h b/source/blender/blenlib/BLI_utildefines.h
index 46b3748c7ce..65dcbf04913 100644
--- a/source/blender/blenlib/BLI_utildefines.h
+++ b/source/blender/blenlib/BLI_utildefines.h
@@ -224,29 +224,6 @@ extern "C" {
b = tmp; \
} (void)0
-
-#define FTOCHAR(val) ((CHECK_TYPE_INLINE(val, float)), \
- (char)(((val) <= 0.0f) ? 0 : (((val) > (1.0f - 0.5f / 255.0f)) ? 255 : ((255.0f * (val)) + 0.5f))))
-#define FTOUSHORT(val) ((CHECK_TYPE_INLINE(val, float)), \
- (unsigned short)((val >= 1.0f - 0.5f / 65535) ? 65535 : (val <= 0.0f) ? 0 : (val * 65535.0f + 0.5f)))
-#define USHORTTOUCHAR(val) ((unsigned char)(((val) >= 65535 - 128) ? 255 : ((val) + 128) >> 8))
-#define F3TOCHAR3(v2, v1) { \
- (v1)[0] = FTOCHAR((v2[0])); \
- (v1)[1] = FTOCHAR((v2[1])); \
- (v1)[2] = FTOCHAR((v2[2])); \
-} (void)0
-#define F3TOCHAR4(v2, v1) { \
- (v1)[0] = FTOCHAR((v2[0])); \
- (v1)[1] = FTOCHAR((v2[1])); \
- (v1)[2] = FTOCHAR((v2[2])); \
- (v1)[3] = 255; \
-} (void)0
-#define F4TOCHAR4(v2, v1) { \
- (v1)[0] = FTOCHAR((v2[0])); \
- (v1)[1] = FTOCHAR((v2[1])); \
- (v1)[2] = FTOCHAR((v2[2])); \
- (v1)[3] = FTOCHAR((v2[3])); \
-} (void)0
#define VECCOPY(v1, v2) { \
*(v1) = *(v2); \
*(v1 + 1) = *(v2 + 1); \
diff --git a/source/blender/blenlib/intern/math_base_inline.c b/source/blender/blenlib/intern/math_base_inline.c
index 4bedcbdf5bf..82ed6cd1cd1 100644
--- a/source/blender/blenlib/intern/math_base_inline.c
+++ b/source/blender/blenlib/intern/math_base_inline.c
@@ -513,6 +513,38 @@ MALWAYS_INLINE __m128 _bli_math_blend_sse(const __m128 mask,
return _mm_or_ps(_mm_and_ps(mask, a), _mm_andnot_ps(mask, b));
}
+/* Low level conversion functions */
+/* TODO: name sensibly. */
+MINLINE unsigned char FTOCHAR(float val)
+{
+ return (unsigned char)(((val <= 0.0f) ? 0 : ((val > (1.0f - 0.5f / 255.0f)) ? 255 : ((255.0f * val) + 0.5f))));
+}
+#define FTOCHAR(val) ((CHECK_TYPE_INLINE(val, float)), FTOCHAR(val))
+
+MINLINE unsigned short FTOUSHORT(float val)
+{
+ return (unsigned short)((val >= 1.0f - 0.5f / 65535) ? 65535 : (val <= 0.0f) ? 0 : (val * 65535.0f + 0.5f));
+}
+#define FTOUSHORT(val) ((CHECK_TYPE_INLINE(val, float)), FTOUSHORT(val))
+
+MINLINE unsigned char USHORTTOUCHAR(unsigned short val)
+{
+ return (unsigned char)(((val) >= 65535 - 128) ? 255 : ((val) + 128) >> 8);
+}
+#define USHORTTOUCHAR(val) ((CHECK_TYPE_INLINE(val, unsigned short)), USHORTTOUCHAR(val))
+
+#define F3TOCHAR3(v2, v1) { \
+ (v1)[0] = FTOCHAR((v2[0])); \
+ (v1)[1] = FTOCHAR((v2[1])); \
+ (v1)[2] = FTOCHAR((v2[2])); \
+} ((void)0)
+#define F4TOCHAR4(v2, v1) { \
+ (v1)[0] = FTOCHAR((v2[0])); \
+ (v1)[1] = FTOCHAR((v2[1])); \
+ (v1)[2] = FTOCHAR((v2[2])); \
+ (v1)[3] = FTOCHAR((v2[3])); \
+} ((void)0)
+
#endif /* __SSE2__ */
#endif /* __MATH_BASE_INLINE_C__ */