2014-10-07 4 views
0

내 xna 솔루션에 문제가 있습니다.새 모니터가 연결되었을 때 xna에서 드로잉하는 동안 예외가 발생합니다.

보호 된 메모리를 읽거나 쓰려고 시도 : 내 XNA 솔루션을 실행하는 동안 내 컴퓨터에 새 모니터를 연결하면 , 나는 예외를 얻을. 이것은 종종 다른 메모리가 손상되었다는 표시입니다.

이 항상 라인에서 발생 :

mSimpleEffect.CurrentTechnique.Passes [0] .Apply();

컴퓨터에 새 모니터를 연결해야만합니다. 나는 완전히 단서가 없다.

mSimpleEffect는 "BasicEffect"클래스의 개체입니다. 이 줄은 프로그램이 새 프레임을 렌더링 할 때마다 호출되는 "OnFrameRender"이벤트 (catch 블록을 벗어나는 try 블록 내부)에 있습니다.

답변

0

내가 그 도움이 될 경우 꽤 잘 모르겠어요하지만 아이오와 창

당신이 해상도가 변경되는 모니터를 플러그인 할 때처럼 잠을 WPF/OSG 렌더링 및 크기를 조정하여 시뮬 문제를 HADE 당신은 버퍼를 렌더링 전체 화면으로 표시 할 때 특히 변경됩니다. 해상도를 변경하여 enging try가 버퍼에 위치를 지정하지 않아도 동일한 버퍼 크기로 렌더링됩니다.

이 도움이 될 수 있지만, 난 그 도움이된다면 당신은 화면 크기 변경/또는 플러그인의 메시지를 가로 채기 위해 1. 시험을 필요로하고

protected override void Update(GameTime gameTime) 


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

     // ... 
    } 

행복 해상도 변경에 의해처럼의 반응을 생각하면 내가 모르는 적어도 어쨌든,하지만 프로 answare 기다려 보자 :)

+0

고마워,하지만 이후 wpf 나는 그 코드 세그먼트를 넣어 모르겠다. –

+0

당신은 XNA를 사용하고 있습니다. thats는 Update 함수를 오버라이드 할 수있는 적절한 장소가 될 것입니다 – Oscar

+0

아니요, 저는 게임에서 파생되는 것을 사용하지 않습니다 ... GraphicsDevice를 사용하고 있습니다. –