Запуск XNA на младшей видеокарте - PullRequest
0 голосов
/ 30 октября 2011

Я хочу работать с платформой XNA для разработки нескольких простых 2D-игр. Особенно мне хотелось бы иметь возможность разрабатывать и отлаживать части этих игр, пока я на ходу с моим нетбуком. К сожалению, графический процессор моего нетбука не поддерживает Shader Model 2.0, которая требуется для XNA.

Разочарованный, я пошел в Google в поисках альтернатив. Я наткнулся на одну альтернативу из «Учебника Riemers XNA». Следующий код должен заставить XNA работать строго через процессор компьютера, что позволяет моему нетбуку запускать невероятно медленную версию 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;
     }

Приведенный выше код должен быть помещен в метод Game1 проекта XNA по умолчанию.

Проблема в том, что при попытке запустить этот новый проект я получаю следующие две ошибки:

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.

Если бы кто-нибудь мог помочь мне решить эту проблему или указать мне другое направление, это было бы здорово.

Заранее спасибо!

1 Ответ

1 голос
/ 30 октября 2011

Новые версии XNA потеряли некоторую совместимость с прошлым. Возможно, вы используете более новую версию фреймворка и XNA, чем уроки Riemers.

Однако учтите, что новый XNA 4.0 поддерживает минимальный пиксельный шейдер 2.0! Это означает, что вы не можете запустить его на младших компьютерах только с пиксельным шейдером 1.1 или со слишком медленным пиксельным шейдером 2.0.

Предыдущая версия, XNA 3.1, поддерживает минимальный пиксельный шейдер 1.1, вы можете попытаться вернуться к этому с помощью Visual Studio 2008 Express.

Извините, но поскольку XNA требует хороших машин, я думаю, вы должны найти лучшую машину, в том числе для 2D-графики.

Ошибка компилятора, однако, не связана с пиксельным шейдером, но, вероятно, связана с версиями XNA и C #.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...