Ich versuche, RenderTargets zur Laufzeit zu ändern, so dass ich einige Elemente zur Laufzeit zeichnen, manipulieren und schließlich die Textur auf den Bildschirm zeichnen kann. Problem ist, der Bildschirm wird violett, wenn ich das RenderTarget zur Laufzeit ändere. Hier ist der Code, den ich in Draw habe:RenderTarget-Ergebnisse in Purple Screen ändern?
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);
Es nicht egal scheint, wie ich die RenderTarget schaffen, wenn ich es zur Laufzeit zu tun (und ich brauche In-Memory-Texturen zur Laufzeit erstellen und Zeichnen Sie mit SpriteBatch auf sie auf, es ergibt sich ein völlig lila Bildschirm. Was kann ich tun, um das zu beheben?
Das war mein Problem. Kennst du den Grund, warum es nicht in der Draw-Methode gemacht werden kann, oder warum die Farbe lila ist? –
Danke an unsere Google Overlords für die automatische Vervollständigung von "xna renderertarget" mit "purple". Ich habe meinen Call-Draw-Szenen-Graph in 'PreDraw-> Clear-> Draw' aufgeteilt und zeichne während' PreDraw' in das Render-Ziel. [Shawn Hargreaves antwortete] (http://xboxforums.create.msdn.com/forums/t/6264.aspx), dass dies [das Zielverhalten zwischen Windows und XBOX konsistent machen soll] (http: //blogs.msdn). com/b/shawnhar/archiv/2007/11/21/rendertarget-änderungen-in-xna-game-studio-2-0.aspx). Von diesem letzten Link scheint es _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | – cod3monk3y