我的xna解决方案存在问题。 当我在运行xna解决方案时将新显示器插入计算机时,我得到了例外:
尝试读取或写入受保护的内存。这通常表明其他内存已损坏。
这总是发生在这一行:
mSimpleEffect.CurrentTechnique.Passes [0]。适用();
仅当我将新显示器插入计算机时。我完全无能为力。
mSimpleEffect是“BasicEffect”类的对象。这一行位于事件“OnFrameRender”(在一个没有捕获它的try块内),每次程序要渲染一个新帧时都会调用它。
答案 0 :(得分:0)
我不确定这是否会有所帮助,但我通过使用WPF / OSG渲染并调整窗口大小来解决类似问题
它锁定就像你插入一个监视器一样,分辨率正在改变,你渲染缓冲区更改,尤其是当你全屏显示时。 通过更改分辨率,引入尝试通过不在缓冲区中放置来渲染到相同的缓冲区中。
我不知道这是否有帮助,但我想你需要 1.尝试拦截屏幕大小的更改/或插件消息,并通过分辨率更改对其作出反应
protected override void Update(GameTime gameTime)
{
if(userClickedTheResolutionChangeButton)
{
graphics.IsFullScreen = userRequestedFullScreen;
graphics.PreferredBackBufferHeight = userRequestedHeight;
graphics.PreferredBackBufferWidth = userRequestedWidth;
graphics.ApplyChanges();
}
// ...
}
如果这有助于至少某种方式,请高兴,但让我们等待专业软件:)