OGRE  2.0
Object-Oriented Graphics Rendering Engine
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Ogre::SimpleMatrixAf4x3 Class Reference

Simple wrap up to load an AoS matrix 4x3 using SSE. More...

#include <OgreArrayMatrixAf4x3.h>

+ Collaboration diagram for Ogre::SimpleMatrixAf4x3:

Public Member Functions

 SimpleMatrixAf4x3 ()
 
 SimpleMatrixAf4x3 ()
 
 SimpleMatrixAf4x3 ()
 
 SimpleMatrixAf4x3 (ArrayReal row0, ArrayReal row1, ArrayReal row2)
 
 SimpleMatrixAf4x3 (ArrayReal row0, ArrayReal row1, ArrayReal row2)
 
 SimpleMatrixAf4x3 (Real m00, Real m01, Real m02, Real m03, Real m10, Real m11, Real m12, Real m13, Real m20, Real m21, Real m22, Real m23)
 
void load (const Matrix4 &src)
 Assumes src is aligned. More...
 
void load (const Matrix4 &src)
 Assumes src is aligned. More...
 
void load (const Matrix4 &src)
 Assumes src is aligned. More...
 
void store (Matrix4 *dst) const
 Assumes dst is aligned. More...
 
void store (Matrix4 *dst) const
 Assumes dst is aligned. More...
 
void store (Matrix4 *dst) const
 Assumes dst is aligned. More...
 
void store4x3 (Matrix4 *dst) const
 Assumes dst is aligned. More...
 
void store4x3 (Matrix4 *dst) const
 Assumes dst is aligned. More...
 
void store4x3 (float *RESTRICT_ALIAS dst) const
 Assumes dst is aligned. More...
 
void store4x3 (float *RESTRICT_ALIAS dst) const
 Assumes dst is aligned. More...
 
void store4x3 (Matrix4 *dst) const
 Assumes dst is aligned. More...
 
void store4x3 (float *RESTRICT_ALIAS dst) const
 Assumes dst is aligned. More...
 
void streamTo4x3 (float *RESTRICT_ALIAS dst) const
 Copies our 4x3 contents using memory write combining when possible. More...
 
void streamTo4x3 (float *RESTRICT_ALIAS dst) const
 Copies our 4x3 contents using memory write combining when possible. More...
 
void streamTo4x3 (float *RESTRICT_ALIAS dst) const
 Copies our 4x3 contents using memory write combining when possible. More...
 

Public Attributes

ArrayReal mChunkBase [12]
 

Static Public Attributes

static const SimpleMatrixAf4x3 IDENTITY
 

Detailed Description

Simple wrap up to load an AoS matrix 4x3 using SSE.

Simple wrap up to load an AoS matrix 4x3 using NEON.

The main reason of this class is to force MSVC to use 3 movaps to load arrays of MatrixAf4x3s (which are waaay more efficient that whatever lea+mov junk it tries to produce)

Definition at line 186 of file C/OgreArrayMatrixAf4x3.h.

Constructor & Destructor Documentation

Ogre::SimpleMatrixAf4x3::SimpleMatrixAf4x3 ( )
inline

Definition at line 191 of file C/OgreArrayMatrixAf4x3.h.

Ogre::SimpleMatrixAf4x3::SimpleMatrixAf4x3 ( Real  m00,
Real  m01,
Real  m02,
Real  m03,
Real  m10,
Real  m11,
Real  m12,
Real  m13,
Real  m20,
Real  m21,
Real  m22,
Real  m23 
)
inline

Definition at line 193 of file C/OgreArrayMatrixAf4x3.h.

Ogre::SimpleMatrixAf4x3::SimpleMatrixAf4x3 ( )
inline

Definition at line 191 of file NEON/Single/OgreArrayMatrixAf4x3.h.

Ogre::SimpleMatrixAf4x3::SimpleMatrixAf4x3 ( ArrayReal  row0,
ArrayReal  row1,
ArrayReal  row2 
)
inline

Definition at line 192 of file NEON/Single/OgreArrayMatrixAf4x3.h.

Ogre::SimpleMatrixAf4x3::SimpleMatrixAf4x3 ( )
inline

Definition at line 191 of file SSE2/Single/OgreArrayMatrixAf4x3.h.

Ogre::SimpleMatrixAf4x3::SimpleMatrixAf4x3 ( ArrayReal  row0,
ArrayReal  row1,
ArrayReal  row2 
)
inline

Definition at line 192 of file SSE2/Single/OgreArrayMatrixAf4x3.h.

Member Function Documentation

void Ogre::SimpleMatrixAf4x3::load ( const Matrix4 src)
inline

Assumes src is aligned.

Definition at line 200 of file NEON/Single/OgreArrayMatrixAf4x3.h.

References Ogre::Matrix4::_m.

void Ogre::SimpleMatrixAf4x3::load ( const Matrix4 src)
inline

Assumes src is aligned.

Definition at line 200 of file SSE2/Single/OgreArrayMatrixAf4x3.h.

References Ogre::Matrix4::_m.

void Ogre::SimpleMatrixAf4x3::load ( const Matrix4 src)
inline

Assumes src is aligned.

Definition at line 215 of file C/OgreArrayMatrixAf4x3.h.

References Ogre::Matrix4::_m.

void Ogre::SimpleMatrixAf4x3::store ( Matrix4 dst) const
inline

Assumes dst is aligned.

Definition at line 208 of file SSE2/Single/OgreArrayMatrixAf4x3.h.

References RESTRICT_ALIAS.

void Ogre::SimpleMatrixAf4x3::store ( Matrix4 dst) const
inline

Assumes dst is aligned.

Definition at line 208 of file NEON/Single/OgreArrayMatrixAf4x3.h.

References RESTRICT_ALIAS.

void Ogre::SimpleMatrixAf4x3::store ( Matrix4 dst) const
inline

Assumes dst is aligned.

Definition at line 227 of file C/OgreArrayMatrixAf4x3.h.

References Ogre::Matrix4::_m.

void Ogre::SimpleMatrixAf4x3::store4x3 ( Matrix4 dst) const
inline

Assumes dst is aligned.

Definition at line 223 of file NEON/Single/OgreArrayMatrixAf4x3.h.

References RESTRICT_ALIAS.

void Ogre::SimpleMatrixAf4x3::store4x3 ( Matrix4 dst) const
inline

Assumes dst is aligned.

Definition at line 223 of file SSE2/Single/OgreArrayMatrixAf4x3.h.

References RESTRICT_ALIAS.

void Ogre::SimpleMatrixAf4x3::store4x3 ( float *RESTRICT_ALIAS  dst) const
inline

Assumes dst is aligned.

Definition at line 233 of file NEON/Single/OgreArrayMatrixAf4x3.h.

void Ogre::SimpleMatrixAf4x3::store4x3 ( float *RESTRICT_ALIAS  dst) const
inline

Assumes dst is aligned.

Definition at line 233 of file SSE2/Single/OgreArrayMatrixAf4x3.h.

void Ogre::SimpleMatrixAf4x3::store4x3 ( Matrix4 dst) const
inline

Assumes dst is aligned.

Definition at line 244 of file C/OgreArrayMatrixAf4x3.h.

References Ogre::Matrix4::_m.

void Ogre::SimpleMatrixAf4x3::store4x3 ( float *RESTRICT_ALIAS  dst) const
inline

Assumes dst is aligned.

Definition at line 256 of file C/OgreArrayMatrixAf4x3.h.

void Ogre::SimpleMatrixAf4x3::streamTo4x3 ( float *RESTRICT_ALIAS  dst) const
inline

Copies our 4x3 contents using memory write combining when possible.

Definition at line 241 of file SSE2/Single/OgreArrayMatrixAf4x3.h.

void Ogre::SimpleMatrixAf4x3::streamTo4x3 ( float *RESTRICT_ALIAS  dst) const
inline

Copies our 4x3 contents using memory write combining when possible.

Definition at line 241 of file NEON/Single/OgreArrayMatrixAf4x3.h.

void Ogre::SimpleMatrixAf4x3::streamTo4x3 ( float *RESTRICT_ALIAS  dst) const
inline

Copies our 4x3 contents using memory write combining when possible.

Definition at line 268 of file C/OgreArrayMatrixAf4x3.h.

Member Data Documentation

static const SimpleMatrixAf4x3 Ogre::SimpleMatrixAf4x3::IDENTITY
static

Definition at line 279 of file C/OgreArrayMatrixAf4x3.h.

ArrayReal Ogre::SimpleMatrixAf4x3::mChunkBase

Definition at line 189 of file C/OgreArrayMatrixAf4x3.h.


The documentation for this class was generated from the following file: