⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wmlshaderconst.inl

📁 3D Game Engine Design Source Code非常棒
💻 INL
字号:
// Magic Software, Inc.
// http://www.magic-software.com
// http://www.wild-magic.com
// Copyright (c) 2003.  All Rights Reserved
//
// The Wild Magic Library (WML) source code is supplied under the terms of
// the license agreement http://www.magic-software.com/License/WildMagic.pdf
// and may not be copied or disclosed except in accordance with the terms of
// that agreement.

//----------------------------------------------------------------------------
inline int ShaderConst::GetRegister () const
{
    return m_iRegister;
}
//----------------------------------------------------------------------------
inline const float* ShaderConst::GetData () const
{
    return m_afData;
}
//----------------------------------------------------------------------------
inline float* ShaderConst::GetData ()
{
    return m_afData;
}
//----------------------------------------------------------------------------
inline int ShaderConst::GetSize () const
{
    return m_iSize;
}
//----------------------------------------------------------------------------
inline StateConstantType ShaderConst::GetType () const
{
    return m_iType;
}
//----------------------------------------------------------------------------
inline int ShaderConst::GetTypeOption () const
{
    return m_iTypeOption;
}
//----------------------------------------------------------------------------
inline void ShaderConst::SetRegister (int iRegister)
{
    m_iRegister = iRegister;
}
//----------------------------------------------------------------------------
inline void ShaderConst::SetData (const float* afData)
{
    memcpy(m_afData,afData,sizeof(float)*4*m_iSize);
}
//----------------------------------------------------------------------------
inline void ShaderConst::SetData (const Vector2f& rkData)
{
    m_afData[0] = rkData.X();
    m_afData[1] = rkData.Y();
}
//----------------------------------------------------------------------------
inline void ShaderConst::SetData (const Vector3f& rkData)
{
    m_afData[0] = rkData.X();
    m_afData[1] = rkData.Y();
    m_afData[2] = rkData.Z();
}
//----------------------------------------------------------------------------
inline void ShaderConst::SetData (const Vector4f& rkData)
{
    m_afData[0] = rkData.X();
    m_afData[1] = rkData.Y();
    m_afData[2] = rkData.Z();
    m_afData[3] = rkData.W();
}
//----------------------------------------------------------------------------
inline void ShaderConst::SetData (const Matrix4f& rkData)
{
    assert( m_iSize >= 4 );

    m_afData[ 0] = rkData[0][0];
    m_afData[ 1] = rkData[0][1];
    m_afData[ 2] = rkData[0][2];
    m_afData[ 3] = rkData[0][3];

    m_afData[ 4] = rkData[1][0];
    m_afData[ 5] = rkData[1][1];
    m_afData[ 6] = rkData[1][2];
    m_afData[ 7] = rkData[1][3];

    m_afData[ 8] = rkData[2][0];
    m_afData[ 9] = rkData[2][1];
    m_afData[10] = rkData[2][2];
    m_afData[11] = rkData[2][3];

    m_afData[12] = rkData[3][0];
    m_afData[13] = rkData[3][1];
    m_afData[14] = rkData[3][2];
    m_afData[15] = rkData[3][3];
}
//----------------------------------------------------------------------------
inline void ShaderConst::SetData (float fX, float fY, float fZ, float fW)
{
    m_afData[0] = fX;
    m_afData[1] = fY;
    m_afData[2] = fZ;
    m_afData[3] = fW;
}
//----------------------------------------------------------------------------
inline void ShaderConst::SetSize (int iSize)
{
    delete[] m_afData;
    m_afData = new float[4*iSize];
}
//----------------------------------------------------------------------------
inline void ShaderConst::SetType (StateConstantType iType)
{
    m_iType = iType;
}
//----------------------------------------------------------------------------
inline void ShaderConst::SetTypeOption (int iTypeOption)
{
    m_iTypeOption = iTypeOption;
}
//----------------------------------------------------------------------------
inline bool ShaderConst::NameMatches (const char* acConstantName) const
{
    if ( ( !m_acConstantName ) || ( !acConstantName ) )
        return false;

    return ( !strcmp(acConstantName,m_acConstantName) );
}
//----------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -