From 6cb612ac15923844155885b7eaa02764de84936e Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 18 Feb 2023 10:00:10 -0500 Subject: [PATCH] gtk-demo: Fix build without sincos We are getting into trouble here if sincos isn't detected but still present in headers. Avoid that. Also fix the other copy of gtkgears.c. --- demos/gtk-demo/gtkgears.c | 22 ++++++++++++---------- tests/gtkgears.c | 22 ++++++++++++---------- 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/demos/gtk-demo/gtkgears.c b/demos/gtk-demo/gtkgears.c index 400f6b1104..10a80b18e8 100644 --- a/demos/gtk-demo/gtkgears.c +++ b/demos/gtk-demo/gtkgears.c @@ -48,14 +48,16 @@ #define VERTICES_PER_TOOTH 34 #define GEAR_VERTEX_STRIDE 6 -#ifndef HAVE_SINCOS -static void -sincos (double x, double *_sin, double *_cos) +static inline void +_sincos (double x, double *_sin, double *_cos) { +#ifdef HAVE_SINCOS + sincos (x, _sin, _cos); +#else *_sin = sin (x); *_cos = cos (x); -} #endif +} /** * Struct describing the vertices in triangle strip @@ -307,11 +309,11 @@ create_gear (GLfloat inner_radius, struct point p[7]; /* Calculate needed sin/cos for various angles */ - sincos(i * 2.0 * G_PI / teeth + da * 0, &s[0], &c[0]); - sincos(i * 2.0 * M_PI / teeth + da * 1, &s[1], &c[1]); - sincos(i * 2.0 * M_PI / teeth + da * 2, &s[2], &c[2]); - sincos(i * 2.0 * M_PI / teeth + da * 3, &s[3], &c[3]); - sincos(i * 2.0 * M_PI / teeth + da * 4, &s[4], &c[4]); + _sincos(i * 2.0 * G_PI / teeth + da * 0, &s[0], &c[0]); + _sincos(i * 2.0 * M_PI / teeth + da * 1, &s[1], &c[1]); + _sincos(i * 2.0 * M_PI / teeth + da * 2, &s[2], &c[2]); + _sincos(i * 2.0 * M_PI / teeth + da * 3, &s[3], &c[3]); + _sincos(i * 2.0 * M_PI / teeth + da * 4, &s[4], &c[4]); GEAR_POINT(p[0], r2, 1); GEAR_POINT(p[1], r2, 2); @@ -520,7 +522,7 @@ void perspective(GLfloat *m, GLfloat fovy, GLfloat aspect, GLfloat zNear, GLfloa identity(tmp); deltaZ = zFar - zNear; - sincos(radians, &sine, &cosine); + _sincos(radians, &sine, &cosine); if ((deltaZ == 0) || (sine == 0) || (aspect == 0)) return; diff --git a/tests/gtkgears.c b/tests/gtkgears.c index 2ece67dcf9..4e1f6135f5 100644 --- a/tests/gtkgears.c +++ b/tests/gtkgears.c @@ -48,14 +48,16 @@ #define VERTICES_PER_TOOTH 34 #define GEAR_VERTEX_STRIDE 6 -#ifndef HAVE_SINCOS -static void -sincos (double x, double *_sin, double *_cos) +static inline void +_sincos (double x, double *_sin, double *_cos) { +#ifdef HAVE_SINCOS + sincos (x, _sin, _cos); +#else *_sin = sin (x); *_cos = cos (x); -} #endif +} /** * Struct describing the vertices in triangle strip @@ -306,11 +308,11 @@ create_gear (GLfloat inner_radius, struct point p[7]; /* Calculate needed sin/cos for various angles */ - sincos(i * 2.0 * G_PI / teeth + da * 0, &s[0], &c[0]); - sincos(i * 2.0 * M_PI / teeth + da * 1, &s[1], &c[1]); - sincos(i * 2.0 * M_PI / teeth + da * 2, &s[2], &c[2]); - sincos(i * 2.0 * M_PI / teeth + da * 3, &s[3], &c[3]); - sincos(i * 2.0 * M_PI / teeth + da * 4, &s[4], &c[4]); + _sincos(i * 2.0 * G_PI / teeth + da * 0, &s[0], &c[0]); + _sincos(i * 2.0 * M_PI / teeth + da * 1, &s[1], &c[1]); + _sincos(i * 2.0 * M_PI / teeth + da * 2, &s[2], &c[2]); + _sincos(i * 2.0 * M_PI / teeth + da * 3, &s[3], &c[3]); + _sincos(i * 2.0 * M_PI / teeth + da * 4, &s[4], &c[4]); GEAR_POINT(p[0], r2, 1); GEAR_POINT(p[1], r2, 2); @@ -519,7 +521,7 @@ static void perspective(GLfloat *m, GLfloat fovy, GLfloat aspect, GLfloat zNear, identity(tmp); deltaZ = zFar - zNear; - sincos(radians, &sine, &cosine); + _sincos(radians, &sine, &cosine); if ((deltaZ == 0) || (sine == 0) || (aspect == 0)) return;