2

У меня машина с Windows XP SP3, с последними исправлениями. Он имеет DirectX 9.0c, номер версии 4.09.00.0904.

Могу ли я отключить DirectDraw, но Direct3D все еще активен?

Я читаю статьи в Википедии о DirectDraw и Direct3D, но не знаю, правильно ли я их понимаю:

То есть он содержит много команд для 3D-рендеринга; однако, начиная с версии 8, Direct3D заменил старую среду DirectDraw, а также взял на себя ответственность за рендеринг 2D-графики.

Означает ли это, что DirectDraw теперь является частью Direct3D? Потому что я не могу отключить DirectDraw без отключения Direct3D, но он работает наоборот.

2 ответа2

3

Страница Википедии для 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 2a, которые, в отличие от 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.

Если отключение ускорения решает проблему, то это потому, что программное обеспечение устарело и несовместимо с более новым оборудованием / драйверами. Возможно, вам придется пойти на компромисс, признав неудобство включения / выключения ускорения перед запуском игры (или просто жить без ускорения).

DXDiag DirectX ускорение

2

Учитывая, что DirectDraw теперь реализован в Direct3D, это сделало бы его подмножеством Direct3D.

Таким образом, отключив интерфейс DirectDraw во время выполнения Direct3D, ваши другие возможности визуализации Direct3D не должны быть затронуты.

Чтобы получить техническую информацию, я хотел бы представить, что при отключении DirectDraw все попытки получить экземпляр IDirectDraw7 потерпят неудачу. Хотя попытки получить экземпляр IDirect3D9 все равно будут работать нормально.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .