電子書籍の厳選無料作品が豊富!

サイズを綺麗に描画したいのですが(サイズの範囲(rightとbottom)が微妙にずれている)どうしたら描画できるでしょうか?
ここら辺かな?と思うところを載せます。
HRESULT ReadBMP(ID3DXSprite** g_pSprite,LPCTSTR lpszFilename,DDXTEX* g_pTexture)
{
HRESULT hr = S_FALSE;
UINT uLevel = 0;
IDirect3DSurface9* pSurface = NULL;

lstrcpy(g_pTexture->m_Filename,lpszFilename);
g_pTexture->m_clrAlpha=g_colorKey;
g_pTexture->m_pTexture=NULL;
// スプライト情報の生成
if (SUCCEEDED(hr))
hr = ::D3DXCreateSprite(g_pd3dDevice, g_pSprite);
if (SUCCEEDED(hr))
hr = ::D3DXCreateTextureFromFileEx(g_pd3dDevice, g_pTexture->m_Filename,
680, 460, 1, D3DUSAGE_RENDERTARGET, D3DFMT_UNKNOWN,
D3DPOOL_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT,
g_pTexture->m_clrAlpha, NULL, NULL, &g_pTexture->m_pTexture);
if (SUCCEEDED(hr))
hr = g_pTexture->m_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,g_pTexture);

return hr;
}
よろしくお願いします。

A 回答 (2件)

 こんにちは。

御礼頂きました。

 タイトルバーの事です(赤い枠内)。
「描画について」の回答画像2
    • good
    • 0
この回答へのお礼

回答ありがとうございます。わかりました。
あのまた質問なのですが、また描画されなくなりました。今度は別の方法で描画しようとしたのですが。できません。ソースはこれです。
問題と思われるところを載せます。
/ レンダリング・テクスチャのフォーマット選択
static HRESULT SelectRenderTexterFormat(UINT adapter,D3DDEVTYPE device,D3DDISPLAYMODE dmode)
{
const D3DFORMAT c_fmtRenderTexter[]={ D3DFMT_X8R8G8B8, D3DFMT_X1R5G5B5, D3DFMT_R5G6B5 };

HRESULT hr=E_FAIL;

g_fmtRenderTexterWnd=D3DFMT_UNKNOWN;
for(int i=0;i<sizeof(c_fmtRenderTexter)/sizeof(c_fmtRenderTexter[0]);i++)
{
hr=g_pD3D->CheckDeviceFormat(adapter,device,
dmode.Format,D3DUSAGE_RENDERTARGET,D3DRTYPE_TEXTURE,c_fmtRenderTexter[i]);
if(SUCCEEDED(hr))
{
if(FMT_DEPTHSTENCIL != D3DFMT_UNKNOWN)
{
hr=g_pD3D->CheckDepthStencilMatch(adapter,device,
dmode.Format,c_fmtRenderTexter[i],FMT_DEPTHSTENCIL);
if(FAILED(hr)) continue;
}
g_fmtRenderTexterWnd=c_fmtRenderTexter[i];
break;
}
}
if(FAILED(hr)) return DXTRACE_ERR_MSGBOX(_T("SelectRenderTexterFormat Window"),hr);

g_fmtRenderTexterFull=D3DFMT_UNKNOWN;
for(int i=0;i<sizeof(c_fmtRenderTexter)/sizeof(c_fmtRenderTexter[0]);i++)
{
hr=g_pD3D->CheckDeviceFormat(adapter,device,
g_D3DPPFull.BackBufferFormat,D3DUSAGE_RENDERTARGET,D3DRTYPE_TEXTURE,c_fmtRenderTexter[i]);
if(SUCCEEDED(hr))
{
if(FMT_DEPTHSTENCIL != D3DFMT_UNKNOWN)
{
hr=g_pD3D->CheckDepthStencilMatch(adapter,device,
g_D3DPPFull.BackBufferFormat,c_fmtRenderTexter[i],FMT_DEPTHSTENCIL);
if(FAILED(hr)) continue;
}
g_fmtRenderTexterFull=c_fmtRenderTexter[i];
break;
}
}
if(FAILED(hr)) return DXTRACE_ERR_MSGBOX(_T("SelectRenderTexterFormat Full"),hr);

return S_OK;
}
ご教授よろしくお願いします。

お礼日時:2009/04/16 07:41

 こんにちは。



 スケーリングがオカシイのかも知れません。
 質問に乗せている以外の部分に成りますが、以前に御拝借したソース内で、

 //ウィンドウサイズにスプライトの大きさをあわせる

 となっている部分に

 GetWindowRect()

 が使用されていますが、此れだとキャプションバー等も含めてしまう為、サイズが微妙に膨らんでしまいます。

 GetClientRect()

 に変更して見て下さい。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。無事に処理することができました。それとキャプションバーとはなんなのでしょうか?

お礼日時:2009/04/15 18:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!