And I would like to describe some issues and advantages which I have encountered.
1. Data aligning & ATTRIBUTE_ALIGNED16 usage
Bullet use ATTRIBUTE_ALIGNED16 macro to align data e.g.
Code: Select all
ATTRIBUTE_ALIGNED16(class) btVector3
{
...
};
Code: Select all
class __attribute__ ((aligned (16))) btVector3
{
...
};
To align data we must write something like this:
Code: Select all
class btVector3
{
} __attribute__ ((aligned (16)));
Code: Select all
#if MYPLATFORM
#define EXTRA_ATTRIBUTE_ALIGNED16 __attribute__ ((aligned (16)))
#define ATTRIBUTE_ALIGNED16(a) a
#endif
ATTRIBUTE_ALIGNED16(class) btVector3
{
...
} EXTRA_ATTRIBUTE_ALIGNED16;