//----------------------------------------------------------------------------- // Purpose: // Input : pDC - // dstRect - // detectErrors - //----------------------------------------------------------------------------- void CMaterial::DrawBrowserIcons( CDC *pDC, RECT& dstRect, bool detectErrors ) { static CMaterial* pTranslucentIcon = 0; static CMaterial* pOpaqueIcon = 0; static CMaterial* pSelfIllumIcon = 0; static CMaterial* pBaseAlphaEnvMapMaskIcon = 0; static CMaterial* pErrorIcon = 0; if (!pTranslucentIcon) { pTranslucentIcon = CreateMaterial("editor/translucenticon", true); pOpaqueIcon = CreateMaterial("editor/opaqueicon", true); pSelfIllumIcon = CreateMaterial("editor/selfillumicon", true); pBaseAlphaEnvMapMaskIcon = CreateMaterial("editor/basealphaenvmapmaskicon", true); pErrorIcon = CreateMaterial("editor/erroricon", true); Assert( pTranslucentIcon && pOpaqueIcon && pSelfIllumIcon && pBaseAlphaEnvMapMaskIcon && pErrorIcon ); } bool error = false; IMaterial* pMaterial = GetMaterial(); if ( pMaterial->GetMaterialVarFlag( MATERIAL_VAR_TRANSLUCENT ) ) { DrawIcon( pDC, pTranslucentIcon, dstRect ); if (detectErrors) { error = error || !m_TranslucentBaseTexture; } } else { DrawIcon( pDC, pOpaqueIcon, dstRect ); } if ( pMaterial->GetMaterialVarFlag( MATERIAL_VAR_SELFILLUM )) { DrawIcon( pDC, pSelfIllumIcon, dstRect ); if (detectErrors) { error = error || !m_TranslucentBaseTexture; } } if ( pMaterial->GetMaterialVarFlag( MATERIAL_VAR_BASEALPHAENVMAPMASK )) { DrawIcon( pDC, pBaseAlphaEnvMapMaskIcon, dstRect ); if (detectErrors) { error = error || !m_TranslucentBaseTexture; } } if (error) { DrawIcon( pDC, pErrorIcon, dstRect ); } }