Изменение результатов RenderTarget на фиолетовом экране?

Я пытаюсь изменить 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), это приводит к совершенно фиолетовому экрану. Что я могу сделать для фиксации этого?

5
задан jasonh 17 July 2010 в 06:31
поделиться

1 ответ

Похоже, что лучший вариант - создать RenderTarget где-нибудь, кроме Draw, отрисовать его во время Update, сохранить полученную текстуру (и при необходимости изменить), а затем нарисовать эту текстуру во время Draw.

3
ответ дан 14 December 2019 в 13:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: