/////////////////////////////////////////////////////////////////////////////// // // ## ###### // ###### ### // ## ############### Shark 3D Engine (www.shark3d.com) // ########## # # # // ######## Copyright (c) 1996-2006 Spinor GmbH. // ######### # # # All rights reserved. // ## ########## // ## // /////////////////////////////////////////////////////////////////////////////// //@cpp #ifndef S3D_DRV_D3D9_VERTDECL_H #define S3D_DRV_D3D9_VERTDECL_H #include "drv_d3d9_types.h" /////////////////////////////////////////////////////////////////////////////// //@ struct s3d_CDrvD3d9VertElemObj : public s3d_CUtilPtrBase { s3d_CSysIntps m_VertElemCnt; s3d_CUtilOwnArray m_VertElemArray; }; //@ typedef s3d_CUtilPtr s3d_CDrvD3d9VertElemObjPtr; /////////////////////////////////////////////////////////////////////////////// //@ struct s3d_CDrvD3d9VertElemObjRef { s3d_CSysIntps m_VertElemCnt; D3DVERTEXELEMENT9 *m_VertElemArray; }; /////////////////////////////////////////////////////////////////////////////// //@ struct s3d_CDrvD3d9VertElemObjKey { s3d_CDrvD3d9VertElemObjPtr m_VertElemObj; int Compare(const s3d_CDrvD3d9VertElemObjKey &k) const; bool operator==(const s3d_CDrvD3d9VertElemObjKey &k) const; bool operator<(const s3d_CDrvD3d9VertElemObjKey &k) const; static int Compare( const s3d_CDrvD3d9VertElemObj *VertDeclObj, const s3d_CDrvD3d9VertElemObjRef &Ref); }; /////////////////////////////////////////////////////////////////////////////// S3D_SYS_INLINE int s3d_CDrvD3d9VertElemObjKey::Compare( const s3d_CDrvD3d9VertElemObjKey &k) const { s3d_CDrvD3d9VertElemObjRef ElemObjRef; ElemObjRef.m_VertElemCnt = k.m_VertElemObj->m_VertElemCnt; ElemObjRef.m_VertElemArray = k.m_VertElemObj->m_VertElemArray; return s3d_CDrvD3d9VertElemObjKey::Compare(m_VertElemObj, ElemObjRef); }; S3D_SYS_INLINE bool s3d_CDrvD3d9VertElemObjKey::operator==( const s3d_CDrvD3d9VertElemObjKey &k) const { return Compare(k) == 0; }; S3D_SYS_INLINE bool s3d_CDrvD3d9VertElemObjKey::operator<( const s3d_CDrvD3d9VertElemObjKey &k) const { return Compare(k) < 0; }; /////////////////////////////////////////////////////////////////////////////// S3D_SYS_INLINE bool operator==( const s3d_CDrvD3d9VertElemObjKey &VertDeclObj, const s3d_CDrvD3d9VertElemObjRef &Ref) { return s3d_CDrvD3d9VertElemObjKey::Compare( VertDeclObj.m_VertElemObj, Ref) == 0; } S3D_SYS_INLINE bool operator<( const s3d_CDrvD3d9VertElemObjKey &VertDeclObj, const s3d_CDrvD3d9VertElemObjRef &Ref) { return s3d_CDrvD3d9VertElemObjKey::Compare( VertDeclObj.m_VertElemObj, Ref) < 0; } /////////////////////////////////////////////////////////////////////////////// #endif