Differences From Artifact [6d396e3db6]:
- File src/OFObject.h — part of check-in [772e8b8f78] at 2023-08-09 22:39:27 on branch trunk — OFValue: Improve -[description] (user: js, size: 43102) [annotate] [blame] [check-ins using] [more...]
To Artifact [ea05d80823]:
- File
src/OFObject.h
— part of check-in
[7f304f573b]
at
2023-11-03 00:16:18
on branch trunk
— OFMatrix4x4: SSE4.1 for -[transformVectors:count:]
This requires the vectors to be 16 byte aligned. In order to achieve
this, the OFVector4D type is changed to have an alignment of 16 bytes.
However, this does *not* break ABI because the only method actually
requiring 16 byte alignment is -[transformVectors:count:], which was not
in ObjFW 1.0. Hence binaries compiled for ObjFW 1.0 have no 16 byte
alignment for OFVector4D, but also cannot ever call into any code that
needs it. (-[transformedVector:] calls into -[transformVectors:count:],
but creates a properly aligned copy that it passes.) (user: js, size: 43115) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
345 346 347 348 349 350 351 | } /** * @struct OFVector4D OFObject.h ObjFW/OFObject.h * * @brief A vector in 4D space. */ | | | 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 | } /** * @struct OFVector4D OFObject.h ObjFW/OFObject.h * * @brief A vector in 4D space. */ typedef struct OF_BOXABLE OF_ALIGN(16) OFVector4D { /** The x coordinate of the vector */ float x; /** The y coordinate of the vector */ float y; /** The z coordinate of the vector */ float z; /** The w coordinate of the vector */ |
︙ | ︙ |