[問題] 請問 ID3DXFont 該如何固定字的大小?

看板C_and_CPP作者 (kj)時間13年前 (2013/01/22 16:51), 編輯推噓2(2017)
留言19則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) D3D9 問題(Question): 小弟使用 ID3DXFont 來繪製文字到視窗中 但是目前碰到一個問題 如果去變更視窗的大小 繪製上去的文字也會跟著變更比例 (stretch) 想請問版上的大大 是否有辦法讓文字不會隨著視窗變更而改變大小呢? 餵入的資料(Input): /* create d3d font */ D3DXCreateFont(m_lpDevice, 12, 0, FW_NORMAL, 0, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, L"Candara", &m_lpInfoFont); /* draw text */ device->BeginScene(); sprite->Begin(D3DXSPRITE_ALPHABLEND); font->DrawText(sprite, text, -1, &rt, 0, D3DCOLOR_RGBA(0, 0, 0, 0xff)); sprite->End(); device->EndScene(); 預期的正確結果(Expected Output): 希望文字不會隨視窗大小變更而改變字型大小 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) 補上我測試繪製文字的程式 @@~ http://ideone.com/EGrBT4 補上text3d程式 https://mega.co.nz/#!1UlhiTKJ!N33FvAJq_EaReFFW2g02Rxg6iJ96sJCI6tYYGfCJgaM 補充說明(Supplement): 謝謝 @@~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.66.84 ※ 編輯: kaijajan 來自: 59.120.66.84 (01/22 17:06)

01/22 17:18, , 1F
個人覺得是Viewport輸出的畫面有在視窗更改時被刷新了?
01/22 17:18, 1F

01/22 17:32, , 2F
再補充一下...因為我的surface的size跟window的size
01/22 17:32, 2F

01/22 17:32, , 3F
實際上在window的畫面會有縮放的效果
01/22 17:32, 3F

01/22 17:33, , 4F
可是背景的畫面歸畫面 @@~ 希望前景的文字還是我希望的大
01/22 17:33, 4F

01/22 17:33, , 5F
01/22 17:33, 5F
※ 編輯: kaijajan 來自: 59.120.66.84 (01/22 17:39)

01/22 17:39, , 6F
補上程式~
01/22 17:39, 6F

01/22 18:46, , 7F
可以先算一下視窗放大的比例再去重新更改字體的長寬?
01/22 18:46, 7F

01/22 18:47, , 8F
不然我想到的就是渲染在一張紋理上在貼圖XD我不確定有沒
01/22 18:47, 8F

01/22 18:48, , 9F
有更好的做法。不過不來玩DX11嗎(被踹)
01/22 18:48, 9F

01/22 18:55, , 10F
不對不對XD如果你要畫在同樣的絕對位置,其實用VP就好了
01/22 18:55, 10F

01/22 19:20, , 11F
有點言不及義了XD可以的話麻煩幫我把上面的留言都刪掉XD
01/22 19:20, 11F

01/22 19:20, , 12F
01/22 19:20, 12F

01/22 19:21, , 13F
比較簡單的方法就是將緩衝區的長寬改掉,但犧牲效能
01/22 19:21, 13F

01/22 19:22, , 14F
至於詳細的WM_SIZE還請自己翻網路資料
01/22 19:22, 14F

01/22 19:43, , 15F
計算視窗縮放比例的方式有試過,但是誤差還是很大 囧
01/22 19:43, 15F

01/22 19:43, , 16F
directx sdk有一隻程式text3d它的字型就不會跟著縮放
01/22 19:43, 16F

01/22 19:43, , 17F
但是看了很久還是看不出為什麼 囧
01/22 19:43, 17F

01/23 13:17, , 18F
方便的話可以把SDK裡的SAMPLE上船嗎?
01/23 13:17, 18F
※ 編輯: kaijajan 來自: 59.120.66.84 (01/23 16:05)

01/23 16:05, , 19F
連結在上方喔... @@~ 順便來試一下mega XD
01/23 16:05, 19F
文章代碼(AID): #1G_bCEjm (C_and_CPP)