※ ChatGPTを利用し、要約された質問です(原文:描画について)
サイズを綺麗に描画したいのですが(サイズの範囲(rightとbottom)が微妙にずれている)どうしたら描画できるでしょうか?
このQ&Aのポイント
サイズを綺麗に描画する方法について相談です。サイズの範囲(rightとbottom)が微妙にずれている場合、どうすれば描画できるでしょうか?
サイズの範囲(rightとbottom)が微妙にずれている場合、描画を綺麗に行う方法について質問です。
描画する際にサイズの範囲(rightとbottom)が微妙にずれている場合、どのように対処すれば綺麗に描画できるのか教えてください。
サイズを綺麗に描画したいのですが(サイズの範囲(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;
}
よろしくお願いします。
お礼
回答ありがとうございます。わかりました。 あのまた質問なのですが、また描画されなくなりました。今度は別の方法で描画しようとしたのですが。できません。ソースはこれです。 問題と思われるところを載せます。 / レンダリング・テクスチャのフォーマット選択 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; } ご教授よろしくお願いします。