2011-12-15 8 views
7

Chào buổi tối guys, Tôi hiện đang làm việc trên màn hình nhiệt độ GPU NVIDIA ở Delphi 2010. Nó cũng sẽ cung cấp thông tin hệ thống từ WMI.Delphi - DirectX - OSD/Screen Overlay

Hiện tại, tôi đang làm việc trên một vài phương thức OSD (Hiển thị trên màn hình) khác nhau cho các tình huống khác nhau. Tôi đã có 2 phương pháp rồi, nhưng tôi cần một phương pháp khác cho trò chơi.

Điều tôi muốn làm là hiển thị lớp phủ hoặc OSD với một số văn bản bằng Direct2D hoặc Direct3D. DLL tiêm là nguy hiểm, chưa kể khá phức tạp để hoàn hảo. Như bạn có thể tưởng tượng, tôi đang cố gắng phủ nó vào trò chơi, nhưng phủ nó ở bất cứ đâu cũng tốt.

Như bạn có thể hình dung, việc sử dụng Direct2D hoặc Direct3D để phủ lên nó sẽ tốt hơn nhiều. Hooking sẽ là một ý tưởng nhưng một lần nữa, mà có thể sẽ dẫn đến yêu cầu tôi phải tiêm mã quá.

Về cơ bản, tôi muốn phương pháp hiển thị văn bản trên màn hình đơn giản nhất mà không bị mất hiệu suất cao và không nhấp nháy khi làm mới màn hình (tức là khung mới được hiển thị). Tôi rất muốn có thể vẽ hình ảnh (vì tôi bao gồm các đồ thị trong ứng dụng của tôi, xuất ra những người sẽ là một tiền thưởng nhưng xuất ra văn bản là nhiệm vụ chính ở đây).

Tôi thành thật không quan tâm nếu tôi cần phải móc và/hoặc tiêm, nhưng tôi không có kinh nghiệm làm như vậy và hoàn toàn sẽ cần rất nhiều trợ giúp với điều đó. Làm một cái gì đó tương tự như những gì MSI Afterburner hoặc FRAPS làm sẽ được chính xác những gì tôi đang sau.

Tôi cũng thiếu kiến ​​thức về lập trình hoặc thiết kế DX, do đó, một lần nữa, cần trợ giúp nặng ở đó. Tôi đã có hầu hết các ứng dụng được thiết kế và làm việc, và đó là một vấn đề hoàn thành nhiệm vụ lớn này, và làm sạch các phần nhỏ hơn khác.

Bất kỳ ý tưởng nào?

Đã chỉnh sửa: Giảm số đoạn văn để đọc dễ dàng hơn. Giảm nó nhiều khả năng sẽ không giải thích đủ điểm. Đối với những người nhìn thấy phiên bản đã chỉnh sửa, tôi đã làm nghiên cứu nặng nhưng không mang lại kết quả gì.

Đã chỉnh sửa: Không ai có thêm đầu vào nào? Nó sẽ thay vì có thể sử dụng một DLL được viết bằng ngôn ngữ khác để sản xuất OSD, và chỉ cần vượt qua các thông số của tôi với nó? Nếu vậy, làm thế nào tôi sẽ đi về làm như vậy và có bất kỳ mã mẫu trong bất kỳ ngôn ngữ tôi có thể sử dụng để làm việc với?

+4

Được chơi với một điều tương tự vài năm trước (với mục đích rất khác nhau). Tôi phải nói rằng đây không phải là điều dễ dàng nhất trên thế giới để đạt được (mặc dù tôi có kinh nghiệm với OpenGL, DirectX (2D và 3D), và phát triển trò chơi điện tử. nó cũng vậy. + 1'd câu hỏi.Giới thiệu giảm các đoạn nếu bạn có thể, mặc dù! – LaKraven

+0

Cảm ơn LaKraven.Tôi không tưởng tượng nó sẽ được dễ dàng để làm.Tuy nhiên, tôi là một nhà phát triển OCD, và tôi don Nếu tôi không muốn sử dụng nó bản thân mình bởi vì nó là phụ để ứng dụng hiện có, tôi không cảm thấy như tôi có thể đặt nó ra trên thế giới, trừ khi nó chỉ được thiết kế cho Tôi đã giảm số lượng ngữ cảnh trong câu hỏi gốc mặc dù :) –

Trả lời

2

Bạn có thể muốn xem Taksi. Nó là một loại FRAPS nguồn mở. Và có, mã tiêm và hooking là có liên quan. Và tốt, được viết bằng C++.

+0

Cảm ơn "iamjoosy", đó là điều tôi đoán. Xây dựng trong RAD Studio 2010 sẽ cho tôi tùy chọn để làm việc với nó, nhưng tôi vẫn thích Delphi cho dự án này. Tôi vẫn + mặc dù nó đáng để xem xét. –