Sto tentando di modificare RenderTargets in fase di runtime, quindi posso disegnare alcuni elementi in fase di runtime, manipolarli e infine disegnare la texture sullo schermo. Il problema è che lo schermo diventa viola se cambio il RenderTarget in fase di runtime. Ecco il codice che ho in Draw:Modifica dei risultati RenderTarget nella schermata viola?
RenderTarget2D tempTarget = new RenderTarget2D(GraphicsDevice, 128, 128, 1,
GraphicsDevice.DisplayMode.Format, GraphicsDevice.PresentationParameters.MultiSampleType,
GraphicsDevice.PresentationParameters.MultiSampleQuality, RenderTargetUsage.PreserveContents);
GraphicsDevice.SetRenderTarget(0, tempTarget);
GraphicsDevice.Clear(ClearOptions.Target, Color.SpringGreen, 0, 0);
GraphicsDevice.SetRenderTarget(0, null);
Non sembra avere importanza come creo il RenderTarget, se lo faccio a tempo di esecuzione (e ho bisogno di creare texture in memoria in fase di esecuzione e disegnare su di loro con SpriteBatch) si traduce in una schermata interamente viola. Cosa posso fare per risolvere questo problema?
Questo era il mio problema. Conoscete il motivo per cui non può essere eseguito nel metodo di disegno o perché il colore è viola? –
Grazie ai nostri signori di google per il completamento automatico di "xna rendertarget" con "purple". Ho separato la mia call graph 'Draw' in' PreDraw-> Clear-> Draw' e ho disegnato nel target di rendering durante 'PreDraw'. [Shawn Hargreaves ha risposto] (http://xboxforums.create.msdn.com/forums/t/6264.aspx) che si tratta di rendere [il comportamento di destinazione del rendering coerente tra Windows e XBOX] (http: //blogs.msdn. COM/B/shawnhar/archive/2007/11/21/renderTarget-cambiamenti-in-XNA-game-studio-2-0.aspx). Da quest'ultimo collegamento, sembra che _might_ sia anche possibile utilizzare 'RenderTargetUsage.PreserveContents' al costo delle prestazioni. – cod3monk3y