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