Einzelnen Beitrag anzeigen

Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

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

Re: DirectDraw ohne Vollbild/Bild direct auf Graka ausgeben

  Alt 8. Sep 2006, 12:57
Ja, es ist natuerlich moeglich, die Ausgabe eines Devices nur auf einen bestimmten Teil des Bildschirms zu beschraenken. Dies wird ueber die Eigenschaft von "Windowed" bei den PresentationParameters angegeben.
Ich hab zwar nicht den Source aus dem Tutorial genommen, aber das sollte eigentlich das gleiche sein, und funktioniert bei mir:
Delphi-Quellcode:
//initialisieren
var
  PresentParams: TD3DPresentParameters;
  dm: TD3DDisplayMode;
begin
  D3D := Direct3DCreate8(D3D_SDK_VERSION);
  ZeroMemory(@PresentParams, SizeOf(PresentParams));

  D3D.GetAdapterDisplayMode(0, dm);
  with PresentParams do
  begin
    BackBufferFormat := dm.Format;
    SwapEffect := D3DSWAPEFFECT_DISCARD;
    Windowed := true;
  end;

  D3D.CreateDevice(0, D3DDEVTYPE_HAL, {panel1.}Handle, D3DCREATE_SOFTWARE_VERTEXPROCESSING, PresentParams, Device);

//rendern:
Device.Clear(0, nil, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,255), 1.0, 0);
Device.Present(nil, nil, 0, nil);
Im Fall: Lass dir mal ausgeben, was [msdn:1f1459d3a1="Device.Present"]Present[/msdn:1f1459d3a1] beim Aufruf zurueckgibt. Wenn gar nichts rausgeschrieben wird, dann ist IMO dort der erste Ansatz zur Fehlersuche.

greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat