gtk-demo: Fix build without sincos
authorMatthias Clasen <mclasen@redhat.com>
Sat, 18 Feb 2023 15:00:10 +0000 (10:00 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 18 Feb 2023 15:41:02 +0000 (10:41 -0500)
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
tests/gtkgears.c

index 400f6b1104c0a2670226dd3f8e1bfb08dbbed983..10a80b18e81f40bcac5c53b8254899c9df4f547f 100644 (file)
 #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;
index 2ece67dcf9ee7d2547f66934f0fefd832ad8c5ca..4e1f6135f566deea6138c94e9810bbfc8ed29db5 100644 (file)
 #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;