2007-10-12 Tomas Frydrych <tf@o-hand.com>
authorTomas Frydrych <tf@openedhand.com>
Fri, 12 Oct 2007 09:39:41 +0000 (09:39 +0000)
committerTomas Frydrych <tf@openedhand.com>
Fri, 12 Oct 2007 09:39:41 +0000 (09:39 +0000)
Portability fixes:

* clutter/clutter-private.h:
Bracket #include "unistd.h" with #ifdef HAVE_UNISTD_H

* clutter/clutter-fixed.c:
Use "", not <> for inclusion of local files.

(clutter_sqrtx): forward declare local variables.

* clutter/clutter-debug.h:
Added non-gcc (c99) implementation of variadic debug macros for
when not compiling with gcc.

* clutter/pango/pangoclutter-render.c:
Fixed some strange uses of CLUTTER_NOTE() + stripped trailing
whitespace.

ChangeLog
clutter/clutter-debug.h
clutter/clutter-fixed.c
clutter/clutter-private.h
clutter/pango/pangoclutter-render.c

index f0765fc..0d6e900 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,25 @@
 2007-10-12  Tomas Frydrych  <tf@o-hand.com>
 
+       Portability fixes:
+
+       * clutter/clutter-private.h:
+       Bracket #include "unistd.h" with #ifdef HAVE_UNISTD_H
+
+       * clutter/clutter-fixed.c:
+       Use "", not <> for inclusion of local files.
+
+       (clutter_sqrtx): forward declare local variables.
+
+       * clutter/clutter-debug.h:
+       Added non-gcc (c99) implementation of variadic debug macros for
+       when not compiling with gcc.
+
+       * clutter/pango/pangoclutter-render.c:
+       Fixed some strange uses of CLUTTER_NOTE() + stripped trailing
+       whitespace.
+
+2007-10-12  Tomas Frydrych  <tf@o-hand.com>
+
         * clutter/clutter-actor.c:
         * clutter/clutter-backend.c:
         * clutter/clutter-behaviour-depth.c:
@@ -42,7 +62,7 @@
 
        Fixedup config.h inclusion (must always be bracketed with #ifdef
        HAVE_CONFIG_H).
-       
+
 2007-10-11  Tomas Frydrych  <tf@o-hand.com>
 
        * clutter/clutter-entry.c:
index 5dd24f1..f22d603 100644 (file)
@@ -23,11 +23,42 @@ typedef enum {
 
 #ifdef CLUTTER_ENABLE_DEBUG
 
+#ifdef __GNUC_
 #define CLUTTER_NOTE(type,x,a...)               G_STMT_START {  \
         if (clutter_debug_flags & CLUTTER_DEBUG_##type)         \
           { g_message ("[" #type "] " G_STRLOC ": " x, ##a); }  \
                                                 } G_STMT_END
 
+#define CLUTTER_TIMESTAMP(type,x,a...)             G_STMT_START {  \
+        if (clutter_debug_flags & CLUTTER_DEBUG_##type)            \
+          { g_message ("[" #type "]" " %li:"  G_STRLOC ": "        \
+                       x, clutter_get_timestamp(), ##a); }         \
+                                                   } G_STMT_END
+#else
+/* Try the C99 version; unfortunately, this does not allow us to pass
+ * empty arguments to the macro, which means we have to
+ * do an intemediate printf.
+ */
+#define CLUTTER_NOTE(type,...)               G_STMT_START {  \
+        if (clutter_debug_flags & CLUTTER_DEBUG_##type)      \
+       {                                                    \
+         gchar * _fmt = g_strdup_printf (__VA_ARGS__);      \
+          g_message ("[" #type "] " G_STRLOC ": %s",_fmt);   \
+          g_free (_fmt);                                     \
+       }                                                    \
+                                                } G_STMT_END
+
+#define CLUTTER_TIMESTAMP(type,...)             G_STMT_START {  \
+        if (clutter_debug_flags & CLUTTER_DEBUG_##type)         \
+       {                                                       \
+         gchar * _fmt = g_strdup_printf (__VA_ARGS__);         \
+          g_message ("[" #type "]" " %li:"  G_STRLOC ": %s",    \
+                       clutter_get_timestamp(), _fmt);          \
+          g_free (_fmt);                                        \
+       }                                                       \
+                                                   } G_STMT_END
+#endif
+
 #define CLUTTER_MARK()      CLUTTER_NOTE(MISC, "== mark ==")
 #define CLUTTER_DBG(x) { a }
 
@@ -38,19 +69,14 @@ typedef enum {
               g_warning (G_STRLOC ": GL Error %x", _err);       \
           }                                     } G_STMT_END
 
-#define CLUTTER_TIMESTAMP(type,x,a...)             G_STMT_START {  \
-        if (clutter_debug_flags & CLUTTER_DEBUG_##type)            \
-          { g_message ("[" #type "]" " %li:"  G_STRLOC ": "        \
-                       x, clutter_get_timestamp(), ##a); }         \
-                                                   } G_STMT_END
 
 #else /* !CLUTTER_ENABLE_DEBUG */
 
-#define CLUTTER_NOTE(type,x,a...)
+#define CLUTTER_NOTE(type,...)
 #define CLUTTER_MARK()
 #define CLUTTER_DBG(x)
 #define CLUTTER_GLERR()
-#define CLUTTER_TIMESTAMP(type,x,a...)
+#define CLUTTER_TIMESTAMP(type,...)
 
 #endif /* CLUTTER_ENABLE_DEBUG */
 
index 87f75dc..8ff63fb 100644 (file)
@@ -27,8 +27,8 @@
 #include "config.h"
 #endif
 
-#include <clutter-fixed.h>
-#include <clutter-private.h>
+#include "clutter-fixed.h"
+#include "clutter-private.h"
 
 /**
  * SECTION:clutter-fixed
@@ -517,6 +517,7 @@ clutter_sqrtx (ClutterFixed x)
     unsigned int mask = 0x40000000;
     unsigned fract = x & 0x0000ffff;
     unsigned int d1, d2;
+    ClutterFixed v1, v2;
 
     if (x <= 0)
        return 0;
@@ -579,8 +580,8 @@ clutter_sqrtx (ClutterFixed x)
     }
 
     /* Do a weighted average of the two nearest values */
-    ClutterFixed v1 = sqrt_tbl[t];
-    ClutterFixed v2 = sqrt_tbl[t+1];
+    v1 = sqrt_tbl[t];
+    v2 = sqrt_tbl[t+1];
 
     /*
      * 12 is fairly arbitrary -- we want integer that is not too big to cost
index e3d9f22..f2fda45 100644 (file)
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
+
+#ifdef HAVE_UNISTD_H
 #include <unistd.h>
+#endif
+
 #include <math.h>
 
 #include <glib.h>
index 019675c..521576f 100644 (file)
@@ -34,7 +34,7 @@
 
 #include "cogl.h"
 
-/* 
+/*
  * Texture cache support code
  */
 
@@ -106,8 +106,8 @@ tc_get (tc_area *area, int width, int height)
       /* create a new texture if necessary */
       if (!match)
         {
-         CLUTTER_NOTE (PANGO, g_message ("creating new texture %i x %i\n",
-                                          TC_WIDTH, TC_HEIGHT));
+         CLUTTER_NOTE (PANGO, "creating new texture %i x %i",
+                       TC_WIDTH, TC_HEIGHT);
 
           match = g_slice_new (tc_texture);
           match->next = first_texture;
@@ -124,12 +124,12 @@ tc_get (tc_area *area, int width, int height)
        */
          cogl_texture_set_filters (CGL_TEXTURE_2D, CGL_LINEAR, CGL_NEAREST);
 
-         cogl_texture_image_2d (CGL_TEXTURE_2D, 
+         cogl_texture_image_2d (CGL_TEXTURE_2D,
                                 CGL_ALPHA,
                                 TC_WIDTH,
                                 TC_HEIGHT,
-                                CGL_ALPHA, 
-                                CGL_UNSIGNED_BYTE, 
+                                CGL_ALPHA,
+                                CGL_UNSIGNED_BYTE,
                                 NULL);
         }
 
@@ -236,11 +236,11 @@ render_box (Glyph *glyph, int width, int height, int top)
   memset (glyph->bitmap, 0, glyph->stride * height);
 
   for (i = width; i--; )
-    glyph->bitmap [i] 
+    glyph->bitmap [i]
       = glyph->bitmap [i + (height - 1) * glyph->stride] = 0xff;
 
   for (i = height; i--; )
-    glyph->bitmap [i * glyph->stride] 
+    glyph->bitmap [i * glyph->stride]
       = glyph->bitmap [i * glyph->stride + (width - 1)] = 0xff;
 }
 
@@ -270,7 +270,7 @@ font_render_glyph (Glyph *glyph, PangoFont *font, int glyph_index)
     }
 
   face = pango_clutter_font_get_face (font);
-  
+
   if (face)
     {
       PangoClutterFont *glfont = (PangoClutterFont *)font;
@@ -287,16 +287,16 @@ font_render_glyph (Glyph *glyph, PangoFont *font, int glyph_index)
     }
   else
     generic_box:
-      render_box (glyph, PANGO_UNKNOWN_GLYPH_WIDTH, 
+      render_box (glyph, PANGO_UNKNOWN_GLYPH_WIDTH,
                  PANGO_UNKNOWN_GLYPH_HEIGHT, PANGO_UNKNOWN_GLYPH_HEIGHT);
 }
 
-typedef struct glyph_info 
+typedef struct glyph_info
 {
   tc_area tex;
   int     left, top;
   int     generation;
-} 
+}
 glyph_info;
 
 static void
@@ -307,10 +307,10 @@ free_glyph_info (glyph_info *g)
 }
 
 static void
-draw_glyph (PangoRenderer *renderer_, 
-           PangoFont     *font, 
-           PangoGlyph     glyph, 
-           double         x, 
+draw_glyph (PangoRenderer *renderer_,
+           PangoFont     *font,
+           PangoGlyph     glyph,
+           double         x,
            double         y)
 {
   PangoClutterRenderer *renderer = PANGO_CLUTTER_RENDERER (renderer_);
@@ -320,7 +320,7 @@ draw_glyph (PangoRenderer *renderer_,
   if (glyph & PANGO_GLYPH_UNKNOWN_FLAG)
     {
       glyph = pango_clutter_get_unknown_glyph (font);
-      
+
       if (glyph == PANGO_GLYPH_EMPTY)
        glyph = PANGO_GLYPH_UNKNOWN_FLAG;
     }
@@ -338,7 +338,7 @@ draw_glyph (PangoRenderer *renderer_,
         {
           g = g_slice_new (glyph_info);
 
-          _pango_clutter_font_set_glyph_cache_destroy 
+          _pango_clutter_font_set_glyph_cache_destroy
                                (font, (GDestroyNotify)free_glyph_info);
           _pango_clutter_font_set_cache_glyph_data (font, glyph, g);
         }
@@ -348,27 +348,27 @@ draw_glyph (PangoRenderer *renderer_,
       g->left = bm.left;
       g->top  = bm.top;
 
-      CLUTTER_NOTE (PANGO, g_message ("cache fail; subimage2d %i\n", glyph));
+      CLUTTER_NOTE (PANGO, "cache fail; subimage2d %i", glyph);
 
 
       cogl_texture_bind (CGL_TEXTURE_2D, g->tex.name);
 
-      cogl_texture_set_alignment (CGL_TEXTURE_2D, 1, bm.stride); 
+      cogl_texture_set_alignment (CGL_TEXTURE_2D, 1, bm.stride);
 
       cogl_texture_sub_image_2d (CGL_TEXTURE_2D,
-                                g->tex.x, 
-                                g->tex.y, 
-                                bm.width, 
-                                bm.height, 
-                                CGL_ALPHA, 
-                                CGL_UNSIGNED_BYTE, 
+                                g->tex.x,
+                                g->tex.y,
+                                bm.width,
+                                bm.height,
+                                CGL_ALPHA,
+                                CGL_UNSIGNED_BYTE,
                                 bm.bitmap);
 
       glTexParameteri (CGL_TEXTURE_2D, GL_GENERATE_MIPMAP, FALSE);
 
       renderer->curtex = g->tex.name;
     }
-  else CLUTTER_NOTE (PANGO, g_message ("cache succsess %i\n", glyph));
+  else CLUTTER_NOTE (PANGO, "cache succsess %i\n", glyph);
 
   x += g->left;
   y -= g->top;
@@ -384,13 +384,13 @@ draw_glyph (PangoRenderer *renderer_,
       renderer->curtex = g->tex.name;
     }
 
-  cogl_texture_quad (x, 
-                    x + g->tex.w, 
+  cogl_texture_quad (x,
+                    x + g->tex.w,
                     y,
                     y + g->tex.h,
-                    CLUTTER_FLOAT_TO_FIXED (box.x1), 
-                    CLUTTER_FLOAT_TO_FIXED (box.y1), 
-                    CLUTTER_FLOAT_TO_FIXED (box.x2), 
+                    CLUTTER_FLOAT_TO_FIXED (box.x1),
+                    CLUTTER_FLOAT_TO_FIXED (box.y1),
+                    CLUTTER_FLOAT_TO_FIXED (box.x2),
                     CLUTTER_FLOAT_TO_FIXED (box.y2));
 }
 
@@ -426,9 +426,9 @@ draw_trapezoid (PangoRenderer   *renderer_,
   cogl_enable (CGL_ENABLE_TEXTURE_2D|CGL_ENABLE_BLEND);
 }
 
-void 
+void
 pango_clutter_render_layout_subpixel (PangoLayout *layout,
-                                     int           x, 
+                                     int           x,
                                      int           y,
                                      ClutterColor *color,
                                      int           flags)
@@ -439,30 +439,30 @@ pango_clutter_render_layout_subpixel (PangoLayout *layout,
 
   context = pango_layout_get_context (layout);
   fontmap = pango_context_get_font_map (context);
-  renderer = _pango_clutter_font_map_get_renderer 
+  renderer = _pango_clutter_font_map_get_renderer
                      (PANGO_CLUTTER_FONT_MAP (fontmap));
 
-  memcpy (&(PANGO_CLUTTER_RENDERER (renderer)->color), 
+  memcpy (&(PANGO_CLUTTER_RENDERER (renderer)->color),
          color, sizeof(ClutterColor));
-  
+
   pango_renderer_draw_layout (renderer, layout, x, y);
 }
 
-void 
+void
 pango_clutter_render_layout (PangoLayout  *layout,
-                            int           x, 
+                            int           x,
                             int           y,
                             ClutterColor *color,
                             int           flags)
 {
-  pango_clutter_render_layout_subpixel (layout, 
-                                       x * PANGO_SCALE, 
-                                       y * PANGO_SCALE, 
+  pango_clutter_render_layout_subpixel (layout,
+                                       x * PANGO_SCALE,
+                                       y * PANGO_SCALE,
                                        color,
                                        flags);
 }
 
-void 
+void
 pango_clutter_render_layout_line (PangoLayoutLine *line,
                                  int              x,
                                  int              y,
@@ -474,16 +474,16 @@ pango_clutter_render_layout_line (PangoLayoutLine *line,
 
   context = pango_layout_get_context (line->layout);
   fontmap = pango_context_get_font_map (context);
-  renderer = _pango_clutter_font_map_get_renderer 
+  renderer = _pango_clutter_font_map_get_renderer
                      (PANGO_CLUTTER_FONT_MAP (fontmap));
 
-  memcpy (&(PANGO_CLUTTER_RENDERER (renderer)->color), 
+  memcpy (&(PANGO_CLUTTER_RENDERER (renderer)->color),
          color, sizeof(ClutterColor));
-  
+
   pango_renderer_draw_layout_line (renderer, line, x, y);
 }
 
-void 
+void
 pango_clutter_render_clear_caches (void)
 {
   tc_clear();
@@ -509,17 +509,17 @@ prepare_run (PangoRenderer *renderer, PangoLayoutRun *run)
   for (l = run->item->analysis.extra_attrs; l; l = l->next)
     {
       PangoAttribute *attr = l->data;
-      
+
       switch (attr->klass->type)
        {
        case PANGO_ATTR_UNDERLINE:
          renderer->underline = ((PangoAttrInt *)attr)->value;
          break;
-         
+
        case PANGO_ATTR_STRIKETHROUGH:
          renderer->strikethrough = ((PangoAttrInt *)attr)->value;
          break;
-         
+
        case PANGO_ATTR_FOREGROUND:
           fg = &((PangoAttrColor *)attr)->color;
          break;
@@ -534,7 +534,7 @@ prepare_run (PangoRenderer *renderer, PangoLayoutRun *run)
       col.green = (fg->green * 255) / 65535;
       col.blue  = (fg->blue  * 255) / 65535;
     }
-  else 
+  else
     {
       col.red   = glrenderer->color.red;
       col.green = glrenderer->color.green;
@@ -548,8 +548,8 @@ prepare_run (PangoRenderer *renderer, PangoLayoutRun *run)
       col.red   ^= 0xffU;
       col.green ^= 0xffU;
       col.blue   ^= 0xffU;
-    } 
-  
+    }
+
   cogl_color(&col);
 }