2012-02-19 35 views
6

Tôi dường như không thể có được câu trả lời rõ ràng cho điều này thông qua tìm kiếm. Phần cứng hoạt động của phần mềm Win32 có tăng tốc hay không (GDI, chứ không phải GDI +). Tôi không biết làm thế nào các chức năng này giao diện với trình điều khiển đồ họa. Có cuộc gọi chức năng nào để xác minh chức năng này không, như GetCaps? cho một thiết bị đồ họa cụ thể (thiết bị đồ họa win32) để xem các chức năng này có nhận được tăng tốc phần cứng không?Các hàm GDI BitBlt và phần cứng StretchBlt có tăng tốc trong Win32 không?

Trả lời

3

Theo this, GDI chỉ là phần cứng được tăng tốc trên Windows 7 trở đi. This liệt kê cách chỉ định thao tác nào sẽ được tăng tốc phần cứng. bao gồm trong danh sách là BitBltStretchBlt, vì vậy có, chúng được tăng tốc phần cứng, nhưng bạn cần phải có một hệ thống hỗ trợ nó, và bạn cần phải kích hoạt nó.

+3

Chủ yếu là đúng. GDI đã được tăng tốc phần cứng trong một thời gian rất dài. Windows Vista chỉ là một thời gian tối tăm cho GDI; nó bị mất khả năng tăng tốc phần cứng và người dùng phàn nàn không ngừng. Kết quả là (hoặc có lẽ đó là kế hoạch tất cả cùng), Windows 7 đã tăng tốc phần cứng trở lại GDI và tất cả đều tốt với vũ trụ một lần nữa. –

+0

Aero, không phải Vista. –

2

Nếu hoạt động GDI được tăng tốc phần cứng phụ thuộc vào trình điều khiển nhưng tất cả các phiên bản của Windows ngoại trừ Vista * đều hỗ trợ nó.

  • Vista thêm một mô hình điều khiển mới mang tên Windows Display Driver Model (WDDM)
  • WDDM v1.1 đã được bổ sung trong Windows 7, điều này bao gồm sự trở lại của GDI hardware acceleration.

*: Có thể sử dụng trình điều khiển XP trên Vista, điều gì xảy ra với GDI trong thiết lập mà tôi không biết. (Có thể bạn có thể phát hiện điều này bằng cách kiểm tra D3DCAPS2_CANSHARERESOURCE?) Chỉnh sửa: Theo this, nó hoạt động với XPDM.

Có một số hạt nhân caps bạn có thể kiểm tra trên Win7 nhưng tôi không biết nếu nó có thể kiểm tra trong usermode.

+0

Lưu ý: một điều có vẻ như để ngăn tăng tốc trên Win7 dựa trên thử nghiệm của tôi là sử dụng SetStretchBltMode (dc, HALFTONE) để cho phép lọc tuyến tính trong khi Stretch (Tôi không chắc chắn nếu điều này được tăng tốc trên XP). – Suma

+0

@Suma Có, và tôi tự hỏi tại sao phần cứng lại làm điều đó rất tốt. Trong thực tế nó là có nơi đạt được sẽ là đáng kể. –

Các vấn đề liên quan