[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50684] trunk/blender/source/blender: add endian switching to mask shape key loading ( loading mask animations between big/little endian systems would break), also set attributes to BLI_endian_switch_* functions.

Thomas Dinges blender at dingto.org
Mon Sep 17 12:08:56 CEST 2012


This breaks MSVC compiling:

source\blender\blenlib\BLI_endian_switch.h(39) : error C2061: 
Syntaxfehler: Beze
ichner 'ATTR_ENDIAN_SWITCH'
source\blender\blenlib\BLI_endian_switch.h(39) : error C2059: 
Syntaxfehler: ';'
source\blender\blenlib\BLI_endian_switch.h(40) : error C2061: 
Syntaxfehler: Beze
ichner 'ATTR_ENDIAN_SWITCH'
source\blender\blenlib\BLI_endian_switch.h(40) : error C2059: 
Syntaxfehler: ';'
source\blender\blenlib\BLI_endian_switch.h(41) : error C2061: 
Syntaxfehler: Beze
ichner 'ATTR_ENDIAN_SWITCH'
source\blender\blenlib\BLI_endian_switch.h(41) : error C2059: 
Syntaxfehler: ';'
source\blender\blenlib\BLI_endian_switch.h(42) : error C2061: 
Syntaxfehler: Beze
ichner 'ATTR_ENDIAN_SWITCH'
source\blender\blenlib\BLI_endian_switch.h(42) : error C2059: 
Syntaxfehler: ';'
source\blender\blenlib\BLI_endian_switch.h(43) : error C2061: 
Syntaxfehler: Beze
ichner 'ATTR_ENDIAN_SWITCH'

Am 17.09.2012 07:31, schrieb Campbell Barton:
> Revision: 50684
>            http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50684
> Author:   campbellbarton
> Date:     2012-09-17 05:31:41 +0000 (Mon, 17 Sep 2012)
> Log Message:
> -----------
> add endian switching to mask shape key loading (loading mask animations between big/little endian systems would break), also set attributes to BLI_endian_switch_* functions.
>
> Modified Paths:
> --------------
>      trunk/blender/source/blender/blenlib/BLI_endian_switch.h
>      trunk/blender/source/blender/blenloader/intern/readfile.c
>
> Modified: trunk/blender/source/blender/blenlib/BLI_endian_switch.h
> ===================================================================
> --- trunk/blender/source/blender/blenlib/BLI_endian_switch.h	2012-09-17 04:29:43 UTC (rev 50683)
> +++ trunk/blender/source/blender/blenlib/BLI_endian_switch.h	2012-09-17 05:31:41 UTC (rev 50684)
> @@ -27,16 +27,36 @@
>    *  \ingroup bli
>    */
>   
> -#include "BLI_endian_switch_inline.h"
> +#ifdef __GNUC__
> +#  define ATTR_ENDIAN_SWITCH \
> +	__attribute__((nonnull(1))) \
> +	__attribute__((pure))
> +#else
> +#  define ATTR_NONULL
> +#endif
>   
> +/* BLI_endian_switch_inline.h */
> +BLI_INLINE void BLI_endian_switch_int16(short *val)                       ATTR_ENDIAN_SWITCH;
> +BLI_INLINE void BLI_endian_switch_uint16(unsigned short *val)             ATTR_ENDIAN_SWITCH;
> +BLI_INLINE void BLI_endian_switch_int32(int *val)                         ATTR_ENDIAN_SWITCH;
> +BLI_INLINE void BLI_endian_switch_uint32(unsigned int *val)               ATTR_ENDIAN_SWITCH;
> +BLI_INLINE void BLI_endian_switch_float(float *val)                       ATTR_ENDIAN_SWITCH;
> +BLI_INLINE void BLI_endian_switch_int64(int64_t *val)                     ATTR_ENDIAN_SWITCH;
> +BLI_INLINE void BLI_endian_switch_uint64(uint64_t *val)                   ATTR_ENDIAN_SWITCH;
> +BLI_INLINE void BLI_endian_switch_double(double *val)                     ATTR_ENDIAN_SWITCH;
> +
>   /* endian_switch.c */
> -void BLI_endian_switch_int16_array(short *val, const int size);
> -void BLI_endian_switch_uint16_array(unsigned short *val, const int size);
> -void BLI_endian_switch_int32_array(int *val, const int size);
> -void BLI_endian_switch_uint32_array(unsigned int *val, const int size);
> -void BLI_endian_switch_float_array(float *val, const int size);
> -void BLI_endian_switch_int64_array(int64_t *val, const int size);
> -void BLI_endian_switch_uint64_array(uint64_t *val, const int size);
> -void BLI_endian_switch_double_array(double *val, const int size);
> +void BLI_endian_switch_int16_array(short *val, const int size)            ATTR_ENDIAN_SWITCH;
> +void BLI_endian_switch_uint16_array(unsigned short *val, const int size)  ATTR_ENDIAN_SWITCH;
> +void BLI_endian_switch_int32_array(int *val, const int size)              ATTR_ENDIAN_SWITCH;
> +void BLI_endian_switch_uint32_array(unsigned int *val, const int size)    ATTR_ENDIAN_SWITCH;
> +void BLI_endian_switch_float_array(float *val, const int size)            ATTR_ENDIAN_SWITCH;
> +void BLI_endian_switch_int64_array(int64_t *val, const int size)          ATTR_ENDIAN_SWITCH;
> +void BLI_endian_switch_uint64_array(uint64_t *val, const int size)        ATTR_ENDIAN_SWITCH;
> +void BLI_endian_switch_double_array(double *val, const int size)          ATTR_ENDIAN_SWITCH;
>   
> +#include "BLI_endian_switch_inline.h"
> +
> +#undef ATTR_ENDIAN_SWITCH
> +
>   #endif  /* __BLI_ENDIAN_SWITCH_H__ */
>
> Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
> ===================================================================
> --- trunk/blender/source/blender/blenloader/intern/readfile.c	2012-09-17 04:29:43 UTC (rev 50683)
> +++ trunk/blender/source/blender/blenloader/intern/readfile.c	2012-09-17 05:31:41 UTC (rev 50684)
> @@ -6289,6 +6289,14 @@
>   
>   		for (masklay_shape = masklay->splines_shapes.first; masklay_shape; masklay_shape = masklay_shape->next) {
>   			masklay_shape->data = newdataadr(fd, masklay_shape->data);
> +
> +			if (masklay_shape->tot_vert) {
> +				if (fd->flags & FD_FLAGS_SWITCH_ENDIAN) {
> +					BLI_endian_switch_float_array(masklay_shape->data,
> +					                              masklay_shape->tot_vert * sizeof(float) * MASK_OBJECT_SHAPE_ELEM_SIZE);
> +
> +				}
> +			}
>   		}
>   
>   		masklay->act_spline = newdataadr(fd, masklay->act_spline);
>
> _______________________________________________
> Bf-blender-cvs mailing list
> Bf-blender-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs


-- 
Thomas Dinges
Blender Developer, Artist and Musician

www.dingto.org



More information about the Bf-committers mailing list