array hab ich nicht probiert, aber ich schätze das würde auch höchstens das Kompilierproblem lösen - nicht aber dass die IDE erstmal hängt wenn man versucht die Quelldatei zu öffnen. Letztendlich wollte ich aber auch nicht so absurd große Executables und die Textur als CPP Datei in git einchecken ist auch nicht so toll. Ressourcen hätte man testen können, aber das macht die Projekteinstellungen wieder komplizierter. Die Idee war, dass ich dem anderen wirklich einfach eine handvoll
cpp und
hpp Dateien gebe, die werden ins Projekt geschmissen und los gehts. Keine weiteren Einstellungen, Kompilerflags, Abhängigkeiten etc..
Ein Binärdump war dann am Ende ähnlich einfach und ist jetzt die insgesamt viel bessere Lösung. Aber wo wir gerade beim Thema sind: Wieso ist Binärdateien schreiben in C++ eigentlich so eine Katastrophe?
Code: Alles auswählen
ofstream out(output_fn, std::ios::trunc | std::ios::binary);
int width = tex.GetWidth();
int height = tex.GetHeight();
out.write(reinterpret_cast<const char*>(&width), sizeof(width));
out.write(reinterpret_cast<const char*>(&height), sizeof(height));
out.write(reinterpret_cast<const char*>(tex.GetData().data()), sizeof(float)*tex.GetData().size());
out.close();
Dieses rumgecaste fühlt sich immer wie ein dreckiger Hack an, aber es scheint dafür keine anderen Bordmittel zu geben? Ein
operator<< ist für jeden Quatsch überladen, aber sobald es um Binärdaten geht zickt C++ rum und sagt, dass es mit so einem Quatsch nichts am Hut hat und ich mich gefälligst um meine Probleme selbst kümmern soll. Also ok, ich kann ja verstehen, dass Binär plattformabhängig ist, aber meine Güte, es könnte doch zumindest ein bisschen was mit schwachen Garantien geben. Jede andere Sprache kriegt das doch auch hin...