2010-12-08 13 views
6

अभिवादनWPF और DirectX - खेल ओवरले

मैं WPF पढ़ा है DirectX तो मैं अगर यह संभव है WPF के साथ एक खेल ओवरले बनाने के लिए सोच रहा हूँ इस्तेमाल करता है। मैं अपने आप में Winforms के साथ की कोशिश की या WPF और पारदर्शी रूपों या विंडोज़ हमेशा स्ट्रीमिंग सॉफ्टवेयर के लिए समस्याएं पैदा इस प्रकार मैं सोच रहा हूँ यह करने के लिए निम्नलिखित संभव है है sketch

एक WPF आवेदन जिस पर एक खिड़की से पता चलता बनाएं ओवरले के लिए आवश्यक सभी विकल्पों के साथ डेस्कटॉप। एक बार सभी विकल्प भरने के बाद आप अपडेट कर सकते हैं और ओवरले को खेल में सभी जानकारी के साथ बनाया गया है। डब्ल्यूपीएफ ऐप स्वयं स्ट्रीम पर दिखाई नहीं देगा। इसका मतलब है कि जब ब्रॉडकास्टर सेटिंग्स बदलता है तो सभी दर्शकों को इसके साथ कोई परेशानी नहीं होगी। ओवरले
के बारे में

अधिक ओवरले तो यह जानकारी का एक सेट राशि की आवश्यकता होगी एक स्कोरबोर्ड हो जाएगा। उदाहरण के लिए: rough sketch scoreboard

तो मेरे सवाल (रों)

  • मैं जो गतिशील रूप से एक DirectX ओवरले में खेल बनाता है एक WPF आवेदन कर सकते हैं योग के लिए?

  • चूंकि यह DirectX9 में काम करने की जरूरत है, इस परियोजना को संभव एक एकल देव (मुझे) जो DirectX के साथ कोई exp के बराबर है से बनाने के लिए है?

  • यदि यह संभव है, तो मुझे कहां से शुरू करना चाहिए?

आपकी सभी संभावित अंतर्दृष्टि और उत्तरों के लिए अग्रिम धन्यवाद!

उत्तर

3

D3DImage का उपयोग करके आप क्या चाहते हैं। यह आपको WPF के भीतर किसी भी Direct3D सामग्री को होस्ट करने की अनुमति देता है और आपको पारदर्शिता के साथ ओवरले करने की अनुमति देता है। Here is a simple example

+0

उत्तर के लिए धन्यवाद, क्या यह डी 3 डी छवि सीधे चलने वाले गेम में प्राप्त करना भी संभव है? इस मामले में यह स्टारक्राफ्ट II – Citroenfris

+0

होगा कोई होस्टिंग एप्लिकेशन एक WPF एप्लिकेशन होना चाहिए। एक WPF विंडो बनाना संभव है जिसमें कोई सीमा न हो और आंशिक रूप से पारदर्शी हो। शायद आप उस विंडो को एससी 2 विंडो के शीर्ष पर रख सकते हैं। – bitbonk

+0

समस्या यह है कि WPF विंडो को 'AllowTransparency = "True" पर सेट नहीं किया जा सकता है, यह विंडो को स्ट्रीम पर दिखाए जाने से रोकता है। यहां तक ​​कि एक आंशिक रूप से पारदर्शी खिड़की भी नहीं दिखाया गया है। – Citroenfris

1

उपरोक्त आपकी टिप्पणी से, ऐसा लगता है कि आप वास्तव में स्टारक्राफ्ट II में अपने ओवरले (कम से कम उपयोगकर्ता के परिप्रेक्ष्य से) इंजेक्ट करने की कोशिश कर रहे हैं। आपको लगभग डायरेक्ट बफर की एक प्रति होस्ट करना होगा। इसके अलावा, डब्ल्यूपीएफ के अलावा, आप एक्सएनए देखना चाहेंगे।

संबंधित मुद्दे