![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
サイズを綺麗に描画したいのですが(サイズの範囲(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;
}
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
こんにちは。
御礼頂きました。タイトルバーの事です(赤い枠内)。
![「描画について」の回答画像2](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/3/616502_5497df14477e9/M.jpg)
回答ありがとうございます。わかりました。
あのまた質問なのですが、また描画されなくなりました。今度は別の方法で描画しようとしたのですが。できません。ソースはこれです。
問題と思われるところを載せます。
/ レンダリング・テクスチャのフォーマット選択
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;
}
ご教授よろしくお願いします。
No.1
- 回答日時:
こんにちは。
スケーリングがオカシイのかも知れません。
質問に乗せている以外の部分に成りますが、以前に御拝借したソース内で、
//ウィンドウサイズにスプライトの大きさをあわせる
となっている部分に
GetWindowRect()
が使用されていますが、此れだとキャプションバー等も含めてしまう為、サイズが微妙に膨らんでしまいます。
GetClientRect()
に変更して見て下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- カスタマイズ(車) C-HR ホイールサイズについて!! 2 2022/10/20 07:59
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Excel(エクセル) Formulaプロパティーを使ってセルに数式を組んだのですが簡潔にしたい。 3 2022/08/21 20:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windowのちらつき防止
-
C++にて、塗りつぶされた円を描...
-
word
-
CS_HREDRAW|CS_VREDRAWについて
-
OneNote 2010 文字と描画がずれる
-
MFCのタイマーのつかい方を教え...
-
VB.netでのライン描画方法がわ...
-
Minecraft 統合版(PC)の描画距...
-
TextBoxに文字を書いても表示さ...
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
エクセルで作った新しいウイン...
-
フォームでPDFを表示させた...
-
Alt+P,Alt+NをPostmessageで送...
-
勝手にウィンドウが開いて止ま...
-
ゲームでは結局どっちが良いの?
-
VB6でシャットダウン、ログオフ...
-
「アイテムは収集されました」...
-
コンボボックス内の文字サイズ変更
-
エクセル VBA 「Sub Auto_Open(...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MFCでOnPaintのタイミング
-
[VB.net] DataGridViewの列ヘッ...
-
word
-
NVIDIAのシェーダーキャッシュ
-
TextBoxに文字を書いても表示さ...
-
UpdateData( FALSE); による文...
-
VB6,リストボックスの特定行の...
-
PCで「使用可能な場合はグラフ...
-
VC++プログラムをつかったBMP画...
-
VBAにGDI+を参照させる方法
-
FlexGridの一部のみ表示を更新...
-
pset関数について
-
エクセルでガンチャートを作成...
-
C言語(dxlib)のDrawboxについ...
-
Form1 Load で実行されない。
-
InvalidateRectの使い方について
-
MFCのタイマーのつかい方を教え...
-
CStaticコントロールの静的イメ...
-
Windowのちらつき防止
-
GDI+で高速な描画
おすすめ情報