Исключение при рисовании в xna при подключении нового монитора
У меня проблема с моим решением xna. Когда я подключаю новый монитор к компьютеру во время работы моего решения xna, я получаю исключение:
Попытка чтения или записи защищенной памяти. это часто указывает на то, что другая память повреждена.
Это всегда происходит в этой строке:
mSimpleEffect.CurrentTechnique.Passes [0].Нанесите ();
только когда я подключаю новый монитор к своему компьютеру. Я совершенно невежественен.
mSimpleEffect является объектом класса "BasicEffect". Эта строка находится внутри события "OnFrameRender" (внутри блока try, который его не перехватывает), которое вызывается каждый раз, когда программа собирается отрендерить новый кадр.
1 ответ
Я не совсем уверен, поможет ли это, но я решил проблему с помощью рендеринга с WPF/OSG и изменения размера окна
он блокируется, как когда вы подключаете монитор, разрешение меняется, а буфер рендеринга изменяется, особенно когда вы работаете в полноэкранном режиме. при изменении разрешения включаемая попытка рендеринга в тот же самый размер буфера, не имея достаточно места в буфере.
я не знаю, может ли это помочь, но я думаю, что вам нужно 1. попытаться перехватить сообщение об изменении размера экрана или плагина и реагировать на него, как при изменении разрешения
protected override void Update(GameTime gameTime)
{
if(userClickedTheResolutionChangeButton)
{
graphics.IsFullScreen = userRequestedFullScreen;
graphics.PreferredBackBufferHeight = userRequestedHeight;
graphics.PreferredBackBufferWidth = userRequestedWidth;
graphics.ApplyChanges();
}
// ...
}
рад, если это поможет хоть как-то, но давайте подождем, пока профессионал ответит:)