2012-11-07 28 views
5

Khi tôi cuối cùng đã làm điều này, bạn sẽ sử dụng DirectDraw để blit đến một bề mặt phần cứng, hoặc thậm chí trực tiếp bản đồ nó và vẽ trực tiếp.Cách nhanh nhất để vẽ lên HWND trên Windows hiện đại là gì?

Phương pháp được đề xuất để thực hiện việc này hôm nay là gì? Sử dụng Direct3D 10/11 và làm tương tự?

Chỉnh sửa: Để làm rõ câu hỏi của mình, tôi muốn thực hiện một số phần mềm rasterization và do đó cần có cách nhanh chóng để trích xuất dữ liệu pixel trực tiếp đến màn hình.

+0

Bạn đã thử GIL chưa? Nó khá nhanh cho ImageProcessing. http://www.boost.org/doc/libs/1_52_0/libs/gil/doc/index.html –

+0

Điều đó hoàn toàn không liên quan. –

Trả lời

2

Tôi khuyên bạn nên sử dụng Direct2D có nghĩa là cho các ứng dụng dành cho máy tính để bàn trong những ngày này. Trích:

Mục đích

Direct2D là tăng tốc phần cứng, ngay lập tức-mode, 2-D đồ họa API cung cấp hiệu suất cao và chất lượng cao render cho 2-D hình học, bitmap, và văn bản. API Direct2D được thiết kế để tương thích tốt với GDI, GDI + và Direct3D.

Yêu cầu: Vista trở lên cũng như các phiên bản máy chủ tương ứng (nếu cần).

+0

D2D được sử dụng chủ yếu để vẽ đồ họa vector. Có các hàm bitmap, nhưng chúng chắc chắn không phải là đường dẫn trực tiếp tới VRAM. –

+0

Bạn đi đến kết luận này như thế nào? Nếu các trình điều khiển hỗ trợ nó (mà họ phải để có được chứng nhận), nó sẽ là một cách trực tiếp. Hoặc tôi đang thiếu gì ở đây? Tôi đã không nhận ra đồ họa vector là mục tiêu chính, tôi nghĩ rằng thành phần nhanh là mục tiêu chính cho D2D. Thành thật mà nói nó không rõ ràng với tôi những gì bạn đang tìm kiếm sau đó :) – 0xC0000022L

+1

Direct2D đầu tiên đi qua bộ nhớ kết cấu và sau đó rút ra qua rasterizing. Về cơ bản nó là một trình bao bọc xung quanh Direct3D. –

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