Exemple #1
0
    void Effect::SetParam(const string& name, I32 data) {
        auto it = scalarVars.find(name);
        _ASSERT(it != scalarVars.end());

        ID3DX11EffectScalarVariable* scalarVar = it->second;
        DXCall(scalarVar->SetInt(data));
    }
Exemple #2
0
    void Effect::SetParam(const string& name, const I32* data, U32 offset, U32 count) {
        auto it = scalarVars.find(name);
        _ASSERT(it != scalarVars.end());

        ID3DX11EffectScalarVariable* scalarVar = it->second;
        DXCall(scalarVar->SetIntArray(data, offset, count));
    }
Exemple #3
0
    void Effect::SetParam(const string& name, const bool* data, U32 offset, U32 count) {
        auto it = scalarVars.find(name);
        _ASSERT(it != scalarVars.end());

        ID3DX11EffectScalarVariable* pScalarVar = it->second;
        DXCall(pScalarVar->SetBoolArray((BOOL*)data, offset, count));
    }
Exemple #4
0
    void Effect::SetParam(const string& name, bool data) {
        auto it = scalarVars.find(name);
        _ASSERT(it != scalarVars.end());

        ID3DX11EffectScalarVariable* scalarVar = it->second;
        DXCall(scalarVar->SetBool(static_cast<BOOL>(data)));
    }
Exemple #5
0
 void Effect::AddVariable(ID3DX11EffectVariable* var, const D3DX11_EFFECT_VARIABLE_DESC* varDesc, const D3DX11_EFFECT_TYPE_DESC* typeDesc) {
     _ASSERT(var && varDesc && typeDesc);
     switch (typeDesc->Class) {
         case D3D_SVC_SCALAR : {
             ID3DX11EffectScalarVariable* scalarVar = var->AsScalar();
             _ASSERT(scalarVar->IsValid());
             scalarVars[varDesc->Name] = scalarVar;
             break;
         }
         case D3D_SVC_VECTOR : {
             ID3DX11EffectVectorVariable* vectorVar = var->AsVector();
             _ASSERT(vectorVar->IsValid());
             vectorVars[varDesc->Name] = vectorVar;
             break;
         }
         case D3D_SVC_MATRIX_COLUMNS:
         case D3D_SVC_MATRIX_ROWS: {
             ID3DX11EffectMatrixVariable* matrixVar = var->AsMatrix();
             _ASSERT(matrixVar->IsValid());
             matrixVars[varDesc->Name] = matrixVar;
             break;
         }
         case D3D_SVC_STRUCT: structVars[varDesc->Name] = var;
             break;
         case D3D_SVC_OBJECT: {
             ID3DX11EffectShaderResourceVariable* resourceVar = var->AsShaderResource();
             if (resourceVar->IsValid()) {
                 resourceVars[varDesc->Name] = resourceVar;
             }
             break;
         }
         default:
             _ASSERT(false);
     }
 }
Exemple #6
0
bool CD3DEffect::SetScalar(LPCSTR handle, float value)
{
  if (m_effect)
  {
    ID3DX11EffectScalarVariable* scalar = m_effect->GetVariableByName(handle)->AsScalar();
    if (scalar->IsValid())
      return (S_OK == scalar->SetFloat(value));
  }

  return false;
}
void EffectSystemD3D11::UpdateInt(int effectID, const char *name, int data)
{
	ID3DX11EffectScalarVariable *integerVariable = mEffects[effectID]->GetVariableByName(name)->AsScalar();
	if (integerVariable->IsValid())
	{
		integerVariable->SetInt(data);
	}
	else
	{
		LogSystem::GetInstance().Log("effect integer「%s」非法", name);
		return;
	}
}
Exemple #8
0
void BoxApp::UpdateScene(float dt)
{
	// Convert Spherical to Cartesian coordinates.
	float x = mRadius*sinf(mPhi)*cosf(mTheta);
	float z = mRadius*sinf(mPhi)*sinf(mTheta);
	float y = mRadius*cosf(mPhi);

	// Build the view matrix.
	XMVECTOR pos    = XMVectorSet(x, y, z, 1.0f);
	XMVECTOR target = XMVectorZero();
	XMVECTOR up     = XMVectorSet(0.0f, 1.0f, 0.0f, 0.0f);

	XMMATRIX V = XMMatrixLookAtLH(pos, target, up);
	XMStoreFloat4x4(&mView, V);


	mfxTimeVar->SetFloat(mTimer.TotalTime());
}