我正在尋找與XNA框架一起開發一些簡單的2D遊戲。我特別希望能夠在我的上網本上隨時隨地開發和調試這些遊戲的部分內容。不幸的是,我的上網本的GPU不支持XNA所需的Shader Model 2.0。在低端圖形卡上運行XNA
沮喪,我去Google尋找替代品。我遇到了一個來自「Riemers XNA教程」的替代方案。下面的代碼應該強制XNA嚴格通過計算機的CPU運行,從而允許我的上網本運行非常慢的XNA版本。
if (GraphicsAdapter.DefaultAdapter.GetCapabilities(DeviceType.Hardware).MaxPixelShaderProfile < ShaderProfile.PS_2_0)
graphics.PreparingDeviceSettings += new EventHandler<PreparingDeviceSettingsEventArgs> (SetToReference);
}
void SetToReference(object sender, PreparingDeviceSettingsEventArgs eventargs)
{
eventargs.GraphicsDeviceInformation.CreationOptions = CreateOptions.SoftwareVertexProcessing;
eventargs.GraphicsDeviceInformation.DeviceType = DeviceType.Reference;
eventargs.GraphicsDeviceInformation.PresentationParameters.MultiSampleType = MultiSampleType.None;
}
上面的代碼應該放在默認XNA項目的Game1方法中。
的問題是,當我嘗試運行這個新項目,我收到以下兩個錯誤:
Error 1 'XNAReferenceDevice.Game1.LoadGraphicsContent(bool)': no suitable method found to override c:\users\richard\documents\visual studio 2010\Projects\WindowsGame1\WindowsGame1\WindowsGame1\Game1.cs 39 33 WindowsGame1
Error 2 'XNAReferenceDevice.Game1.UnloadGraphicsContent(bool)': no suitable method found to override c:\users\richard\documents\visual studio 2010\Projects\WindowsGame1\WindowsGame1\WindowsGame1\Game1.cs 46 33 WindowsGame1
這兩個錯誤也導致藍「波浪」出現在LoadGraphicsContent和UnloadGraphicsContent方法之下線。
如果有人能幫我解決這個問題,或者指向另一個方向,那會很棒。
在此先感謝!
http://blogs.msdn.com/b/shawnhar/archive/2010/03/12/reach-vs-hidef.aspx似乎是針對Windows Phone的像素着色器的一些特定規則。可能是一種用於糟糕的視頻適配器的方法。 – jgallant