インターフェイスを含むコードを関数にしようとしたのですが
うまく動いてくれません。
これを
ID3DXSprite*g_pSprite;//グローバル
HRESULT CreateSplite(LPCTSTR lpszFilename)
{
HRESULT hr = S_FALSE;
UINT uLevel = 0;
IDirect3DSurface9* pSurface = NULL;
// スプライト情報の生成
if (SUCCEEDED(hr))
hr = ::D3DXCreateSprite(g_pd3dDevice, &spr);//g_pSpriteが含まれる
if (SUCCEEDED(hr))
hr = ::D3DXCreateTextureFromFile(g_pd3dDevice, lpszFilename, &g_pTexture);
if (SUCCEEDED(hr))
hr = g_pTexture->GetSurfaceLevel(uLevel, &pSurface);
// サーフェイス取得
if (SUCCEEDED(hr))
hr = pSurface->GetDesc(&g_sSurfaceInfo);
if (pSurface != NULL)
pSurface->Release();
pSurface = NULL;
// 失敗したら破棄
if (FAILED(hr))
DestroySplite(g_pSprite);
return hr;
}
ID3DXSprite*g_pSprite;//グローバル
HRESULT CreateSplite(LPCTSTR lpszFilename,ID3DXSprite* spr)
{
HRESULT hr = S_FALSE;
UINT uLevel = 0;
IDirect3DSurface9* pSurface = NULL;
// スプライト情報の生成
if (SUCCEEDED(hr))
hr = ::D3DXCreateSprite(g_pd3dDevice, &spr);//g_pSpriteが含まれる
if (SUCCEEDED(hr))
hr = ::D3DXCreateTextureFromFile(g_pd3dDevice, lpszFilename, &g_pTexture);
if (SUCCEEDED(hr))
hr = g_pTexture->GetSurfaceLevel(uLevel, &pSurface);
// サーフェイス取得
if (SUCCEEDED(hr))
hr = pSurface->GetDesc(&g_sSurfaceInfo);
if (pSurface != NULL)
pSurface->Release();
pSurface = NULL;
// 失敗したら破棄
if (FAILED(hr))
DestroySplite(spr);
return hr;
}
ここを関数にした途端、そのあとにある でエラーが表示されます。おそらく正しく参照できてないのだと思うのですが、
どこを直せばよいでしょうか。
よろしくお願いします。
ソースコードです。88行目にCreateSprite関数があります
http://www1.axfc.net/uploader/so/2682100