Windows 8 vẫn hỗ trợ DirectX 9 chứ?


9

Windows 8 có hỗ trợ DirectX 9 không? Bởi vì tôi đã xem qua một số mẫu được viết bằng C ++ và DirectX 9 được tạo cho Windows 8. Không phải như tôi biết (xem tại đây http://directxtutorial.com/Lesson.aspx?lessonid=111-4-2 ). Ví dụ: DirectX Inizialising với COM:

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

Nó thật kỳ lạ bởi vì tôi biết nó theo cách cũ:

ID3D11Device *dev;                  
ID3D11DeviceContext *devcon;  

(Tôi hy vọng bạn hiểu những gì tôi muốn nói)

Tôi hy vọng nó không thay đổi hoàn toàn do hệ điều hành mới được phát hành của họ.


1
Tôi rất khó tưởng tượng rằng microsoft sẽ đột nhiên giảm hỗ trợ cho 90% + tất cả các trò chơi trên nền tảng windows. Tôi cũng thấy khó khăn hơn khi tin rằng mọi người sẽ không tức giận vì một động thái như vậy bây giờ.
Jari Komppa

Điều đó nói rằng, có thể các SDK mới nhất không bao gồm các tiêu đề / thư viện dx9; Tôi chưa kiểm tra. Điều đó không có nghĩa là bạn không thể sử dụng sdk dx9 như trước đây. Tất nhiên, trừ khi, phòng thu hình ảnh mới nhất bằng cách nào đó cấm bạn làm như vậy, nhưng đó sẽ là tất cả các cách ngớ ngẩn.
Jari Komppa

Chà, tôi cũng không thể tin được, nhưng tôi nghĩ điều đó là có thể bởi vì để có được "Windows 8" - thương hiệu PC hầu hết đều có màn hình cảm ứng và bạn đã bao giờ thấy một trò chơi được viết bằng DirectX hỗ trợ chơi game với Touchscreen chưa?
LaVolpe

Mặc dù vậy, tôi khá chắc chắn rằng bạn sẽ không thể tạo các ứng dụng "ui hiện đại" với dx9.
Jari Komppa

1
Các đối tượng D3D luôn là các đối tượng COM - không sử dụng các con trỏ thô mà thay vào đó, việc đặt chúng vào một con trỏ COM thông minh luôn luôn có thể.

Câu trả lời:


12

, Windows 8 không hỗ trợ DirectX 9.

Để phát triển, DirectX SDKhiện không còn dùng nữa , nhưng bạn sẽ có tất cả các thư viện và tiêu đề bạn cần trong SDK Windows 8 mới, đi kèm với Visual Studio 2012. Bạn có thể đi theo "cách cũ" mà không gặp vấn đề gì . Nếu bạn cần PIX cho một số gỡ lỗi hoặc thư viện D3DX cấp cao, bạn sẽ phải cài đặt lại DXSDK cũ, vì đây không phải là SDK Windows 8.

Tuy nhiên, điều này chỉ hợp lệ cho các ứng dụng máy tính để bàn cũ. Đối với các ứng dụng kiểu Metro, tôi sẽ để Chuck Walbourn từ Microsoft phát biểu :

Direct3D9 và Direct3D9Ex không được hỗ trợ cho các ứng dụng kiểu Metro. Không nên sử dụng hoặc hỗ trợ SDK DirectX với các ứng dụng kiểu Metro. Xem http://msdn.microsoft.com/en-us/l Library / ee663275.aspx .

Có một số tài nguyên có sẵn để giúp bạn chuyển mã cơ sở Direct3D 9 sang Direct3D 11. Phần lớn các tài liệu để chuyển từ Direct3D 9 sang Direct3D 10.x áp dụng đầy đủ ở đây vì API của Direct3D 11 rất giống với Direct3D 10.

Xem http://bloss.msdn.com/b/chuckw/archive/2011/07/11/getting-started-with-direct3d-11.aspx . Hãy chắc chắn xem lại Windows để thực tế: Tận dụng tối đa đồ họa Direct3D 10 trong bản trình bày Trò chơi của bạn vì nó bao gồm nhiều cạm bẫy và các vấn đề về hiệu suất mà các nhà phát triển đã gặp phải trong quá khứ và Cập nhật công nghệ DirectX 11 để tóm tắt về sự khác biệt giữa Direct3D 10 .x và Direct3D 11.

MSDN cũng có một hướng dẫn chuyển cổng http://msdn.microsoft.com/en-us/l Library / ff476190.aspx, hướng dẫn bạn đến http://msdn.microsoft.com/en-us/l Library / bb205073.aspx cho đi trực tiếp từ Direct3D 9 đến Direct3D 11.

Xin lỗi, bạn không thể sử dụng D3D9 trực tiếp cho các ứng dụng kiểu Metro. Nhưng bạn có thể sử dụng D3D11 và giới hạn bản thân ở một số cấp tính năng (ví dụ D3D_FEATURE_LEVEL_9_3) nếu bạn muốn hỗ trợ phần cứng cũ.


Wow, cảm ơn bạn đã trả lời. Như tôi thấy bạn đã làm một nghiên cứu tuyệt vời
LaVolpe

Chà, không hẳn vậy, tôi
tình cờ

1
AFAIK SDK win8 đi kèm với VS 2012 không còn gửi bất kỳ tiêu đề D3D11X * nào - chỉ D3D11 *. Điều này khiến bạn không có một số chức năng tiện ích, như tải các shader từ một tệp và biên dịch chúng trong một lệnh gọi hàm.

Thật. Microsoft nói gì về điều đó: "Hãy lưu ý rằng các công nghệ thay thế cho việc sử dụng D3DX11 hiện tại bao gồm DirectXTex và DirectXTK. D3DXMath được thay thế bằng DirectXMath." Không được thử nghiệm cho đến nay.
Laurent Couvidou

3

Windows 8 có cùng hỗ trợ cơ bản cho các ứng dụng Direct3D 9 như đã có trong Windows 7 và Windows Vista. Direct3D 9 là di sản và chắc chắn có một số vấn đề tương thích có khả năng ảnh hưởng đến các trò chơi dựa trên Direct3D 9, nhưng chúng ít nhiều hoạt động tốt như đã làm trên Windows 7.

Phát triển với Direct3D 9 trên Windows 8 khó khăn hơn một chút so với Windows 7. Các tiêu đề Direct3D 9 tiêu chuẩn là một phần của SDK Windows 8.0 (bao gồm VS 2012), nhưng không bao gồm D3DX9. Thời gian chạy gỡ lỗi Direct3D 9 không được hỗ trợ trên Windows 8. Bạn có thể sử dụng DirectX SDK kế thừa trên Windows 8, nhưng có một số thách thức khi cài đặt và hạn chế.

API được đề xuất sử dụng để viết các ứng dụng mới trên Windows 7 và Windows 8 là Direct3D 11. Điều này hoạt động cho cả ứng dụng máy tính để bàn Win32 và ứng dụng Windows Store. Ngoài ra, bạn nên sử dụng SDK Windows 8.x và không sử dụng DirectX SDK.

Xem Trò chơi cho Windows và DirectX SDK để biết nhiều bài đăng về chính chủ đề này.


Lưu ý rằng bạn không "cài đặt DirectX" trên bất kỳ phiên bản Windows nào mới hơn Windows XP Gói dịch vụ 1. Gói "DirectX End-User Runtime" sẽ cài đặt trên Windows XP SP2, Windows Vista, Windows 7 và Windows 8.x nhưng nó không bao giờ cài đặt "DirectX". Nó chỉ triển khai một số DLL trợ giúp là các bit tùy chọn từ DirectX SDK cũ: XINPUT 1.3, XAudio 2.7, D3DX, v.v. Direct3D, DirectInput, DirectSound, v.v. chỉ được cập nhật như một phần của bản phát hành Gói dịch vụ chính thức hoặc Windows Update. liên kết
Chuck Walbourn

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.