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