Ich habe ein kleines Problem beim entwickeln einer Klasse.
Wenn ich D3DXCreateTextureFromFile aufrufe, wird immer
d3dxerr_invaliddata zurückgegeben. Die Textur ist im gleichen Ordner
wie die DLL.
Versuch halt nicht FromFileEx sondern FromMemoryEx und öffne und lies die Datei vorher mit CreateFile und ReadFile.
INVALIDDATA heißt aber normalerweise nicht, dass das File nicht gefunden wurde. Textur beschädigt oder in unbekanntem Format?
Danke erstmal.
Diesen Gedanken hatte ich auch zu erst, aber dann habe ich es noch mit einer .dds und .jpg File versucht. Ging nicht.
Ich versuchs erstmal mit dem, was du mir vorgeschlagen hast.
Edit : Muss ich dafür noch irgendeine Header File hinzufügen?
Bei mir ist sie nämlich nicht definiert und im Internet findet man auch nicht viel zu der Funk.
Gibts denn irgendeinen anderen Weg, so ein Bild auf den Monitor zu zeichnen ;O?
Ich hab mal irgendwas mit "Surface" in dem Zusammenhang gehört.
Vielleicht war es auch FromMemory, weiß ich nicht mehr ;O
Google doch einfach D3DXCreateTexture, da solltest du alle Versionen finden.
Oder schau bei D3DXCreateTextureFromFileEx unter see also.
Also auf Texturen bist du so oder so angewiesen. Ob du sie normal erstellst oder mit den D3DX Funktionen bleibt dir überlassen. Zweiteres ist aber zu empfehlen, da du sonst das Image Format selbst parsen und eine Textur mit CreateTexture erstellen müsstest.
Du kannst auch ohne Sprites zeichnen, indem du mit DrawPrimitive(UP) und Vertices arbeitest ;O Nichts anderes macht die Sprite-Klasse intern.
Die Variante bevorzuge ich auch, da man da mehr Freiheiten hat, allerdings ist es auch komplizierter und teilweise verdammt schwer in D3D Hooks einzubauen, da manche Game-Einstellungen das massiv beeinflussen.
Ach ja: Ist nur ne Vermutung, aber vielleicht beduetet INVALIDDATA in diesem Fall auch, dass das Image Format und die Image Info, die daraus ausgelesen wird, nicht zu den Device Einstellungen passt, mit denen es erstellt wurde.
Hmm...
Beim Aufrufen von ImageInfoObjekt->DrawImage(...) crasht jedes Spiel ;O.
Ich schätze mal, dass es auch crashen würde, wenn ich es ohne Klasse machen
würde.
Ich versuch es einfach mal mir D3DXCreateTextureFromFileInMemoryEx, wenn das
Problem weiterhin besteht, melde ich mich einfach wieder.
Edit:
Mit D3DXCreateTextureFromFileInMemoryEx bekomme ich D3DERR_INVALIDCALL.
Ich vermute mal der Pfad ist ungueltig?
Mir ist heute aufgefallen, dass es jetzt geht.
Aber nur auf meinem anderen Computer (Windows 7 64-Bit), und bei meinem anderen nicht
(WIndows 7 32-Bit).Woran kann das liegen?
Und wie Support schon sagte, ich habe mir eine statische lib gemacht, kann das daran liegen?