![]() |
Direct2D Funktion ähnlich ExtTextout
Hi,
Mit GDI kann man ja Text mit Abstand zwischen den einzelnen Zeichen ausgeben. Mein Code:
Delphi-Quellcode:
FTextSpacing kann ich dann auf unterschiedliche Werte setzen und der Abstand zwischen 2 Buchstaben ist größer oder kleiner.
procedure TGDIModule.DrawText(const X, Y: Integer; const Rect: TRect; const Text: string);
var DistanceList: PIntegerArray; i: Integer; CurChar: Char; StrLen: Integer; begin StrLen := Length(Text); GetMem(DistanceList, StrLen * SizeOf(Integer)); for i := 0 to StrLen - 1 do begin CurChar := Text[i + 1]; DistanceList[i] := CharWidth{ Die Breite eines Zeichens. Wobei alle Zeichen gleich breit sein müssen } + FTextSpacing; end; ExtTextOut(FCanvasHandle, X, Y, ETO_CLIPPED, @Rect, PChar(Text), StrLen, Pointer(DistanceList)); FreeMem(DistanceList); end; Jetzt wollte ich Direct2D zum Zeichnen benutzen aber ich finde keine Funktion bei der ich den Abstand setzen kann. Wisst ihr Hilfe? |
AW: Direct2D Funktion ähnlich ExtTextout
Schreib doch einfach eine eigene Prozedur dafür. Ich hab mich mit D2D noch nicht beschäftigt,
aber wenn du eine Prozedur zum Text ausgeben hast, benutz diese doch einfach für einzelne Buchstaben, und berechne den Abstand der Zeichen selber. Das ist zwar performance-mäßig nicht das allerbeste, sollte aber keinen merklichen Unterschied machen (zumindest nach meinen Erfahrungen mit OpenGL) |
AW: Direct2D Funktion ähnlich ExtTextout
Naja grade auf die Performance kommt es mir aber an (hätte ich vielleicht erwähnen sollen :-D). Ich will nämlich einen Text Editor programmieren, bei dem man zwischen GDI und Direct2D bei der Darstellung wählen kann.
|
AW: Direct2D Funktion ähnlich ExtTextout
Probiers doch einfach mal aus, und schau dir die Performance an. Wie gesagt, bei mehreren hundert Durchläufen wird man einen Unterschied feststellen können, aber bei nur ein paar (für einen Editor wirst du ja so ca 60 Zeilen haben...) dürfte das nicht so einen großen Unterschied machen.
|
AW: Direct2D Funktion ähnlich ExtTextout
Zitat:
|
AW: Direct2D Funktion ähnlich ExtTextout
Ob er nach fünf Jahren wohl nochmal in die DP reinschaut?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz