А нам то хуле? Ебись он в рот!
Представьте, что вы в цейтноте1 на купленном на миллионный грант компьютере в IV-224 отлаживаете следующий код:
PresentParameters PresentationParameters = new PresentParameters(); PresentationParameters.Windowed = true; PresentationParameters.SwapEffect = SwapEffect.Discard; PresentationParameters.BackBufferCount = 1; PresentationParameters.BackBufferWidth = CanvasWidth; PresentationParameters.BackBufferHeight = CanvasHeight; PresentationParameters.EnableAutoDepthStencil = true; // PresentationParameters.AutoDepthStencilFormat = DepthFormat.D24S8; PresentationParameters.AutoDepthStencilFormat = DepthFormat.D16; // Шмукорок for (PresentationParameters.MultiSample = MultiSampleType.SixteenSamples; PresentationParameters.MultiSample >= MultiSampleType.TwoSamples; PresentationParameters.MultiSample--) { try { Device = new Device(0, DeviceType.Hardware, Canvas, CreateFlags.HardwareVertexProcessing, PresentationParameters); break; } catch (InvalidCallException) { } } if (Device == null) { PresentationParameters.MultiSample = MultiSampleType.None; Device = new Device(0, DeviceType.Hardware, Canvas, CreateFlags.HardwareVertexProcessing, PresentationParameters); } Device.Transform.Projection = Matrix.PerspectiveFovLH((float)Math.PI / 4, (float)CanvasWidth / (float)CanvasHeight, 0.1f, 10000f); Device.SetRenderState(RenderStates.Lighting, true); InitializeLights(); // Try to set up a texture minify filter, pick anisotropic first if (Device.DeviceCaps.TextureFilterCaps.SupportsMinifyAnisotropic) { Device.SamplerState[0].MinFilter = TextureFilter.Anisotropic; } else if (Device.DeviceCaps.TextureFilterCaps.SupportsMinifyLinear) { Device.SamplerState[0].MinFilter = TextureFilter.Linear; } // Do the same thing for magnify filter if (Device.DeviceCaps.TextureFilterCaps.SupportsMagnifyAnisotropic) { Device.SamplerState[0].MagFilter = TextureFilter.Anisotropic; } else if (Device.DeviceCaps.TextureFilterCaps.SupportsMagnifyLinear) { Device.SamplerState[0].MagFilter = TextureFilter.Linear; }
Падает он с NullReferenceException на строке с Device вот здесь:
try { Device = new Device(0, DeviceType.Hardware, Canvas, CreateFlags.HardwareVertexProcessing, PresentationParameters); break; } catch (InvalidCallException) { }
Кто тут, скажите мне пожалуйста, может кинуть NullReferenceException? Правильно, никто: 0 — неуправляемый указатель, DeviceType.Hardware — enum, Canvas — неуправляемый указатель, CreateFlags.HardwareVertexProcessing — enum, PresentationParameters мы вон сверху создали. Конструктор Microsoft.DirectX.Direct3D.Device кидает NullReferenceException при правильных аргументах? Сомневаюсь, что мы нашли баг в дудке — не того поля ягоды. На всякий случай убираю цикл по MultiSample — какой уж там антиалиасинг на компьютерах, где даже 32-битный Z-буфер пришлось поставить под сомнение (единственное изменение в графике по сравнению с прошлым проектом, нормально работавшим). Где он теперь падает? Правильно, вот здесь:
if (Device == null) { PresentationParameters.MultiSample = MultiSampleType.None; Device = new Device(0, DeviceType.Hardware, Canvas, CreateFlags.HardwareVertexProcessing, PresentationParameters); }
DeviceType.Software — бесполезно. CreateFlags.SoftwareVertexProcessing — бесполезно. Слава Богу, рядом были ПМИ'шники, заметившие, что у них наш код прекрасно работает. И даже показавшие исходники. Мне. Мои исходники. Один-в-один. За исключением того, что никаких
if (Device.DeviceCaps.TextureFilterCaps.SupportsMinifyAnisotropic) { Device.SamplerState[0].MinFilter = TextureFilter.Anisotropic; }
там не было. Уже даже не помню когда добавил это, пытаясь сделать текстуры менее убогими. Как бы то ни было, после удаления этого блока всё заработало. И DepthFormat.D24S8, кстати, тамошняя видеокарта прекрасно поддерживала.
Microsoft блядь! Ёбаный в рот! Какого хуя код, находящийся после выполняемого в данный момент, мешает его выполнению? Что за параллельные технологии, пиздец! Все всё прекрасно поняли, что отладчик в Visual Studio 2005 лажает и полтора часа водил меня, слепого идиота, за нос, но тем не менее. Программерская мистика))))
А всего лишь за несколько часов до этого кошмара я спокойно и с любовью шлифовал напильником орудие казни для сыпящейся и мажущейся ленты:
Намотал, снял и выкинул. Пока только пол-километра, но всё равно жалко 
Вот опять после ~45 дней аптайма наглухо завис десктоп. В принципе, вернуть к жизни было ещё можно, но лень, да и 2.6.34 затестить охота, так что я ребутнулся. Процесс загрузки приятно удивил: теперь фреймбуффер рисовался на двух мониторах:
„...а Кефииир не отстаёт!“. Но это только на первый взгляд. Иксы наотрез оказались запускаться: не загружался nvidia.ko, аргументируя это тем, что Device Not Found. Увлекательное и, самое главное, комфортное гугление в links привело меня к теме «ПРОБЛЕМЫ ПОСЛЕ ОБНОВЛЕНИЯ НА 10.04», где посоветовали отключить nouveau. Так точно, загружен, сука. После внесения очередного борца за свободу в blacklist, фреймбуффер на втором мониторе привычно пропал, зато всё остальное заработало. За 45 дней ни одного ломающего всё к хуям обновления в Arch (если не считать этот случай и, конечно же, дурацкий Pidgin)... Растём и развиваемся!
Ну и бабу Любу не забываем упомянуть 
, 10 за идею с SFX-архивом), нечестолюбивые могут даже не приходить на экзамен.
Ну круто получилось 
Потом на Маркса идём. А там возле метро Яна с чотким (мимо ходят пацаны и он с ними здоровается, всю башню, наверное, знает, если телефон спиздят - обращаемся). И тут же подруливает баба Люба и просит два рубля. И потом сетует: типа ну чо такие молодые люди, хорошо одетые - и два рубля жалко.

Потом ещё посмотрели на ноутбуке (здесь не шутим!) Катины или чьи там ещё "материалы" по ОСОСТ. Половина - беллетристика с citkit.ru, да ещё и с комментами, причём первый "мандрива такое г...", надо будет на экзамене так ответить

Доступные тэги: <b>, <i>, <s>, <u>, <a href="">, <img src="" /> (загрузить), <pre>, <quote>
- themylogin › Самое дорогое в жизни Вчера, 02:19
- ramwoolf › Am I not always be wanting this? (x8) 16 мая, 23:08
- anonymous › Написание «не» с различными частями речи 16 мая, 16:06
- anonymous › A Tragedy in the Air 15 мая, 18:24
- themylogin › Итоги 2011 15 мая, 12:10
- themylogin › На гелике езжу 13 мая, 16:24
- anonymous › Waking up at ten 13 мая, 13:16
- themylogin › Жук 12 мая, 11:55
- themylogin › Давайте шутки из твиттера продолжим развивать здесь 7 мая, 11:03
- anonymous › Шевченко лох 6 мая, 14:02




