У меня самая странная проблема, на которую я просто не могу разобраться. Последние пару месяцев я разрабатывал приложение для VB.net в Windows 7. Программа включает в себя некоторые базовые чертежи и анимацию OpenGL с базовыми формами (квадраты и круги) и базовые текстуры, отображаемые на точечные списки. Пришло время распространить программу на другую машину. Однако на некоторых машинах возникают проблемы при рисовании текстур. Я знаю, что openGL все еще функционирует, потому что рисование основных квадратов и кругов все еще происходит, единственными вещами, пропущенными, являются текстурированные объекты.
Я тестировал эту проблему на нескольких 64-битных компьютерах с Windows 7, и все они прекрасно работают.
Установка программы на 32-битной машине с Windows XP вызывает проблему. Ошибка не выдается. Программа не падает. Текстуры просто не рисуются на экране. Все остальные простые формы все еще там, и ни одна из функциональных возможностей программы не затронута.
Я тестировал одну и ту же проблему на 32-битных и 64-битных виртуальных машинах Windows XP, и та же проблема возникает в обеих. Это после установки самого последнего обновления и установки .net Framework 3.5. Это наводит меня на мысль, что проблема не в x64 / x86, а в самой Windows XP.
Есть ли в OpenGL некоторые функции, которые Windows XP просто не поддерживает? Эта идея кажется мне странной, и я не вижу в этом проблемы.
Единственное возможное объяснение, которое я придумал, заключается в том, что, возможно, порядок вызовов для инициализации отличается в XP и 7, но мои тесты ничего не доказали в любом случае. Геометрия загружается из текстового файла при инициализации, поэтому это кажется другим возможным объяснением
UPDATE
Я провел дальнейшее тестирование на разных компьютерах и обнаружил, что программа работает нормально в 32-разрядной версии Windows 7, но столкнулся с проблемой на другой машине, работающей под управлением 64-разрядной версии Windows 7. Таким образом, я могу заключить, что это не имеет никакого отношения к операционной системе, но есть некоторая переменная, которую я не определил, вызывающая проблему.