मैं गुप्त ड्राइंग कर रहा हूँ एक CGContext
CGBitmapContextCreate
उपयोग करके बनाए गए, तो बाद में CGBitmapContextCreateImage
साथ इसमें से एक CGImage
पैदा करने और मेरे विचार पर ड्राइंग कि drawRect
में (मैं भी उस के शीर्ष पर कुछ अन्य सामान ड्राइंग कर रहा हूँ करने के लिए - इस में एक अभ्यास है परिवर्तनशीलता और जटिलता के विभिन्न स्तरों को अलग करना)।कोर ग्राफिक्स/कोको का उपयोग करके, क्या आप पृष्ठभूमि थ्रेड से बिटमैप संदर्भ में आकर्षित कर सकते हैं?
यह सब ठीक काम करता है जब यह मुख्य धागे पर चल रहा है। हालांकि इस तरह से इसे विभाजित करने की प्रेरणाओं में से एक यह था कि ऑफस्क्रीन भाग पृष्ठभूमि थ्रेड पर चलाया जा सकता था (जिसे मैंने सोचा था क्योंकि यह ऑनस्क्रीन संदर्भ में प्रस्तुत नहीं हो रहा है)।
हालांकि, जब मैं ऐसा करता हूं तो परिणामी छवि खाली होती है! मैंने कोड पर जांच की है, और यह सत्यापित करने के लिए न्यायसंगत NSLog को रखा है कि सब कुछ सही क्रम में हो रहा है।
मेरा अगला कदम यह सबसे आसान कोड है जो इस मुद्दे को पुन: उत्पन्न करता है (या कुछ मूर्खतापूर्ण चीज़ ढूंढें जो मुझे याद आ रही है और इसे ठीक करें) - जिस बिंदु पर मेरे पास आवश्यक होने पर यहां पोस्ट करने के लिए कुछ कोड होगा। लेकिन मैं पहले यहां जांचना चाहता था कि मैं इसके साथ गलत रास्ते नहीं जा रहा हूं। मुझे गुगल्सफेयर के चारों ओर अपनी यात्रा में कुछ भी नहीं मिला जो प्रकाश को किसी भी तरह से बहाल करता है - लेकिन एक दोस्त ने उल्लेख किया कि पृष्ठभूमि पृष्ठभूमि में छवियों का आकार बदलने की कोशिश करते हुए वह एक समान मुद्दे में भाग गया - यह सुझाव देते हुए कि यहां कुछ सामान्य सीमा हो सकती है।
[संपादित करें]
प्रतिक्रियाओं के लिए धन्यवाद। यदि कुछ और नहीं तो उन्होंने मुझे बताया है कि कम से कम मैं इस के लिए जवाब नहीं देने में अकेला नहीं हूं - जो कि मैं जो खोजना चाहता था उसका हिस्सा था। इस बिंदु पर मैं अतिरिक्त संभव उदाहरण प्राप्त करने के लिए अतिरिक्त काम करने जा रहा हूं और कुछ कोड या अधिक जानकारी के साथ वापस आ सकता हूं। इस बीच में किसी भी विचार :-) आ
एक बात को लाने के लिए रखें: लोगों के एक जोड़े एपीआई के संबंध में अवधि धागा सुरक्षा इस्तेमाल किया है। यह ध्यान देने योग्य है कि इस संदर्भ में धागा सुरक्षा के दो प्रकार के होते हैं:
- एपीआई के ही Threadability - यानी यह एक से अधिक धागा (वैश्विक राज्य और अन्य फिर से entrancy मुद्दों इस तरह से सब पर इस्तेमाल किया जा सकता चूंकि सी के स्ट्रोक सामान्य कारण हैं कि एक एपीआई भी थ्रेड सुरक्षित नहीं हो सकता है)।
- व्यक्तिगत संचालन की परमाणुता - एकाधिक थ्रेड एपीआई के माध्यम से एप्लिकेशन स्तर लॉकिंग के बिना एक ही ऑब्जेक्ट्स और संसाधनों के साथ बातचीत कर सकते हैं?
मुझे संदेह है कि अब तक उल्लेख किया गया है कि पहले प्रकार का उल्लेख किया गया है, लेकिन अगर आप स्पष्टीकरण दे सकते हैं तो इसकी सराहना करेंगे।
[EDIT2 - हल]
ठीक है, मैं यह सब काम कर गया। कार्यकारी सारांश यह है कि समस्या बिटमैप संदर्भों के बजाय मेरे साथ थी।
मेरे पृष्ठभूमि धागे में, बिटमैप संदर्भ में आने से ठीक पहले, मैं कुछ अन्य वस्तुओं पर कुछ तैयारी कर रहा था। यह पता चला है कि, परोक्ष रूप से, उन अन्य वस्तुओं के लिए कॉल जहां सेट करने के लिए अग्रणी नेड्स डिस्प्ले को कुछ विचारों पर बुलाया जा रहा है! उस हिस्से को अलग करके जो मुख्य थ्रेड पर किया गया था, अब यह सब पूरी तरह से काम करता है।
तो इस सवाल को हिट करने वाले किसी भी व्यक्ति के लिए यह सोचकर कि क्या वे पृष्ठभूमि थ्रेड पर बिटमैप संदर्भ में आकर्षित कर सकते हैं, जवाब यह है कि आप (यहां दी गई चेतावनियों के साथ) और उत्तर में दिए गए हैं।
धन्यवाद सभी
आपकी समस्या और समाधान के आपके विस्तृत विवरण ने मुझे यह पता लगाने में मदद की कि मेरे अपने कोड के साथ क्या गलत था। आपका बहुत बहुत धन्यवाद! – Kalle