2011-01-24 11 views
6

संपादित करें: चूंकि मेरी मूल समस्या मेरी गलती के कारण थी, इसलिए मैं इस प्रश्न को दोबारा बदल दूंगा।होस्टेड सिल्वरलाइट नियंत्रण की प्रतिलिपि सामग्री

इम कोड के आधार पर मेरी सी ++ आवेदन के अंदर एक खिड़की में एक सिल्वरलाइट होस्टिंग here पाया।

अब मैं अपने स्वयं के प्रस्तुतकर्ता के अंदर सामग्री का उपयोग करने के लिए नियंत्रण की सामग्री को स्मृति में कॉपी करना चाहता हूं। मेरी समस्या यह है कि जब मैं "enableGPUAcceleration" को सत्य पर सेट करता हूं, तो बिटबल्ट काम करना बंद कर देता है, मुझे जो भी मिलता है वह कालापन होता है।

मुझे लगता है कि सिद्धांत रूप में वहाँ अपने अल्फा, उदा एक GPU- त्वरण सिल्वरलाइट नियंत्रण की सामग्री की नकल के लिए एक रास्ता होना चाहिए glReadPixels की तरह कुछ के साथ।

किसी को भी कोई विचार नहीं है कि सामग्री को गैर-विंडो रहित जीपीयू-त्वरित सिल्वरलाइट नियंत्रण के अल्फा के साथ कैसे कॉपी किया जाए?

एक और समस्या यह है कि खिड़की दिखाई देनी चाहिए और कोई अन्य विंडो इसे ओवरलैप नहीं कर सकती है, अन्यथा मुझे उचित सामग्री नहीं मिलती है। मैं होस्टिंग विंडो अदृश्य होना चाहूंगा।

कार्य नमूना कोड here पाया जा सकता है (हालांकि वास्तविक बिटबल्ट "टिंग" के बिना जो मैं काम करने की कोशिश कर रहा हूं)।

+2

क्या आपके पास एक नमूना कोड है जो वास्तव में आपकी अल्फा समस्या का प्रदर्शन करता है? चूंकि कोडप्रोजेक्ट के होस्ट किए गए सिल्वरलाइट नियंत्रण को बिटबल्ट के साथ सफलतापूर्वक कॉपी किया जा सकता है, है ना? या क्या मैं कुछ न कुछ भूल रहा हूं? –

+0

@ सिमॉन: आप वास्तव में सही हैं। मेरा टेस्ट कोड गलत था। – ronag

उत्तर

2

मैं इस शोध शुरू कर देंगे, मैं एक विचार OpenCL या शायद जब से तुम Silverlight का उपयोग कर रहे हैं, DirectCompute एक संदर्भ जहां और अधिक लचीलापन हो सकता है स्थापित करने के लिए सक्षम हो सकता है कि नहीं है।

एक तरीका उन भाषाओं में से किसी एक में बस सभी GPU त्वरण करना होगा। इस बीच मैं यह पता लगाने की कोशिश करूंगा कि क्या आप उनमें से किसी एक को अपनी आवश्यक जानकारी या कुछ अन्य तकनीकों को पकड़ने के लिए उपयोग कर सकते हैं।

This link सत्यापित करें कि आप GPU त्वरण किसी भी इंटरैक्टिव सदस्यों के लिए सक्षम की आवश्यकता होगी लगता है।

संपादित करें:

मुझे लगता है कि लेख आपकी समस्या को कुछ अन्य सहायता प्रदान कर सकते हैं। अनिवार्य रूप से यह कैश तक पहुंचने और यह सुनिश्चित करने के लिए होगा कि आप कैश का उपयोग कर रहे हैं। कैश मोड में होने वाला कुछ भी अस्थायी रूप से ग्राफिक्स कार्ड पर संग्रहीत किया जाएगा।

This article भी मुद्दों पर कुछ प्रकाश डालता है। जहां यह हार्डवेयर प्रतिपादन पर बोलता है, यह ध्यान रखना महत्वपूर्ण है कि कौन से संचालन कैश के साथ समस्याएं पैदा करेंगे।

मुझे स्वीकार करना होगा कि मैं सिल्वरलाइट में बिल्कुल धाराप्रवाह नहीं हूं, लेकिन इन प्रकार की समस्याएं परिचित हैं। ऐसा करना जो मैं आपके कोड की स्थिति को समझ सकता हूं।

-1

दुख की बात है कि आप (IMHO) नहीं कर सकते हैं।

यदि आप त्वरण सक्षम करते हैं तो सभी वीडियो प्रोसेसिंग जीपीयू में किया जाता है और हार्डवेयर ओवरले बफर का उपयोग करके स्क्रीन पर आउटपुट किया जाता है। इसलिए पहुंच योग्य नहीं है।

विंडोज़ पर प्रिंट स्क्रीन फ़ंक्शन के लिए भी यही सच है। जब तक कि आप gpu तक पहुंच नहीं सकते हैं और पिक्सल निकाल सकते हैं जो आप परेशानी में हैं।

यहां स्क्रीनशॉट अनुभाग पर एक नज़र डालें ...http://en.wikipedia.org/wiki/Hardware_overlay

मैं चांदी की रोशनी पर एक नौसिखिया हूं और इसलिए यह नहीं पता कि क्या उपलब्ध है, लेकिन क्या आप इसे प्रस्तुत करने से पहले डेटा निकाल सकते हैं। हालांकि एप्लिकेशन को नाटकीय रूप से धीमा कर सकता है। जीपीयू त्वरण सीपीयू और बैंडविड्थ प्रतिबंधों को हटाने के लिए डिज़ाइन किया गया है, इस प्रकार पथ में आने वाली कुछ भी इसे धीमा कर देगी। आप झुकाव बिट (डीआरएम) को सब कुछ अक्षम करने को भी ट्रिगर कर सकते हैं।

डीसी

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