Zitat von
Muetze1:
Grob vermutet: Du malst den neuen Text an neuer Position (scrollen/neue Chars) und da der Transparent ist und der Hintergrund noch nicht neu gezeichnet wurde, malt er das ganze daneben bzw. darüber.
Ergo: Hintergrund vor der Ausgabe des neuen Textes an der Stelle zeichnen.
Eigentlich nicht.
Der Text ist immer an einer festen position und wird nicht verändert.
Die Intitialisierung
Delphi-Quellcode:
SetBkMode(VisInfo^.VisDC, TRANSPARENT);
SetTextColor(VisInfo^.VisDC,
RGB(255,255,255));
Font := CreateFont(8, 0, 0, 0, 0, 0, 0, 0,
ANSI_CHARSET,
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH, '
MS Sans Serif');
OldFont := SelectObject(VisInfo^.VisDC, Font);
wird dann gemacht wenn ein neues Plugin gestartet wird
der Font vorher gelöscht wenn das alte Plugin frei gegeben wird.
Die infos werden in der Render Funktion aufgerufen
Delphi-Quellcode:
GetInfo;
if (not BitBlt(canvas, VisInfo^.x, VisInfo^.y, VisInfo^.w, VisInfo^.h, VisInfo^.VisDC, 0,
0, SRCCOPY)) then
begin
VisInfo^.Rendering := False;
BassFuncs^.SetError(BASS_ERROR_DEVICE);
Exit;
end;
und danach direkt auf das
DC kopiert
Da ändert sich nichts was den Text angeht die reihenfolge bleibt sich gleich.
Es sieht aber so aus das es nur dann auftritt wenn
OpenGl Plugins gestartet wurden.
Kann es sein das diese TextOut oder die Transparenz zerstört ?
Wenn ja wie kann ich das beheben.
gruss Emil