|
|
@ -26,7 +26,7 @@ |
|
|
|
|
|
|
|
|
#include <cmath> |
|
|
#include <cmath> |
|
|
#include <cstdint> |
|
|
#include <cstdint> |
|
|
#include <xmmintrin.h> // data_types__m128.cpp |
|
|
|
|
|
|
|
|
#include <cstdlib> |
|
|
|
|
|
|
|
|
typedef std::uint8_t u8; ///< 8-bit unsigned byte |
|
|
typedef std::uint8_t u8; ///< 8-bit unsigned byte |
|
|
typedef std::uint16_t u16; ///< 16-bit unsigned short |
|
|
typedef std::uint16_t u16; ///< 16-bit unsigned short |
|
|
@ -67,16 +67,6 @@ union t64 { |
|
|
u8 _u8[8]; ///< 8-bit unsigned char(s) |
|
|
u8 _u8[8]; ///< 8-bit unsigned char(s) |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
/// Union for fast 128-bit type casting |
|
|
|
|
|
union t128 { |
|
|
|
|
|
struct |
|
|
|
|
|
{ |
|
|
|
|
|
t64 ps0; ///< 64-bit paired single 0 |
|
|
|
|
|
t64 ps1; ///< 64-bit paired single 1 |
|
|
|
|
|
}; |
|
|
|
|
|
__m128 a; ///< 128-bit floating point (__m128 maps to the XMM[0-7] registers) |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
namespace Common { |
|
|
namespace Common { |
|
|
/// Rectangle data structure |
|
|
/// Rectangle data structure |
|
|
class Rect { |
|
|
class Rect { |
|
|
@ -94,8 +84,8 @@ public: |
|
|
int x1_; ///< Rect bottom left X-coordinate |
|
|
int x1_; ///< Rect bottom left X-coordinate |
|
|
int y1_; ///< Rect bottom right Y-coordinate |
|
|
int y1_; ///< Rect bottom right Y-coordinate |
|
|
|
|
|
|
|
|
inline u32 width() const { return abs(x1_ - x0_); } |
|
|
|
|
|
inline u32 height() const { return abs(y1_ - y0_); } |
|
|
|
|
|
|
|
|
inline u32 width() const { return std::abs(x1_ - x0_); } |
|
|
|
|
|
inline u32 height() const { return std::abs(y1_ - y0_); } |
|
|
|
|
|
|
|
|
inline bool operator == (const Rect& val) const { |
|
|
inline bool operator == (const Rect& val) const { |
|
|
return (x0_ == val.x0_ && y0_ == val.y0_ && x1_ == val.x1_ && y1_ == val.y1_); |
|
|
return (x0_ == val.x0_ && y0_ == val.y0_ && x1_ == val.x1_ && y1_ == val.y1_); |
|
|
|