[Bf-blender-cvs] [824db1a] temp-curve-draw: Changes needed for building on MSVC
Campbell Barton
noreply at git.blender.org
Thu Apr 14 17:49:21 CEST 2016
Commit: 824db1a9d5f39c70495ce0f1cc301325260174f8
Author: Campbell Barton
Date: Fri Apr 15 01:48:58 2016 +1000
Branches: temp-curve-draw
https://developer.blender.org/rB824db1a9d5f39c70495ce0f1cc301325260174f8
Changes needed for building on MSVC
Patch by Mano-Wii with minor edits
===================================================================
M extern/curve_fit_nd/curve_fit_nd.h
M extern/curve_fit_nd/intern/curve_fit_corners_detect.c
M extern/curve_fit_nd/intern/curve_fit_cubic.c
M extern/curve_fit_nd/intern/curve_fit_inline.h
===================================================================
diff --git a/extern/curve_fit_nd/curve_fit_nd.h b/extern/curve_fit_nd/curve_fit_nd.h
index ad1588b..739a2a9 100644
--- a/extern/curve_fit_nd/curve_fit_nd.h
+++ b/extern/curve_fit_nd/curve_fit_nd.h
@@ -61,10 +61,10 @@ int spline_fit_cubic_to_points_db(
const unsigned int dims,
const double error_threshold,
const unsigned int *corners,
- const unsigned int corners_len,
+ unsigned int corners_len,
double **r_cubic_array, unsigned int *r_cubic_array_len,
- uint **r_cubic_orig_index,
+ unsigned int **r_cubic_orig_index,
unsigned int **r_corner_index_array, unsigned int *r_corner_index_len);
int spline_fit_cubic_to_points_fl(
@@ -76,7 +76,7 @@ int spline_fit_cubic_to_points_fl(
const unsigned int corners_len,
float **r_cubic_array, unsigned int *r_cubic_array_len,
- uint **r_cubic_orig_index,
+ unsigned int **r_cubic_orig_index,
unsigned int **r_corners_index_array, unsigned int *r_corners_index_len);
diff --git a/extern/curve_fit_nd/intern/curve_fit_corners_detect.c b/extern/curve_fit_nd/intern/curve_fit_corners_detect.c
index 47b8002..bd8581b 100644
--- a/extern/curve_fit_nd/intern/curve_fit_corners_detect.c
+++ b/extern/curve_fit_nd/intern/curve_fit_corners_detect.c
@@ -43,6 +43,10 @@ typedef unsigned int uint;
#include "curve_fit_inline.h"
+#ifdef _MSC_VER
+# define alloca(size) _alloca(size)
+#endif
+
#if !defined(_MSC_VER)
# define USE_VLA
#endif
diff --git a/extern/curve_fit_nd/intern/curve_fit_cubic.c b/extern/curve_fit_nd/intern/curve_fit_cubic.c
index eeda840..145a9c7 100644
--- a/extern/curve_fit_nd/intern/curve_fit_cubic.c
+++ b/extern/curve_fit_nd/intern/curve_fit_cubic.c
@@ -50,6 +50,10 @@ typedef unsigned int uint;
#include "curve_fit_inline.h"
+#ifdef _MSC_VER
+# define alloca(size) _alloca(size)
+#endif
+
#if !defined(_MSC_VER)
# define USE_VLA
#endif
diff --git a/extern/curve_fit_nd/intern/curve_fit_inline.h b/extern/curve_fit_nd/intern/curve_fit_inline.h
index 87a18dc..17aa02b 100644
--- a/extern/curve_fit_nd/intern/curve_fit_inline.h
+++ b/extern/curve_fit_nd/intern/curve_fit_inline.h
@@ -33,22 +33,30 @@
/** \name Simple Vector Math Lib
* \{ */
-static inline double sq(const double d)
+#ifdef _MSC_VER
+# define MINLINE static __forceinline
+#else
+# define MINLINE static inline
+#endif
+
+MINLINE double sq(const double d)
{
return d * d;
}
-static inline double min(const double a, const double b)
+#ifndef _MSC_VER
+MINLINE double min(const double a, const double b)
{
return b < a ? b : a;
}
-static inline double max(const double a, const double b)
+MINLINE double max(const double a, const double b)
{
return a < b ? b : a;
}
+#endif
-static inline void zero_vn(
+MINLINE void zero_vn(
double v0[], const uint dims)
{
for (uint j = 0; j < dims; j++) {
@@ -56,7 +64,7 @@ static inline void zero_vn(
}
}
-static inline void flip_vn_vnvn(
+MINLINE void flip_vn_vnvn(
double v_out[], const double v0[], const double v1[], const uint dims)
{
for (uint j = 0; j < dims; j++) {
@@ -64,7 +72,7 @@ static inline void flip_vn_vnvn(
}
}
-static inline void copy_vnvn(
+MINLINE void copy_vnvn(
double v0[], const double v1[], const uint dims)
{
for (uint j = 0; j < dims; j++) {
@@ -72,7 +80,7 @@ static inline void copy_vnvn(
}
}
-static inline double dot_vnvn(
+MINLINE double dot_vnvn(
const double v0[], const double v1[], const uint dims)
{
double d = 0.0;
@@ -82,7 +90,7 @@ static inline double dot_vnvn(
return d;
}
-static inline void add_vn_vnvn(
+MINLINE void add_vn_vnvn(
double v_out[], const double v0[], const double v1[], const uint dims)
{
for (uint j = 0; j < dims; j++) {
@@ -90,7 +98,7 @@ static inline void add_vn_vnvn(
}
}
-static inline void sub_vn_vnvn(
+MINLINE void sub_vn_vnvn(
double v_out[], const double v0[], const double v1[], const uint dims)
{
for (uint j = 0; j < dims; j++) {
@@ -98,7 +106,7 @@ static inline void sub_vn_vnvn(
}
}
-static inline void iadd_vnvn(
+MINLINE void iadd_vnvn(
double v0[], const double v1[], const uint dims)
{
for (uint j = 0; j < dims; j++) {
@@ -106,7 +114,7 @@ static inline void iadd_vnvn(
}
}
-static inline void isub_vnvn(
+MINLINE void isub_vnvn(
double v0[], const double v1[], const uint dims)
{
for (uint j = 0; j < dims; j++) {
@@ -114,7 +122,7 @@ static inline void isub_vnvn(
}
}
-static inline void madd_vn_vnvn_fl(
+MINLINE void madd_vn_vnvn_fl(
double v_out[],
const double v0[], const double v1[],
const double f, const uint dims)
@@ -124,7 +132,7 @@ static inline void madd_vn_vnvn_fl(
}
}
-static inline void msub_vn_vnvn_fl(
+MINLINE void msub_vn_vnvn_fl(
double v_out[],
const double v0[], const double v1[],
const double f, const uint dims)
@@ -134,7 +142,7 @@ static inline void msub_vn_vnvn_fl(
}
}
-static inline void miadd_vn_vn_fl(
+MINLINE void miadd_vn_vn_fl(
double v_out[], const double v0[], double f, const uint dims)
{
for (uint j = 0; j < dims; j++) {
@@ -143,7 +151,7 @@ static inline void miadd_vn_vn_fl(
}
#if 0
-static inline void misub_vn_vn_fl(
+MINLINE void misub_vn_vn_fl(
double v_out[], const double v0[], double f, const uint dims)
{
for (uint j = 0; j < dims; j++) {
@@ -152,7 +160,7 @@ static inline void misub_vn_vn_fl(
}
#endif
-static inline void mul_vnvn_fl(
+MINLINE void mul_vnvn_fl(
double v_out[],
const double v0[], const double f, const uint dims)
{
@@ -161,7 +169,7 @@ static inline void mul_vnvn_fl(
}
}
-static inline void imul_vn_fl(double v0[], const double f, const uint dims)
+MINLINE void imul_vn_fl(double v0[], const double f, const uint dims)
{
for (uint j = 0; j < dims; j++) {
v0[j] *= f;
@@ -169,7 +177,7 @@ static inline void imul_vn_fl(double v0[], const double f, const uint dims)
}
-static inline double len_squared_vnvn(
+MINLINE double len_squared_vnvn(
const double v0[], const double v1[], const uint dims)
{
double d = 0.0;
@@ -179,7 +187,7 @@ static inline double len_squared_vnvn(
return d;
}
-static inline double len_squared_vn(
+MINLINE double len_squared_vn(
const double v0[], const uint dims)
{
double d = 0.0;
@@ -189,7 +197,7 @@ static inline double len_squared_vn(
return d;
}
-static inline double len_vnvn(
+MINLINE double len_vnvn(
const double v0[], const double v1[], const uint dims)
{
return sqrt(len_squared_vnvn(v0, v1, dims));
@@ -202,7 +210,7 @@ static double len_vn(
return sqrt(len_squared_vn(v0, dims));
}
-static inline double normalize_vn(
+MINLINE double normalize_vn(
double v0[], const uint dims)
{
double d = len_squared_vn(v0, dims);
@@ -214,7 +222,7 @@ static inline double normalize_vn(
#endif
/* v_out = (v0 - v1).normalized() */
-static inline double normalize_vn_vnvn(
+MINLINE double normalize_vn_vnvn(
double v_out[],
const double v0[], const double v1[], const uint dims)
{
@@ -230,17 +238,17 @@ static inline double normalize_vn_vnvn(
return d;
}
-static inline bool is_almost_zero_ex(double val, double eps)
+MINLINE bool is_almost_zero_ex(double val, double eps)
{
return (-eps < val) && (val < eps);
}
-static inline bool is_almost_zero(double val)
+MINLINE bool is_almost_zero(double val)
{
return is_almost_zero_ex(val, 1e-8);
}
-static inline bool equals_vnvn(
+MINLINE bool equals_vnvn(
const double v0[], const double v1[], const uint dims)
{
for (uint j = 0; j < dims; j++) {
More information about the Bf-blender-cvs
mailing list