Einzelnen Beitrag anzeigen

Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#2

Re: Text in DirectX Spiel anzeigen

  Alt 28. Feb 2007, 11:21
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
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat