From 879c789a0828ef86ebb1bd5c608420d3cdf89253 Mon Sep 17 00:00:00 2001 From: bjorn Date: Thu, 20 Jun 2019 21:43:40 -0700 Subject: [PATCH] Polyfill M_PI; It technically isn't part of C, which is causing problems on some systems. --- src/api/l_graphics.c | 4 ++-- src/core/util.h | 4 ++++ src/modules/graphics/graphics.c | 1 + src/modules/headset/desktop.c | 1 + src/modules/math/randomGenerator.c | 2 +- 5 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/api/l_graphics.c b/src/api/l_graphics.c index a346c785..b501fcca 100644 --- a/src/api/l_graphics.c +++ b/src/api/l_graphics.c @@ -865,8 +865,8 @@ static int l_lovrGraphicsArc(lua_State* L) { float transform[16]; index = luax_readmat4(L, index, transform, 1); float r1 = luax_optfloat(L, index++, 0.f); - float r2 = luax_optfloat(L, index++, 2.f * M_PI); - int segments = luaL_optinteger(L, index, 64) * (MIN(fabsf(r2 - r1), 2 * M_PI) / (2 * M_PI)); + float r2 = luax_optfloat(L, index++, 2.f * (float) M_PI); + int segments = luaL_optinteger(L, index, 64) * (MIN(fabsf(r2 - r1), 2.f * (float) M_PI) / (2.f * (float) M_PI)); lovrGraphicsArc(style, mode, material, transform, r1, r2, segments); return 0; } diff --git a/src/core/util.h b/src/core/util.h index 39d8c481..28c7b406 100644 --- a/src/core/util.h +++ b/src/core/util.h @@ -23,6 +23,10 @@ #define LOVR_INLINE inline #endif +#ifndef M_PI +#define M_PI 3.14159265358979 +#endif + #define MAX(a, b) (a > b ? a : b) #define MIN(a, b) (a < b ? a : b) #define CLAMP(x, min, max) MAX(min, MIN(max, x)) diff --git a/src/modules/graphics/graphics.c b/src/modules/graphics/graphics.c index 4aeb5ef8..1fabbdcb 100644 --- a/src/modules/graphics/graphics.c +++ b/src/modules/graphics/graphics.c @@ -9,6 +9,7 @@ #include "math/math.h" #include "core/maf.h" #include "core/ref.h" +#include "core/util.h" #include #include #include diff --git a/src/modules/headset/desktop.c b/src/modules/headset/desktop.c index d5ce3e49..4044d4df 100644 --- a/src/modules/headset/desktop.c +++ b/src/modules/headset/desktop.c @@ -1,6 +1,7 @@ #include "headset/headset.h" #include "graphics/graphics.h" #include "core/maf.h" +#include "core/util.h" #include "platform.h" #include #include diff --git a/src/modules/math/randomGenerator.c b/src/modules/math/randomGenerator.c index 554b34ca..301a4b08 100644 --- a/src/modules/math/randomGenerator.c +++ b/src/modules/math/randomGenerator.c @@ -83,7 +83,7 @@ double lovrRandomGeneratorRandomNormal(RandomGenerator* generator) { double a = lovrRandomGeneratorRandom(generator); double b = lovrRandomGeneratorRandom(generator); double r = sqrt(-2. * log(1. - a)); - double phi = 2 * M_PI * (1. - b); + double phi = 2. * M_PI * (1. - b); generator->lastRandomNormal = r * cos(phi); return r * sin(phi); }