Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Direct3d Backbuffer größe verändern (https://www.delphipraxis.net/89835-direct3d-backbuffer-groesse-veraendern.html)

igel457 6. Apr 2007 14:31


Direct3d Backbuffer größe verändern
 
Hallo.

Wie kann ich in DirectX 9 die größe des Backbuffers neu setzten ohne das Device und alle Texturen komplett löschen und wieder neu erzeugen zu müssen?

Geht das überhaupt?

Danke für eure Antworten,
igel457

JasonDX 6. Apr 2007 14:43

Re: Direct3d Backbuffer größe verändern
 
Zitat:

Zitat von igel457
Wie kann ich in DirectX 9 die größe des Backbuffers neu setzten ohne das Device und alle Texturen komplett löschen und wieder neu erzeugen zu müssen?

Geht das überhaupt?

Ohne löschen und neu erstellen geht mit [msdn]IDirect3DDevice9::Reset[/msdn], allerdings:

MSDN zu Reset
Calling IDirect3DDevice9::Reset causes all texture memory surfaces to be lost, managed textures to be flushed from video memory, and all state information to be lost. Before calling the IDirect3DDevice9::Reset method for a device, an application should release any explicit render targets, depth stencil surfaces, additional swap chains, state blocks, and D3DPOOL_DEFAULT resources associated with the device.


greetz
Mike

igel457 6. Apr 2007 15:04

Re: Direct3d Backbuffer größe verändern
 
Erstmal danke für deine Antwort.
Das Reset hatte ich auch schon gefunden, aber wie du ja zitiert hast, werden die Texturen dabei freigegeben (auch die Texturen die als D3DPOOL_MANAGED erzeugt worden sind?), was ich ja nicht möchte...

JasonDX 6. Apr 2007 15:20

Re: Direct3d Backbuffer größe verändern
 
Zitat:

Zitat von igel457
Erstmal danke für deine Antwort.
Das Reset hatte ich auch schon gefunden, aber wie du ja zitiert hast, werden die Texturen dabei freigegeben (auch die Texturen die als D3DPOOL_MANAGED erzeugt worden sind?), was ich ja nicht möchte...

Was den Managed-Pool betrifft dürften die Texturen lediglich in den Systemspeicher verschoben werden, d.h. immernoch gültig sein.
Ansonsten aber wüsste ich keine Möglichkeit, die Größe des Backbuffers zu ändern. Reset dürfte die einzige Variante sein.

greetz
Mike


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz