2014-10-07 22 views
0

我遇到了xna解決方案的問題。 當我插上了新的顯示器到我的電腦在運行我的XNA的解決方案,我得到異常:在插入新顯示器時在xna中繪製異常

試圖讀取或寫入保護內存。這往往表明其他內存已損壞。

這總是發生在這條線:

mSimpleEffect.CurrentTechnique.Passes [0]。適用();

只有當我插入一臺新的顯示器到我的電腦。我完全無能爲力。

mSimpleEffect是「BasicEffect」類的一個對象。這條線位於事件「OnFrameRender」內(在一個不能捕獲它的try塊內),每次程序要渲染一個新幀時都會調用這一行。

回答

0

我不漂亮知道這會幫助,但IA與WPF/OSG渲染和調整窗口大小

其鎖定,當你的插件顯示器分辨率改變像哈德一個simular問題,你渲染緩衝當你在全屏顯示時會發生變化。 通過更改分辨率,通過不在緩衝區中放置位置,將嘗試渲染到相同的緩衝區大小。

我不知道是否可以幫助,但我猜你需要 1.嘗試截取屏幕尺寸的變化/或插件的消息,並通過分辨率改變它的反應就像

protected override void Update(GameTime gameTime) 


{ 
     if(userClickedTheResolutionChangeButton) 
     { 
      graphics.IsFullScreen = userRequestedFullScreen; 
      graphics.PreferredBackBufferHeight = userRequestedHeight; 
      graphics.PreferredBackBufferWidth = userRequestedWidth; 
      graphics.ApplyChanges(); 
     } 

     // ... 
    } 

幸福是否有幫助至少在某種程度上,但讓我們等待一個親answare :)

+0

謝謝,但由於我使用wpf我不知道該放哪段代碼。 – 2014-10-07 20:41:38

+0

你正在使用XNA的罪孽,你有一個類派生自:遊戲。這應該是正確的地方來覆蓋更新功能 – Oscar 2014-10-08 08:45:10

+0

不,我不使用任何來自遊戲的派生...我使用GraphicsDevice – 2014-10-08 13:02:05