Hi
Mehrere Dinge, die mir beim Durchlesen aufgefallen sind:
- Nach Present den Text zu zeichnen ist schlecht. Bringt nix, weil der BackBuffer anschliessend hoechstwahrscheinlich eh geloescht wird.
- Render-Befehle muessen zwischen einen BeginScene-EndScene-Block stehen. Also entweder EndScene statt Present hooken oder nen neuen Block aufmachen (IDirect3DDevice9::BeginScene), Text zeichnen, und anschliessend wieder schliessen (EndScene). Bei beidem kanns Probleme geben:
- EndScene Hooken: Es koennen mehrere BeginScene/EndScenes pro Frame aufgerufen werden. Es wird zwar davon abgeraten, aber das ist bei weiten keine Garantie dass dem so ist.
- Present hooken: Wenn verschiedene Backbuffer verwendet werden, wird Present mehrmals pro Frame aufgerufen -> Du zeichnest den Text mehrmals -> doof
- Das Rect beim Aufruf von DrawText. Du initialisierst es Folgendermassen:
Delphi-Quellcode:
rect.Top := y;
rect.Left := x;
rect.Bottom := y+1;
rect.Right := x+1;
Dein Text wird jetzt auf genau 1 Pixel gezeichnet. Da koennts schwer werden, einen Text zu finden
greetz
Mike