[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