|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.01.2012, 04:12 | #1 |
Пользователь
Регистрация: 21.09.2011
Сообщений: 35
|
Ошибка создания устройства после чтения параметров из файла.
Здравствуйте. хочу создать полноэкранное приложение, но по какой-то причине если до создания параметры берутся из xml файла то при создании device выдается ошибка, при оконном режиме ошибки не возникает, проверял без чтения параметров из файла xml создается нормально. Но мне нужно чтобы было считывание параметров. В чем может быть причина данной ошибки?
Вот код чтения параметров из файла, пишется до создания устройства: XmlTextReader rdr = new XmlTextReader("Settings.xml"); while (rdr.Read()) { if (rdr.NodeType == XmlNodeType.Element && rdr.Name == "Window_Width") { rdr.Read(); // move to the Text node WindWidth = Convert.ToInt32(rdr.Value.ToString( )); } if (rdr.NodeType == XmlNodeType.Element && rdr.Name == "Window_Height") { rdr.Read(); // move to the Text node WindHeight = Convert.ToInt32(rdr.Value.ToString( )); } if (rdr.NodeType == XmlNodeType.Element && rdr.Name == "Sglazhivanie") { rdr.Read(); // move to the Text node Sglazhivanie = Convert.ToInt32(rdr.Value.ToString( )); } } rdr.Close(); Вот код создания полноэкранного приложения: d3dpp = new PresentParameters(); // Параметры DirectX d3ddm = Manager.Adapters.Default.CurrentDis playMode; d3dpp.Windowed = false; d3dpp.SwapEffect = SwapEffect.Flip; d3dpp.FullScreenRefreshRateInHz = d3ddm.RefreshRate; d3dpp.PresentationInterval = PresentInterval.Default; d3dpp.BackBufferFormat = d3ddm.Format; d3dpp.BackBufferCount = 1; d3dpp.BackBufferWidth = WindWidth; d3dpp.BackBufferHeight = WindHeight; d3dpp.EnableAutoDepthStencil = true; d3dpp.AutoDepthStencilFormat = DepthFormat.D16; Aspect = (float)d3dpp.BackBufferWidth / (float)d3dpp.BackBufferHeight; int adapterOrdinal = Manager.Adapters.Default.Adapter; CreateFlags flags = CreateFlags.SoftwareVertexProcessin g; Caps caps = Manager.GetDeviceCaps(adapterOrdina l, DeviceType.Hardware); if (caps.DeviceCaps.SupportsHardwareTr ansformAndLight) flags = CreateFlags.HardwareVertexProcessin g; if (caps.DeviceCaps.SupportsPureDevice ) flags |= CreateFlags.PureDevice; d3dpp.MultiSample = MultiSampleType.None; for (MultiSampleType m = MultiSampleType.SixteenSamples; m >= MultiSampleType.TwoSamples; m--) { if (((int)m).ToString() == Convert.ToString(Sglazhivanie)) { d3dpp.MultiSample = m; } } device = new Device(0, DeviceType.Hardware, this.Handle, flags, d3dpp); //Выдает ошибку в этом месте |
13.01.2012, 08:19 | #2 |
Форумчанин Подтвердите свой е-майл
Регистрация: 31.03.2008
Сообщений: 179
|
C# + Managed DirectX ???
|
13.01.2012, 14:21 | #3 |
Пользователь
Регистрация: 21.09.2011
Сообщений: 35
|
Да, C# + Managed DirectX
|
13.01.2012, 15:44 | #4 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Sargonass, ты уверен, что твоя видеокарта поддерживает режим который ты на нее ставишь?
Код:
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
13.01.2012, 22:37 | #5 |
Пользователь
Регистрация: 21.09.2011
Сообщений: 35
|
Я же написал что при оконном режиме все работает правильно, при полноэкранном режиме но без чтения параметров из файла тоже все работает, а если добавляем чтение любых параметров из файла то выдает ошибку. Flags - это характеристики поддерживаемые видиокартой, но они тут не причем.
|
13.01.2012, 23:51 | #6 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Я понимаю, что ты спрашиваешь. Кидаю версии, и попутно узнаю, что за переменные применяются. Может в файле записан режим, который не поддерживается, ...в смысле он криво считывается. Сделай вывод считанных данных в какой-нибудь список в форме, ...тот же Memo, или подобное, погляди, что получается.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
14.01.2012, 10:24 | #7 |
Пользователь
Регистрация: 21.09.2011
Сообщений: 35
|
Если в какую-то переменную, которая вообще нигде не используется, из файла считываю данные, а параметры видеорежима прописаны вручную то все равно выдает ошибку. Т.е. ошибка возникает именно при использовании чтения данных из файла, если это убираю то все нормально.
|
14.01.2012, 15:21 | #8 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
У меня тоже бывали подобные глюки. Часть кода ошибок не выдает, а последующие операции не связанные с предыдущими блоками начинают спотыкаться. При отключении подозрительных строк работоспособность программы иногда восстанавливалась, а иногда ни в какую, хоть и вернул назад исходный код. В этом случае помогает перезагрузка машины.
Второе. Попробуй с xml-файла ничего не читать, ...только открыть и закрыть, а режим карты пусть задается статично в коде создания девайса. Далее подключай чтение по строкам, по одной, ...найдешь проблемное место. Если так и не сработает, попробуй текстовый файл, собственной структуры.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
14.01.2012, 16:10 | #9 |
Пользователь
Регистрация: 21.09.2011
Сообщений: 35
|
Попробовал чтение из файла по строкам и нашел строку на которой падает приложение - это считывание сглаживания. Если стоит 0, то есть сглаживания нет, то полноэкранное приложение нормально запускается, в остальных случаях выдает ошибку. Получается в оконном режиме любой режим сглаживания до 8 работает, а полноэкранный режим работает только при отсутствии сглаживания. Почему так происходит?
|
14.01.2012, 16:26 | #10 | |
Форумчанин
Регистрация: 03.11.2011
Сообщений: 230
|
читайте dxsdk9
Цитата:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ошибка чтения файла | Umnik1 | Общие вопросы Delphi | 12 | 25.06.2013 22:57 |
ошибка чтения из файла | Fariori | Visual C++ | 3 | 01.11.2011 09:31 |
Ошибка чтения сохранённого файла(картинки) | alex77755 | Microsoft Office Excel | 10 | 28.10.2010 14:46 |
Ошибка: Попытка чтения за концом файла | PlayHard | Помощь студентам | 11 | 10.05.2010 22:51 |