Я пытаюсь изменить RenderTargets во времени выполнения, таким образом, я могу потянуть некоторые элементы во времени выполнения, управлять ими и затем наконец потянуть структуру на экран. Проблема, экран становится фиолетовым, если я изменяю RenderTarget во времени выполнения. Вот код, в который я вошел, Потяните:
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);
Это, кажется, не имеет значения, как я создаю RenderTarget, если я делаю это во времени выполнения (и я действительно должен создать структуры в оперативной памяти во времени выполнения и привлечь их с SpriteBatch), это приводит к совершенно фиолетовому экрану. Что я могу сделать для фиксации этого?
Похоже, что лучший вариант - создать RenderTarget где-нибудь, кроме Draw, отрисовать его во время Update, сохранить полученную текстуру (и при необходимости изменить), а затем нарисовать эту текстуру во время Draw.