Отключить DirectDraw, но все еще есть Direct3D?
У меня машина с Windows XP SP3, с последними исправлениями. Он имеет DirectX 9.0c, номер версии 4.09.00.0904.
Могу ли я отключить DirectDraw, но Direct3D все еще активен?
Я читаю статьи в Википедии о DirectDraw и Direct3D, но не знаю, правильно ли я их понимаю:
То есть он содержит много команд для 3D-рендеринга; однако, начиная с версии 8, Direct3D заменил старую среду DirectDraw, а также взял на себя ответственность за рендеринг 2D-графики.
Означает ли это, что DirectDraw теперь является частью Direct3D? Потому что я не могу отключить DirectDraw без отключения Direct3D, но он работает наоборот.
2 ответа
Страница Википедии для DirectDraw (и других компонентов DirectX) достаточно ясно описывает ситуацию. Но я буду обобщать и утешать соответствующие биты (перефразируя, конечно):
1: 1 Сначала была только тьма и графический хаос. 1:2 Однажды Microsoft заявила, что существует единая, согласованная графическая структура, и создала DirectDraw, и это было, и это было хорошо. 1:3 Microsoft сказала, чтобы она пошла дальше и резвилась в саду аппаратных средств и создала много красивых 2D-картинок. 1:4 DirectDraw сделал, и это тоже было хорошо.
2: 1 Однажды, змея амбиций пришла в DirectDraw и рассказала ему о чудесных 3D-фотографиях. 2:2 Змей убедил DirectDraw в том, что он может делать 3D-изображения, поедая плоды дерева знаний, поэтому DirectDraw съел этот плод и начал пытаться создавать 3D-изображения.
3: 1 Microsoft, видя, что DirectDraw одинока и слишком усердно работала над созданием трехмерной графики, пожалела об этом и, используя части DirectDraw, создала Direct3D. 3:2 DirectDraw и Direct3D некоторое время жили счастливо вместе.
4: 1 С помощью своих соседей DirectDraw и Direct3D породили DirectX. 4:2 DirectX был скромным ребенком, но полным потенциала. 4:3 DirectX также был ревнивым ребенком и стремился уничтожить своего брата OpenGL, который жил только в великолепных замках мэйнфреймов.
5: 1 DirectX 1 родил DirectX 2 и DirectX 2 a, которые, в отличие от DirectX 1 и 2, были частью города Windows. DirectX 2a развивался и умножался в течение четырех и двух поколений, создавая фреймворки, которые позволили красоте и играм, которые были самыми удивительными, расцвести.
6: 1 Ко времени появления DirectX 6, сына DirectX 5, семейство DirectX росло неопрятно и толсто, и им было трудно управлять.
7: 1 Люди земли жаловались на инбридинг DirectX 7. 7:2 Им не нравилось кровосмесительное наложение между функциями DirectDraw и Direct3D. 7:3 Видя это искажение творений HIS, Microsoft постановила, что будет только одна структура. 7:4 Чтобы очистить DirectDraw от грехов зависти, гордости и обжорства, ОН послал могучий поток развития, а также объектно-ориентированный огонь и серу и столб криптографической соли в город DirectDraw.
8: 1 Для DirectX 8, HE оставил DirectDraw позади и начал заново с только Direct3D, который выжил, потому что следовал инструкциям и не оглянулся назад, когда DirectDraw официально умер. 8:2 Direct3D жаловался не на потерю своего любимого DirectDraw, и, видя эту лояльность, Microsoft дала ему нового и даже лучшего партнера. 8:3 ОН взял уцелевшие, все еще чистые 2D-функции DirectDraw и создал DirectX Graphics, чтобы Direct3D мог быть счастливым и полностью функциональным.
9: 1 DirectX 8, сын Direct3D и DirectX Graphics (и их соседей), породил DirectX 9, который был хорошим ребенком. 9:2 DirectX 9 жил много, много лет дольше, чем кто-либо другой. 9:3 Он совершил много чудесных вещей и гордился своими предками. 9:4 Жители деревни XP, где теперь жил DirectX 9, все еще поклонялись Microsoft, но также начали поклоняться идолам золотых пингвинов и кушать запрещенные яблоки. 9:5 Это разозлило Microsoft и изгнало деревню XP. 9:6 ОН покинул длинный седобородый DirectX 9 в XP и создал город Vista с гордым новым ребенком DirectX 10. 9:7 В городе Vista многим пришлось обновить свои дома, чтобы заплатить высокую цену. налоги DirectX 10.
10: 1 Позже, DirectX 10 родил Direct2D, который был похож на DirectDraw++, и это было так себе. 10:2 Это был гордый и требовательный ребенок, не удовлетворенный хорошими домами, такими как XP, и вместо этого настаивавший на том, чтобы жить в королевстве Windows 7. 10:3 Это был также жадный ребенок, заявивший о необходимости большого количества видеокарт, хотя это была просто мелкая 2D-структура. 10:4 Люди жаловались, и поэтому Microsoft сделала это доступным для граждан Vista. 10:5 Не довольствуясь этим, люди из XP, которые все еще жили в маленьких хижинах, вторглись и завоевали Vista, где они грабили и грабили и похитили DirectX 10 к себе домой в XP. 10:6 DirectX 10 в конце концов преклонился перед волей людей и научился жить и работать в XP, но никогда не от души.
11: 1 DirectX 10 родил DirectX 11, но на этот раз люди не могли похитить его в свою деревню XP. 11:2 Они увидели, что многие из новых рыцарей, солдат, зергов и других иностранных дворян требовали присутствия короля DirectX 11 или королевы DirectX 11, и поэтому они согласились и либо согласились на то, что у них было, либо заплатили множество налогов, так что величие DirectX 10 и 11 можно увидеть на них.
12: 17: 12: 6: 2 Далеко, на краю света, где морские звери, драконы и ламы наводят ужас, был открыт великий и древний календарь царства майя, в котором наступил конец света. предсказано ( не совсем, но давайте просто притворимся).
13: 0: 0: 0: 0 Видя идолопоклонство и коррупцию в мире, Бог Microsoft послал на мир четыре большие солнечные вспышки белого, красного, черного и бледного цветов и уничтожил всю электронику. Только астронавты, которые были восхищены на ковчеге, выжили, в то время как остальной мир погрузился в хаос и беспорядки в течение семи-семи лет.
Таким образом, в основном, если вы не используете DirectX 7 или ниже (чем вы не являетесь), вы не сможете отключить только DirectDraw (в целом), так как он больше не существует в качестве автономной платформы. Вместо этого вы можете отключить только функции DirectDraw из DirectX.
Это, конечно, может повлиять или не повлиять на Direct3D, поскольку некоторые 3D-функции основаны на 2D-функциях (ах, курсы по компьютерной графике, как интересно вы были…).
Я не могу говорить категорично, но, основываясь на других подобных сценариях и истории Microsoft, я очень сомневаюсь, что они разработали его так, чтобы можно было включать или отключать части инфраструктуры; это в значительной степени гарантировано быть делом "все или ничего". То есть, если вы отключите DirectDraw, то Direct3D тоже выйдет из строя, потому что он построен, и полагается на 2D. Если вы отключите 3D, то 2D все еще работает, так как 3D-вычисления не требуются для выполнения 2D-работы.
Все это говорит о том, что вы фактически не отключаете ни DirectDraw, ни Direct3D. Кнопки, на которые вы ссылаетесь (ниже), не отключают рамки, они только отключают аппаратное ускорение. Функции все еще существуют и все еще доступны для программного обеспечения; они просто работают намного медленнее, потому что они выполняются через CPU/RAM, а не через GPU/VRAM.
Если отключение ускорения решает проблему, то это потому, что программное обеспечение устарело и не совместимо с более новым оборудованием / драйверами. Возможно, вам придется пойти на компромисс, признав неудобство включения / выключения ускорения перед запуском игры (или просто жить без ускорения).
Учитывая, что DirectDraw теперь реализован в Direct3D, это сделало бы его подмножеством Direct3D.
Таким образом, отключив интерфейс DirectDraw во время выполнения Direct3D, ваши другие возможности визуализации Direct3D не должны быть затронуты.
Чтобы получить техническую информацию, я хотел бы представить, что при отключении DirectDraw все попытки получить экземпляр IDirectDraw7 потерпят неудачу. Хотя попытки получить экземпляр IDirect3D9 все равно будут работать нормально.