ScalingEffect::ScalingEffect(LPDIRECT3DDEVICE9 pd3dDevice) : m_scale(0.0f), m_forceupdate(false), m_pd3dDevice(pd3dDevice), m_pEffect(0) { m_iDim[0] = m_iDim[1] = 256.0f; // Some sane default m_strName = "Unnamed"; KillThis(); }
HRESULT ScalingEffect::LoadEffect(const TCHAR *filename) { KillThis(); LPD3DXBUFFER lpBufferEffect = 0; LPD3DXBUFFER lpErrors = 0; LPD3DXEFFECTCOMPILER lpEffectCompiler = 0; m_strErrors += filename; m_strErrors += ":\n"; // First create an effect compiler HRESULT hr = D3DXCreateEffectCompilerFromFile(filename, NULL, NULL,NULL, &lpEffectCompiler, &lpErrors); // Errors... if(FAILED(hr)) { if(lpErrors) { m_strErrors += (char*) lpErrors->GetBufferPointer(); SAFE_RELEASE(lpErrors); } m_strErrors += "Unable to create effect compiler from "; m_strErrors += filename; } if(SUCCEEDED(hr)) { #ifdef C_D3DSHADERS_COMPILE_WITH_DEBUG hr = lpEffectCompiler->CompileEffect(D3DXSHADER_DEBUG, &lpBufferEffect, &lpErrors); #else hr = lpEffectCompiler->CompileEffect(0, &lpBufferEffect, &lpErrors); #endif // Errors... if(FAILED(hr)) { if(lpErrors) { m_strErrors += (char*) lpErrors->GetBufferPointer(); SAFE_RELEASE(lpErrors); } m_strErrors += "Unable to compile effect from "; m_strErrors += filename; } } if(SUCCEEDED(hr)) { hr = D3DXCreateEffect(m_pd3dDevice, lpBufferEffect->GetBufferPointer(), lpBufferEffect->GetBufferSize(), NULL, NULL, 0, NULL, &m_pEffect, &lpErrors); // Errors... if(FAILED(hr)) { if(lpErrors) { m_strErrors += (char*) lpErrors->GetBufferPointer(); SAFE_RELEASE(lpErrors); } m_strErrors += "Unable to create effect from compiled "; m_strErrors += filename; } } if(SUCCEEDED(hr)) { m_pEffect->GetDesc(&m_EffectDesc); hr = ParseParameters(lpEffectCompiler); } SAFE_RELEASE(lpErrors); SAFE_RELEASE(lpBufferEffect); SAFE_RELEASE(lpEffectCompiler); return hr; }
ScalingEffect::~ScalingEffect(void) { KillThis(); }
ScalingEffect::ScalingEffect(LPDIRECT3DDEVICE9 pd3dDevice) : m_scale(0.0f), m_pd3dDevice(pd3dDevice), m_pEffect(0) { m_strName = "Unnamed"; KillThis(); }