簡體   English   中英

如何創建與將null傳遞給Microsoft.DirectX.Direct3D.Font.DrawText()的行為匹配的托管DirectX Sprite

[英]How to create Managed DirectX Sprite that matches behavior of passing null to Microsoft.DirectX.Direct3D.Font.DrawText()

我正在嘗試改善經過良好測試的工作應用程序的DirectX性能。 使用配置文件工具,我已經指出,對Microsoft.DirectX.Direct3D.Font.DrawText(Sprite sprite,字符串文本,int x,int y,int color)的調用(為sprite參數傳遞了null)占了大約30%應用程序的CPU使用率。 當我創建一個精靈並將其傳遞給DrawText的所有調用時,CPU使用率已接近消除。 唯一的問題是,字體會變得很小並且以一種難以辨認的方式旋轉。

任何人都可以創建一個精靈來渲染文本,其方式與將null傳遞給Microsoft.DirectX.Direct3D.Font.DrawText(Sprite精靈,字符串文本,int x,int y,int color)一樣嗎? 我知道可以使用2D文本代替我現有的文本,但是寧願避免對此工作應用進行重大更改。

您應該在Sprite.Begin()Sprite.End()之間放置繪圖調用。 Begin()調用將應用適當的渲染狀態(例如,轉換),而End()調用將恢復先前的狀態。 當然,除了此塊中的精靈外,您不應繪制其他任何東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM