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