Hi,
ich habe gerade eine ziemliche Blockade, bei der Lösung eines Problems. Für ein
OpenGL Projekt rendere ich einen Text, indem ich eine Bild mit Buchstaben auf die Anzeige bringe. Für jeden Buchstaben habe ich die Position in der Textur (src) und möchte diese auf einen Bereich (Dest) zeichnen. Über ein Rechteck (Bounds) beschränkte ich die Textur. Jetzt müsste ich aber auch Src im Verhältnis zu den angegebenen Bounds beschränken, denn sonst stretched die Zeichenroutine den Buchstaben in das Zielrechteck und das schaut logischerweise bescheuert aus.
Delphi-Quellcode:
var
Dest, Bounds, Src: TRectF;
begin
Dest := RectF(100, 100, 200, 200);
Bounds := RectF(110, 90, 190, 210);
Src := RectF(1000, 1000, 1032, 1032);
Dest.Left := Max(Dest.Left, Bounds.Left);
Dest.Top := Max(Dest.Top, Bounds.Top);
Dest.Right := Min(Dest.Right, Bounds.Right);
Dest.Bottom := Min(Dest.Bottom, Bounds.Bottom);
Im Prinzip müsste ich Bounds ja auf einen Bereich zwischen 0..1 umrechnen und dann Src damit bearbeiten, oder? Hat jemand eine Idee? Irgendwie stelle ich mich da gerade etwas dusselig an.