ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
196
196
EMPFEHLEN
-
Moin,
Ich hab n Programm geschrieben , dass ne Textur laden soll , doch es spuckt mir immer an der stelle ne OutofBoundsException aus.
Code :1
textures[id] = TextureLoader.FromStream(device, ZipReader.getStream(pak, file));
Ich hol mir den Stream aus nem ZipArchiv
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
internal static Stream getStream(string file, string streamObject) { Stream ret = null; try { /*string[] s = streamObject.Split('/'); streamObject = ""; for (int i = 0; i < s.Length; i++) { streamObject = streamObject + s[i]; if (i < s.Length - 1) streamObject = streamObject + "\\"; }*/ ZipInputStream zis = new ZipInputStream(File.OpenRead(file)); ZipEntry ressource; int nBytes = 2048; byte[] data = new byte[2048]; while ((ressource = zis.GetNextEntry()) != null) { if (ressource.IsFile && ressource.Name.Equals(streamObject)) { MemoryStream ms = new MemoryStream(); while ((nBytes = zis.Read(data, 0, data.Length)) > 0) { ms.Write(data, 0, nBytes); } ret = ms; } } } catch (Exception e) { MessageBox.Show(e.Message); } return ret; }
Es ligt definitiv nich an der id-Variable , das hab ich überprüft.
Wäre nett wenn einer ne Antwort wüste.
-
Gibt es bei Direct3D vill eine Maximalgröße für Texturen?
-
In deiner Schleife
Überschreibst du immer wieder ret.Code :1
while ((ressource = zis.GetNextEntry()) != null)
Soll das so sein? Wenn ja, warum?
Könnte es vielleicht daran liegen?
-
Nee , das muss so sein , da die Schleife ja nur dann ausgeführt wird , wenn eine Übereinstimmung mit dem gesuchten Dateinamen auftritt.
Ich bin das ausserdem auch durchgegangen , das klappt soweit und ich bekomme den fertigen Stream mit der Textru aus dem Packet.





Zitieren
Login





