ich Bilder über das Netzwerk bin das Herunterladen und fügen Sie sie UI meiner Libgdx als Bild Schauspieler dies mit:Wie unmanaged Texture nachladen Libgdx nach OpenGL Kontext Verlust
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);
diese Gegeben brauche ich irgendwie das Nachladen Texturdaten, da sie verloren gehen, wenn der OpenGL-Kontext verloren geht (z. B. weil der Bildschirm in den Ruhezustand wechselt).
Ich habe versucht, meine eigene Manager-Klasse zu machen, und fügen hinzu
DynamicTextureManager.register(t, pm); // Register texture together with the source pixmap
den obigen Schnipsel, und in resume()
ich tue:
DynamicTextureManager.reload();
Die Managerklasse:
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);
}
}
Aber das hilft nicht - ich habe immer noch mit der Textur entladen und weiße Flächen statt der i Magier.
Wie soll das gemacht werden? Ich konnte keinen Code finden, der das demonstriert!
Meine Vermutung ist, dass eine 'Textur' das zugrundeliegende Textur-Handle nicht _magisch_wieder herstellt. Versuchen Sie, die Textur selbst neu zu erstellen, oder wechseln Sie zu so genannten _managed_ Texturdaten (überprüfen Sie die Unterklassen von 'TextureData';' PixmapTextureData' unterstützt diesen Begriff nicht. –
Ich habe eine Aufgabe, die dieser sehr ähnlich ist. Ich habe nicht fertig, aber wenn ich es funktioniere (was ich denke, wird die Pixmap aus den Binärdaten neu erstellen) werde ich dies mit einer Antwort aktualisieren. – Jyro117
@ Jyro117 Ich habe meine aktuelle Lösung als Antwort, fühlen sich frei zu verbessern! – johlo