📄 decaleffect.cpp
字号:
// DecalEffect.cpp: implementation of the CDecalEffect class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "DecalEffect.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
// FootMark Nomal
//////////////////////////////////////////////////////////////////////////
CFootMark::CFootMark()
{
m_vbDecal = NULL;
m_ibDecal = NULL;
m_pTexDecal = NULL;
}
CFootMark::~CFootMark()
{
InvalidateDeviceObjects();
}
HRESULT CFootMark::LoadTexture(const char *strTextureFilename)
{
HRESULT hr = S_OK;
// Create the texture using D3DX
// hr = D3DXCreateTextureFromFileEx( g_pApp->GetD3dDevice(), "",
// D3DX_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, D3DFMT_UNKNOWN,
// D3DPOOL_DEFAULT, D3DX_FILTER_TRIANGLE|D3DX_FILTER_MIRROR,
// D3DX_FILTER_TRIANGLE|D3DX_FILTER_MIRROR, 0, NULL, NULL, &m_pTexDecal );
hr = D3DXCreateTextureFromFileEx( g_pApp->GetD3dDevice(), "",
D3DX_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, D3DFMT_UNKNOWN,
MEMORY_POOL, D3DX_FILTER_TRIANGLE|D3DX_FILTER_MIRROR,
D3DX_FILTER_TRIANGLE|D3DX_FILTER_MIRROR, 0, NULL, NULL, &m_pTexDecal );
if( FAILED(hr) )
return E_FAIL;
return S_OK;
}
HRESULT CFootMark::Create()
{
HRESULT hr = g_pApp->GetD3dDevice()->CreateIndexBuffer( 3 * sizeof(WORD),
D3DUSAGE_WRITEONLY, D3DFMT_INDEX16, D3DPOOL_DEFAULT, &m_ibDecal, NULL );
if( FAILED(hr) )
return E_FAIL;
hr = g_pApp->GetD3dDevice()->CreateVertexBuffer( 4*sizeof(VERTEX_DECAL),
D3DUSAGE_DYNAMIC|D3DUSAGE_WRITEONLY, D3DFVF_DECAL,D3DPOOL_DEFAULT, &m_vbDecal, NULL);
if( FAILED(hr) )
return E_FAIL;
// 技泼 窍技..
m_fLifeTime = 2.0f;
return S_OK;
}
HRESULT CFootMark::RestoreDeviceObjects()
{
HRESULT hr = S_OK;
hr = D3DXCreateTextureFromFileEx( g_pApp->GetD3dDevice(), "",
D3DX_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, D3DFMT_UNKNOWN,
D3DPOOL_DEFAULT, D3DX_FILTER_TRIANGLE|D3DX_FILTER_MIRROR,
D3DX_FILTER_TRIANGLE|D3DX_FILTER_MIRROR, 0, NULL, NULL, &m_pTexDecal );
if( FAILED(hr) )
return E_FAIL;
hr = g_pApp->GetD3dDevice()->CreateIndexBuffer( 3 * sizeof(WORD),
D3DUSAGE_WRITEONLY, D3DFMT_INDEX16, D3DPOOL_DEFAULT, &m_ibDecal, NULL );
if( FAILED(hr) )
return E_FAIL;
hr = g_pApp->GetD3dDevice()->CreateVertexBuffer( 4*sizeof(VERTEX_DECAL),
D3DUSAGE_DYNAMIC|D3DUSAGE_WRITEONLY, D3DFVF_DECAL,D3DPOOL_DEFAULT, &m_vbDecal, NULL);
if( FAILED(hr) )
return E_FAIL;
return S_OK;
}
void CFootMark::InvalidateDeviceObjects()
{
SAFE_RELEASE( m_vbDecal );
SAFE_RELEASE( m_ibDecal );
SAFE_RELEASE( m_pTexDecal );
}
HRESULT CFootMark::Update( float fElapsedTime )
{
m_fLifeTime -= fElapsedTime;
if(m_fLifeTime <= 0.0f){ // 角犁风绰 磷咯具.. 搭铂..? // 困摹唱 葛 备繁巴代.. 贸府..
m_fLifeTime = 2.0f;
//m_fCurrentSize = m_fEmitterSize;
return E_FAIL;
}
return S_OK;
}
HRESULT CFootMark::Render()
{
return S_OK;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -