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-...@blender.org > http://lists.blender.org/mailman/listinfo/bf-blender-cvs -- Thomas Dinges Blender Developer, Artist and Musician www.dingto.org _______________________________________________ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers