2012-08-10 245 views
0

在傳統的XNA應用程序中,通過應用程序屬性設置此值。如何設置GraphicsDevice.GraphicsProfile

默認情況下,該值設置爲HiDef,至少在我目前使用的機器上。但它必須設置爲Reach才能運行。

我的問題是,我沒有找到任何方法來使用monogame有效地改變這個值。屬性窗口顯然與XNA不同,我沒有找到任何配置值。

更改代碼中的值,Game構造函數或LoadContent方法不能解決我的問題。


PS:我原來的問題,我認爲這是由該GraphicsDevice.GraphicsProfile造成的,是https://stackoverflow.com/questions/11900957/monogame-draw2d-sample-accessviolation-exception

回答

1

在構造函數中梅託德,爲您GraphicsDeviceManager創建新的事件處理程序:

graphics.PreparingDeviceSettings += new EventHandler<PreparingDeviceSettingsEventArgs (graphics_PreparingDeviceSettings); 

(默認處理程序是通過在+ =)

之後加上Tab來創建的,然後在事件處理程序中添加以下代碼

void graphics_PreparingDeviceSettings(object sender, PreparingDeviceSettingsEventArgs e) 
{ 
e.GraphicsDeviceInformation.GraphicsProfile = GraphicsProfile.Reach; 
} 
+0

謝謝,這看起來不錯,但...我想找到爲什麼我的'PreparingDeviceSettingsEventArgs'對象沒有任何GraphicsProfile屬性。只需'Adapter,DeviceType,PresentationParameters'。 – 2012-08-13 06:07:18

+0

我不明白'MonoGame.Microsoft.Xna.Framework'和'MonoGame.Microsoft.Xna.Framework.Graphics'中存在兩個相同類的實現。 '... Framework'是'PreparingDeviceSettingEventArgs'使用的一個,但另一個包含'GraphicsProfile'屬性。 https://github.com/mono/MonoGame/blob/develop/MonoGame.Framework/GraphicsDeviceInformation.cs https://github.com/mono/MonoGame/blob/develop/MonoGame.Framework/Graphics/GraphicsDeviceInformation.cs (我覺得我錯過了這裏很愚蠢的東西......) – 2012-08-13 06:36:11

+0

我想你給了我答案。我的代碼仍然沒有運行,但我認爲這是另一個問題。所以我的故事現在繼續[另一個問題](http://stackoverflow.com/questions/11929628/how-to-change-graphicsprofile)。 – 2012-08-13 07:12:43