+ /* Annoyingly 'C' cannot initialize unions properly */
+ /* It's dependent on the standard used or the compiler support... */
+#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L || __GNUC__
+#define VIK_LPD_BOOLEAN(X) (VikLayerParamData) { .b = (X) }
+#define VIK_LPD_INT(X) (VikLayerParamData) { .u = (X) }
+#define VIK_LPD_UINT(X) (VikLayerParamData) { .i = (X) }
+#define VIK_LPD_COLOR(X,Y,Z,A) (VikLayerParamData) { .c = (GdkColor){ (X), (Y), (Z), (A) } }
+#define VIK_LPD_DOUBLE(X) (VikLayerParamData) { .d = (X) }
+#else
+#define VIK_LPD_BOOLEAN(X) (VikLayerParamData) { (X) }
+#define VIK_LPD_INT(X) (VikLayerParamData) { (X) }
+#define VIK_LPD_UINT(X) (VikLayerParamData) { (X) }
+#define VIK_LPD_COLOR(X,Y,Z,A) (VikLayerParamData) { (X), (Y), (Z), (A) }
+#define VIK_LPD_DOUBLE(X) (VikLayerParamData) { (X) }
+#endif