Windows 8 ยังรองรับ DirectX 9 หรือไม่


9

Windows 8 รองรับ DirectX 9 หรือไม่ เพราะฉันดูตัวอย่างที่เขียนใน C ++ และ DirectX 9 ที่สร้างขึ้นสำหรับ Windows 8 มันไม่ใช่อย่างที่ฉันรู้ (ดูที่นี่http://directxtutorial.com/Lesson.aspx?lessonid=111-4-2 ) เช่น Inizialising DirectX พร้อม COM:

ComPtr<ID3D11Device1> dev;
ComPtr<ID3D11DeviceContext1> devcon;

มันแปลกเพราะฉันรู้ว่ามันเป็นแบบเก่า:

ID3D11Device *dev;                  
ID3D11DeviceContext *devcon;  

(ฉันหวังว่าคุณจะเข้าใจสิ่งที่ฉันต้องการจะบอก)

ฉันหวังว่ามันจะไม่เปลี่ยนแปลงอย่างสมบูรณ์เนื่องจากระบบปฏิบัติการใหม่ที่วางจำหน่าย


1
ฉันคิดว่ามันยากมากที่จะจินตนาการว่าไมโครซอฟท์จะยกเลิกการสนับสนุน 90% + ของเกมทั้งหมดบนแพลตฟอร์ม windows ฉันก็พบว่ามันยากยิ่งกว่าที่จะเชื่อว่าผู้คนจะไม่โกรธแค้นเมื่อตอนนี้
Jari Komppa

ที่กล่าวมาเป็นไปได้ว่า SDK ล่าสุดไม่รวมส่วนหัว / ไลบรารี dx9 ฉันไม่ได้ตรวจสอบ ไม่ได้หมายความว่าคุณไม่สามารถใช้ dx9 sdk เหมือนก่อนได้ นอกจากสตูดิโอภาพล่าสุดแล้วห้ามมิให้คุณทำเช่นนั้น แต่นั่นอาจเป็นเรื่องโง่ ๆ
Jari Komppa

ฉันไม่อยากจะเชื่อเลย แต่ฉันคิดว่ามันเป็นไปได้เพราะจะได้รับ "Windows 8" - พีซีส่วนใหญ่มีหน้าจอสัมผัสและคุณเคยเห็นเกมที่เขียนใน DirectX ที่รองรับการเล่นเกมด้วย Touchscreen หรือไม่?
LaVolpe

ฉันค่อนข้างมั่นใจว่าคุณจะไม่สามารถสร้างแอป "modern ui" ด้วย dx9 ได้
Jari Komppa

1
วัตถุ D3D เป็นวัตถุ COM เสมอไม่ใช่การใช้ตัวชี้แบบดิบ แต่การวางไว้ในตัวชี้สมาร์ท COM นั้นเป็นไปได้เสมอ

คำตอบ:


12

ใช่ Windows 8 รองรับ DirectX 9

สำหรับการพัฒนาDirectX SDKรุ่นเก่านั้นเลิกใช้แล้วแต่คุณจะมีห้องสมุดและส่วนหัวทั้งหมดที่คุณต้องการภายใน Windows 8 SDK ใหม่ซึ่งมาพร้อมกับ Visual Studio 2012 คุณสามารถใช้วิธี "แบบเก่า" ได้โดยไม่มีปัญหา . หากคุณต้องการ PIX สำหรับการดีบักหรือไลบรารี D3DX ระดับสูงคุณจะต้องติดตั้ง DXSDK เก่าอีกครั้งเนื่องจากนี่ไม่ได้อยู่ใน SDK Windows 8

อย่างไรก็ตามสิ่งนี้ใช้ได้สำหรับแอปเดสก์ท็อปธรรมดาแบบเก่าเท่านั้น สำหรับแอพสไตล์ Metro ฉันจะให้Chuck Walbourn จาก Microsoft พูดได้ :

Direct3D9 และ Direct3D9Ex ไม่รองรับแอปพลิเคชั่นสไตล์ Metro ไม่แนะนำให้ใช้หรือสนับสนุน DirectX SDK กับแอปพลิเคชันลักษณะ Metro ดู http://msdn.microsoft.com/en-us/library/ee663275.aspx

มีทรัพยากรจำนวนมากที่จะช่วยคุณในการย้ายฐานข้อมูล Direct3D 9 ไปยัง Direct3D 11 ส่วนใหญ่ของวัสดุสำหรับการย้ายพอร์ตจาก Direct3D 9 ไปยัง Direct3D 10.x ใช้อย่างเต็มที่ที่นี่เนื่องจาก API ของ Direct3D 11 คล้ายกับ Direct3D 10 มาก

ดู http://blogs.msdn.com/b/chuckw/archive/2011/07/11/getting-started-with-direct3d-11.aspx อย่าลืมตรวจสอบ Windows to Reality: การใช้ประโยชน์สูงสุดจาก Direct3D 10 Graphics ในเกมของคุณเนื่องจากครอบคลุมถึงข้อผิดพลาดมากมายและปัญหาด้านประสิทธิภาพที่ผู้พัฒนาเคยประสบมาในอดีตและ DirectX 11 Technology Update เพื่อสรุปความแตกต่างระหว่าง Direct3D 10 .x และ Direct3D 11

MSDN มีคำแนะนำในการย้ายพอร์ตเช่นกัน http://msdn.microsoft.com/en-us/library/ff476190.aspxซึ่งจะชี้ให้คุณไปที่http://msdn.microsoft.com/en-us/library/bb205073.aspxสำหรับ โดยตรงจาก Direct3D 9 ไปยัง Direct3D 11

ขออภัยคุณไม่สามารถใช้ D3D9 โดยตรงกับแอพสไตล์เมโทร แต่คุณสามารถใช้ D3D11 และ จำกัด ตัวเองให้อยู่ในระดับคุณลักษณะบางอย่าง (เช่นD3D_FEATURE_LEVEL_9_3) หากคุณต้องการสนับสนุนฮาร์ดแวร์รุ่นเก่า


ว้าวขอบคุณสำหรับคำตอบของคุณ ดังที่ฉันเห็นคุณทำการวิจัยที่ยอดเยี่ยม
LaVolpe

ดีไม่จริงฉันเพิ่งจะได้ทำงานกับมันในตอนนี้;)
Laurent Couvidou

1
AFAIK SDK win8 ที่มาพร้อมกับ VS 2012 จะไม่ส่งหัว D3D11X ใด ๆ อีกต่อไป - เฉพาะ D3D11 * สิ่งนี้จะทำให้คุณไม่มีฟังก์ชันยูทิลิตี้จำนวนมากเช่นการโหลด shaders จากไฟล์และรวบรวมในการเรียกใช้ฟังก์ชั่นเดียว

จริง สิ่งที่ Microsoft กล่าวเกี่ยวกับเรื่องนี้: "โปรดทราบว่าเทคโนโลยีการแทนที่สำหรับการใช้งานในปัจจุบันของ D3DX11 รวมถึง DirectXTex และ DirectXTK D3DXMath ถูกแทนที่ด้วย DirectXMath" ยังไม่ผ่านการทดสอบ
Laurent Couvidou

3

Windows 8 มีการสนับสนุนพื้นฐานเหมือนกันสำหรับแอปพลิเคชั่น Direct3D 9 ซึ่งมีอยู่ใน Windows 7 และ Windows Vista Direct3D 9 เป็นมรดกและมีปัญหาการใช้งานร่วมกันบางอย่างที่อาจส่งผลต่อเกมที่ใช้ Direct3D 9 ได้

การพัฒนาด้วย Direct3D 9 บน Windows 8 นั้นท้าทายกว่าบน Windows 7 เล็กน้อยส่วนหัว Direct3D 9 มาตรฐานเป็นส่วนหนึ่งของ Windows 8.0 SDK (รวมอยู่ใน VS 2012) แต่ไม่รวม D3DX9 Direct3D 9 Debug Runtime ไม่ได้รับการรองรับบน Windows 8 คุณสามารถใช้ Legacy DirectX SDK บน Windows 8 ได้ แต่มีความท้าทายมากมายในการติดตั้งและข้อ จำกัด

API ที่แนะนำให้ใช้สำหรับการเขียนแอปพลิเคชันใหม่บน Windows 7 และ Windows 8 คือ Direct3D 11 ซึ่งใช้ได้กับทั้งแอปพลิเคชัน Win32 บนเดสก์ท็อปและแอพ Windows Store นอกจากนี้ขอแนะนำให้คุณใช้ Windows 8.x SDK และไม่ควรใช้ DirectX SDK

ดูเกมสำหรับ Windows และ DirectX SDKสำหรับโพสต์มากมายในหัวข้อนี้


โปรดทราบว่าคุณไม่ได้ "ติดตั้ง DirectX" บน Windows รุ่นใหม่กว่า Windows XP Service Pack 1 ใด ๆ แพ็คเกจ "DirectX End-User Runtime" จะติดตั้งบน Windows XP SP2, Windows Vista, Windows 7 และ Windows 8.x แต่ มันไม่เคยติดตั้ง "DirectX" มันปรับใช้ DLLs ตัวช่วยบางตัวซึ่งเป็นบิตเสริมจาก DirectX SDK รุ่นเก่า: XINPUT 1.3, XAudio 2.7, D3DX และอื่น ๆ Direct3D, DirectInput, DirectSound และอื่น ๆ ได้รับการอัปเดตเป็นส่วนหนึ่งของ Service Pack อย่างเป็นทางการหรือ Windows Update ลิงค์
Chuck Walbourn

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.