XNA сбрасывает шейдеры после отображения окон сообщений - PullRequest
1 голос
/ 07 апреля 2011

Я занимаюсь разработкой для Windows Phone 7 и столкнулся с небольшой проблемой при использовании Guide.BeginShowMessageBox и Guide.BeginShowKeyboardInput.После появления окна сообщения приложение иногда завершает работу с ошибкой:

«Для выполнения операций рисования на устройстве должны быть установлены как вершинный, так и пиксельный шейдеры».

странно то, что кажется, что он вылетает, когда окно сообщения видно, но у меня есть следующая проверка перед моими методами update и draw в моем классе Game:

    protected override void Update(GameTime gameTime) {
        if (IsActive && !Guide.IsVisible) {
            //Update stuff here
        }
        base.Update(gameTime);
    }

    protected override void Draw(GameTime gameTime) {
        if (IsActive && !Guide.IsVisible) {
            //Draw stuff here
        }
        base.Draw(gameTime);
    }

Ошибка определенно, кажется, происходит внутрихотя мой //Draw stuff here метод.И это, кажется, не каждый раз.Только после примерно четвертого окна сообщения это происходит.

Можно ли перед рисованием сказать, не установлены ли вершинный шейдер или пиксельный шейдер?Я использую объект BasicEffect для рисования.

1 Ответ

0 голосов
/ 05 мая 2011

Повторное применение BasicEffect в начале вызова Draw перед выполнением каких-либо других действий, по-видимому, решает проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...