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
parentb0b2a478539500b112a0f4b002a9d3d2123be0d0 (diff)
parent905eeb0bc7f46efb95cb5450cc6c2ec27f02730c (diff)
Merge branch 'master' into blender2.8
-rw-r--r--source/blender/alembic/intern/abc_customdata.cc1
-rw-r--r--source/blender/blenlib/BLI_utildefines.h23
-rw-r--r--source/blender/blenlib/intern/math_base_inline.c32
-rw-r--r--source/blender/compositor/operations/COM_PreviewOperation.cpp2
-rw-r--r--source/blender/imbuf/intern/filter.c1
-rw-r--r--source/blender/imbuf/intern/scaling.c6
-rw-r--r--source/blender/makesrna/intern/rna_ID.c1
-rw-r--r--source/blender/makesrna/intern/rna_image.c1
8 files changed, 40 insertions, 27 deletions
diff --git a/source/blender/alembic/intern/abc_customdata.cc b/source/blender/alembic/intern/abc_customdata.cc
index b3b015c7abf..3b6c87ea1a0 100644
--- a/source/blender/alembic/intern/abc_customdata.cc
+++ b/source/blender/alembic/intern/abc_customdata.cc
@@ -31,6 +31,7 @@ extern "C" {
#include "DNA_customdata_types.h"
#include "DNA_meshdata_types.h"
+#include "BLI_math_base.h"
#include "BKE_customdata.h"
}
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__ */
diff --git a/source/blender/compositor/operations/COM_PreviewOperation.cpp b/source/blender/compositor/operations/COM_PreviewOperation.cpp
index aa667884de6..2845b972f65 100644
--- a/source/blender/compositor/operations/COM_PreviewOperation.cpp
+++ b/source/blender/compositor/operations/COM_PreviewOperation.cpp
@@ -105,7 +105,7 @@ void PreviewOperation::executeRegion(rcti *rect, unsigned int /*tileNumber*/)
color[3] = 1.0f;
this->m_input->readSampled(color, rx, ry, COM_PS_NEAREST);
IMB_colormanagement_processor_apply_v4(cm_processor, color);
- F4TOCHAR4(color, this->m_outputBuffer + offset);
+ rgba_float_to_uchar(this->m_outputBuffer + offset, color);
offset += 4;
}
}
diff --git a/source/blender/imbuf/intern/filter.c b/source/blender/imbuf/intern/filter.c
index 38609d0a342..27711618cee 100644
--- a/source/blender/imbuf/intern/filter.c
+++ b/source/blender/imbuf/intern/filter.c
@@ -34,6 +34,7 @@
#include "MEM_guardedalloc.h"
#include "BLI_utildefines.h"
+#include "BLI_math_base.h"
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
diff --git a/source/blender/imbuf/intern/scaling.c b/source/blender/imbuf/intern/scaling.c
index ff92ce15811..1c0b47f7942 100644
--- a/source/blender/imbuf/intern/scaling.c
+++ b/source/blender/imbuf/intern/scaling.c
@@ -332,9 +332,9 @@ MINLINE void premul_ushort_to_straight_uchar(unsigned char *result, const unsign
else {
unsigned short alpha = color[3] / 256;
- result[0] = USHORTTOUCHAR(color[0] / alpha * 256);
- result[1] = USHORTTOUCHAR(color[1] / alpha * 256);
- result[2] = USHORTTOUCHAR(color[2] / alpha * 256);
+ result[0] = USHORTTOUCHAR((ushort)(color[0] / alpha * 256));
+ result[1] = USHORTTOUCHAR((ushort)(color[1] / alpha * 256));
+ result[2] = USHORTTOUCHAR((ushort)(color[2] / alpha * 256));
result[3] = USHORTTOUCHAR(color[3]);
}
}
diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c
index a07e43162c2..8ff46d4d17a 100644
--- a/source/blender/makesrna/intern/rna_ID.c
+++ b/source/blender/makesrna/intern/rna_ID.c
@@ -33,6 +33,7 @@
#include "DNA_object_types.h"
#include "BLI_utildefines.h"
+#include "BLI_math_base.h"
#include "BKE_icons.h"
#include "BKE_object.h"
diff --git a/source/blender/makesrna/intern/rna_image.c b/source/blender/makesrna/intern/rna_image.c
index 6db8ee8bde1..4ed035c4e86 100644
--- a/source/blender/makesrna/intern/rna_image.c
+++ b/source/blender/makesrna/intern/rna_image.c
@@ -30,6 +30,7 @@
#include "DNA_scene_types.h"
#include "BLI_utildefines.h"
+#include "BLI_math_base.h"
#include "BKE_context.h"
#include "BKE_image.h"