aboutsummaryrefslogtreecommitdiff
path: root/editor/plugins/baked_light_baker_cmpxchg.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/plugins/baked_light_baker_cmpxchg.cpp')
-rw-r--r--editor/plugins/baked_light_baker_cmpxchg.cpp58
1 files changed, 25 insertions, 33 deletions
diff --git a/editor/plugins/baked_light_baker_cmpxchg.cpp b/editor/plugins/baked_light_baker_cmpxchg.cpp
index 5e9228b7d..f84c001f7 100644
--- a/editor/plugins/baked_light_baker_cmpxchg.cpp
+++ b/editor/plugins/baked_light_baker_cmpxchg.cpp
@@ -28,85 +28,77 @@
/*************************************************************************/
#include "typedefs.h"
-
#if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) > 40100
-void baked_light_baker_add_64f(double *dst,double value) {
-
+void baked_light_baker_add_64f(double *dst, double value) {
union {
int64_t i;
double f;
} swapy;
-
- while(true) {
- swapy.f=*dst;
+ while (true) {
+ swapy.f = *dst;
int64_t from = swapy.i;
- swapy.f+=value;
- int64_t to=swapy.i;
- if (__sync_bool_compare_and_swap((int64_t*)dst,from,to))
+ swapy.f += value;
+ int64_t to = swapy.i;
+ if (__sync_bool_compare_and_swap((int64_t *)dst, from, to))
break;
}
}
-void baked_light_baker_add_64i(int64_t *dst,int64_t value) {
-
- while(!__sync_bool_compare_and_swap(dst,*dst,(*dst)+value)) {}
+void baked_light_baker_add_64i(int64_t *dst, int64_t value) {
+ while (!__sync_bool_compare_and_swap(dst, *dst, (*dst) + value)) {
+ }
}
#elif defined(WINDOWS_ENABLED)
#include "windows.h"
-void baked_light_baker_add_64f(double *dst,double value) {
+void baked_light_baker_add_64f(double *dst, double value) {
union {
int64_t i;
double f;
} swapy;
-
- while(true) {
- swapy.f=*dst;
+ while (true) {
+ swapy.f = *dst;
int64_t from = swapy.i;
- swapy.f+=value;
- int64_t to=swapy.i;
- int64_t result = InterlockedCompareExchange64((int64_t*)dst,to,from);
- if (result==from)
+ swapy.f += value;
+ int64_t to = swapy.i;
+ int64_t result = InterlockedCompareExchange64((int64_t *)dst, to, from);
+ if (result == from)
break;
}
-
}
-void baked_light_baker_add_64i(int64_t *dst,int64_t value) {
+void baked_light_baker_add_64i(int64_t *dst, int64_t value) {
- while(true) {
+ while (true) {
int64_t from = *dst;
- int64_t to = from+value;
- int64_t result = InterlockedCompareExchange64(dst,to,from);
- if (result==from)
+ int64_t to = from + value;
+ int64_t result = InterlockedCompareExchange64(dst, to, from);
+ if (result == from)
break;
}
}
-
#else
//in goder (the god of programmers) we trust
#warning seems this platform or compiler does not support safe cmpxchg, your baked lighting may be funny
-void baked_light_baker_add_64f(double *dst,double value) {
-
- *dst+=value;
+void baked_light_baker_add_64f(double *dst, double value) {
+ *dst += value;
}
-void baked_light_baker_add_64i(int64_t *dst,int64_t value) {
-
- *dst+=value;
+void baked_light_baker_add_64i(int64_t *dst, int64_t value) {
+ *dst += value;
}
#endif