2011-12-11 32 views
1

在XNA,我需要爲它畫上的紋理或改變,以獲得BackBuffer的參考RenderTarget(2D)的UsageUsage.PreserveContents,沒有任何允許的方法我這樣做?XNA:如何獲得後備緩衝渲染目標

+0

你可以改變你的繪圖代碼來繪製一個保存內容的紋理,然後把它繪製到每個幀的後緩衝區?這應該會更快。我依稀記得,在XNA 4.0中,獲得backbuffer紋理的速度非常緩慢(如果可以的話)。 –

回答

4

檢查出this blog post關於XNA 4.0中ResolveBackBuffer的情況。

基本上,你應該只使用渲染目標。

如果你需要需要後臺緩衝區,可以使用GetBackBufferData。但它只適用於HiDef配置文件。

如果您需要更改後臺緩衝區的RenderTargetUsage,則需要回復PreparingDeviceSettings並修改GraphicsDeviceInformation.PresentationParameters.RenderTargetUsage。 (這在this blog post中進行了解釋。)

請注意,不建議將此設置從默認設置改爲不使用。正確的解決方案是修復您設置和繪製到渲染目標的順序。