DirectWrite benötigt Direct2D nicht und kann auch eigenständig verwendet werden (IDWriteBitmapRenderTarget). Es ist viel einfacher, Direct2D zu verwenden, um DirectWrite-Text in eine IWICBitmap zu rendern (via ID2D1Factory :: CreateWicBitmapRenderTarget()), und dann diese Bitmap mit DX zu zeichnen (vielleicht durch Kopieren auf eine DX-Oberfläche oder mit einem Shared-Surface-Ansatz; bin mit den Einzelheiten hier nicht vertraut. Sie können eine IWICBitmap über IWICImagingFactory :: CreateBitmap() erstellen.
Metro scheint ClearType nicht zu verwenden, daher sollte Graustufen in Ordnung sein. Korrekter ClearType-Text würde tatsächlich Alphakomponenten pro Komponente erfordern und funktioniert daher im Allgemeinen nicht als Bitmap mit einem Alphakanal.
Verwenden Sie DX9, so dass Sie auf XP laufen können, oder verwenden Sie es aus einem anderen Grund? Wenn Sie Win7 oder Vista SP2 + Platform Update als Minimum benötigen, dann empfehle ich Ihnen, D2D + DW zu verwenden, um Text in eine Bitmap zu rendern und dann DX zum Zeichnen der Bitmap zu verwenden.
klingt wie Sie für Anti-Aliasing oder Cleartype suchen. –
@ MдΓΓБДLL Ich habe die 'CLEARTYPE_QUALITY' und' ANTIALIASED_QUALITY' Flags ausprobiert. Sie produzieren immer noch gezackte Schriftarten, und ich skaliere sie nicht. – Joshua
@Joshua: Bitte Screenshot und Rendering-Code-Fragment zur Verfügung stellen. – SigTerm