मैं नेटवर्क पर चित्र डाउनलोड करने कर रहा हूँ और उन्हें अपने libgdx यूआई में जोड़ने के रूप में छवि अभिनेताओं इस का उपयोग करते हुए:ओपन संदर्भ नुकसान के बाद अप्रबंधित बनावट libgdx को फिर से लोड करने के लिए कैसे
Pixmap pm = new Pixmap(data, 0, data.length);
Texture t = new Texture(pm);
TextureRegion tr = new TextureRegion(t,200,300);
TextureRegionDrawable trd = new TextureRegionDrawable(tr);
Image icon = new Image();
icon.setDrawable(trd);
को देखते हुए यह मैं फिर से लोड करने की किसी तरह की जरूरत है ओपनजीएल संदर्भ खो जाने पर बनावट डेटा खो जाता है (उदाहरण के लिए क्योंकि स्क्रीन सो जाती है)।
मैं अपने खुद के प्रबंधक वर्ग बनाने की कोशिश की है, जोड़ने
DynamicTextureManager.register(t, pm); // Register texture together with the source pixmap
ऊपर टुकड़ा करने के लिए
, और resume()
में मुझे क्या करना:
DynamicTextureManager.reload();
प्रबंधक वर्ग:
public class DynamicTextureManager {
private static LinkedHashMap<Texture, Pixmap> theMap = new
LinkedHashMap<Texture,Pixmap>();
public static void reload() {
Set<Entry<Texture,Pixmap>> es = theMap.entrySet();
for(Entry<Texture,Pixmap> e : es) {
Texture t = e.getKey();
Pixmap p = e.getValue();
t.draw(p, 0, 0);
}
}
public static void register(Texture t, Pixmap p) {
theMap.put(t, p);
}
}
लेकिन इससे मदद नहीं मिलती है - मैं अभी भी बनावट के बजाय अनलोड और सफेद क्षेत्रों के बनावट के साथ समाप्त होता हूं। दाना।
यह कैसे किया जाना चाहिए? मैं इसे प्रदर्शित करने वाला कोई भी कोड नहीं ढूंढ पा रहा हूं!
मेरा अनुमान है कि 'बनावट' अंतर्निहित बनावट संभाल को _magically_ पुन: उत्पन्न नहीं करता है। 'बनावट' को दोबारा बनाने का प्रयास करें, या तथाकथित _managed_ बनावट डेटा पर स्विच करें ('TextureData' के उप-वर्गों की जांच करें;' पिक्समैपटेक्चरडाटा 'इस धारणा का समर्थन नहीं करता है। –
मेरे पास एक ऐसा कार्य है जो इस तरह के समान है। इसे अभी तक किया है, लेकिन अगर मुझे यह काम मिल रहा है (जो मुझे लगता है कि बाइनरी डेटा से पिक्समैप का पुनर्निर्माण करना शामिल है) मैं इसे उत्तर के साथ अपडेट कर दूंगा। – Jyro117
@ Jyro117 मैंने अपना वर्तमान समाधान उत्तर के रूप में जोड़ा, सुधारने में संकोच न करें! – johlo