if(m_pCEffect->IsChangeably())
{
#ifdef USE_MGR
m_pCEffect->Begin();
#endif
m_pCEffectFile->SetTechnique(3);
m_pCEffectFile->Begin(D3DXFX_DONOTSAVESTATE);
m_pCEffectFile->Pass(0);
m_pCEffect->m_pDev->SetSamplerStateForced(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
m_pCEffect->m_pDev->SetSamplerStateForced(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
if(!m_pCEffect->IsAlpah())
{
m_pCEffect->m_pDev->SetRenderStateForced(D3DRS_ALPHABLENDENABLE, FALSE);
m_pCEffect->m_pDev->SetRenderStateForced(D3DRS_ZWRITEENABLE, TRUE);
}
else
{
m_pCEffect->m_pDev->SetRenderStateForced(D3DRS_ZWRITEENABLE, FALSE);
m_pCEffect->m_pDev->SetRenderStateForced(D3DRS_ALPHABLENDENABLE, TRUE);
}
m_pCEffect->m_pDev->SetVertexShader(NULL);
m_pCEffect->m_pDev->SetFVF(EFFECT_VER_FVF);
m_pCEffect->SetTexture();
if(m_bBindbone)
{
D3DXMatrixMultiply(&m_pCurCortrol->m_SMatResult, &m_SMatResult, &m_SpmatBone);
#ifdef USE_RENDER
m_pCEffect->m_pDev->SetTransformWorld( &m_pCurCortrol->m_SMatResult);
#else
m_pCEffect->m_pDev->SetTransform(D3DTS_WORLDMATRIX(0), &m_pCurCortrol->m_SMatResult);
#endif
}
else
{
#ifdef USE_RENDER
m_pCEffect->m_pDev->SetTransformWorld( &m_SMatResult);
#else
m_pCEffect->m_pDev->SetTransform(D3DTS_WORLDMATRIX(0), &m_SMatResult);
#endif
}
m_pCEffect->m_pDev->SetRenderState(D3DRS_TEXTUREFACTOR, m_pCurCortrol->m_dwCurColor);
m_pCEffect->m_pDev->SetTextureStageStateForced(0, D3DTSS_COLORARG2, D3DTA_TFACTOR);
m_pCEffect->m_pDev->SetTextureStageStateForced(0, D3DTSS_ALPHAARG2, D3DTA_TFACTOR);
m_pCEffect->Render();
#ifdef USE_MGR
m_pCEffect->End();
#endif
m_pCEffectFile->End();
m_pCEffect->m_pDev->SetRenderState(D3DRS_TEXTUREFACTOR, D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f));
m_pCEffect->m_pDev->SetTextureStageStateForced(0, D3DTSS_COLORARG2, D3DTA_TEXTURE);
m_pCEffect->m_pDev->SetTextureStageStateForced(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
continue;
}
#ifdef USE_MGR
m_pCEffect->Begin();
#endif
m_pCEffectFile->SetTechnique(m_iIdxTech);
m_pCEffectFile->Begin(D3DXFX_DONOTSAVESTATE);
m_pCEffectFile->Pass(0);
if(!m_pCEffect->IsAlpah())
{
m_pCEffect->m_pDev->SetRenderStateForced(D3DRS_ALPHABLENDENABLE, FALSE);
m_pCEffect->m_pDev->SetRenderStateForced(D3DRS_ZWRITEENABLE, TRUE);
}
else
{
m_pCEffect->m_pDev->SetRenderStateForced(D3DRS_ZWRITEENABLE, FALSE);
m_pCEffect->m_pDev->SetRenderStateForced(D3DRS_ALPHABLENDENABLE, TRUE);
}
m_pCEffect->m_pDev->SetVertexShader(NULL);
m_pCEffect->m_pDev->SetFVF(EFFECT_VER_FVF);
m_pCEffect->SetTexture();
if(m_pCEffect->IsBillBoard())
{
if(!m_bUseZ)
m_pCEffect->m_pDev->SetRenderState(D3DRS_ZENABLE, FALSE);
D3DXVECTOR3 vtpos(&m_SMatResult._41);
if(!m_pCEffect->IsRotaBoard())
D3DXMatrixIdentity(&m_SMatResult);
D3DXMatrixMultiply(&m_SMatResult,&m_SMatResult,m_pCEffect->getBillBoardMatrix());
if(m_bBindbone)
{
m_SMatResult._41 = m_SpmatBone._41;
m_SMatResult._42 = m_SpmatBone._42;
m_SMatResult._43 = m_SpmatBone._43;
}
else
{
m_SMatResult._41 = vtpos.x;
m_SMatResult._42 = vtpos.y;
m_SMatResult._43 = vtpos.z;
}
}else
{
if(m_bBindbone)
D3DXMatrixMultiply(&m_SMatResult, &m_SMatResult, &m_SpmatBone);
}
if(m_pCEffect->getType() != EFFECT_MODEL)
{
if(m_pCEffect->getType() == EFFECT_MODELUV)
{
m_pCurCortrol->FillModelUVSoft(m_pCEffect->m_pCModel);
}
else
{
m_pCurCortrol->FillTextureUVSoft(m_pCEffect->m_pCModel);
}
}
m_pCEffect->m_pDev->SetRenderState(D3DRS_TEXTUREFACTOR, m_pCurCortrol->m_dwCurColor);
m_pCEffect->m_pDev->SetTextureStageStateForced(0, D3DTSS_COLORARG2, D3DTA_TFACTOR);
m_pCEffect->m_pDev->SetTextureStageStateForced(0, D3DTSS_ALPHAARG2, D3DTA_TFACTOR);
#ifdef USE_RENDER
m_pCEffect->m_pDev->SetTransformWorld(&m_SMatResult);
#else
m_pCEffect->m_pDev->SetTransform(D3DTS_WORLDMATRIX(0), &m_SMatResult);
#endif
m_pCEffect->Render();
#ifdef USE_MGR
m_pCEffect->End();
#endif
m_pCEffect->m_pDev->SetTextureStageStateForced(0, D3DTSS_COLORARG2, D3DTA_TEXTURE);
m_pCEffect->m_pDev->SetTextureStageStateForced(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
m_pCEffectFile->End();
}
}