Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Hasenfuß Senior JLI'ler

Alter: 37 Anmeldedatum: 20.08.2002 Beiträge: 291
Medaillen: Keine
|
Verfasst am: 13.01.2005, 15:10 Titel: CreateTextureFromFileInMemory/Ex ... |
|
|
Hallo,
ich wollte mir einen Packer schreiben, der alle meine Grafiken in eine Datei schreibt. Soweit so gut...
Wie kann ich diese dann aber als Textur in DirectX laden? Es gibt da diese Funktionen CreateTextureFromFileInMemory / -Ex , allerdings weiß ich nicht, was ich für den Parameter LPCVOID pSrcData angeben muss... Hoffe, ihr könnt mir da weiterhelfen. |
|
Nach oben |
|
 |
Fallen JLI MVP


Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 13.01.2005, 15:14 Titel: |
|
|
Was soll LPCVOID sein ? kenn nur LPVOID sollte aber denke ich mal das gleiche sein nur mitn const. Naja du musst deinen Pointer zu der Textur einfach nur auf LPCVOID casten (LPCVOID)DeinDatenPointer
Nun wird bestimmt gleich Patrick meckern das ich solche cast sachen nutze ^^ _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
 |
Hasenfuß Senior JLI'ler

Alter: 37 Anmeldedatum: 20.08.2002 Beiträge: 291
Medaillen: Keine
|
Verfasst am: 13.01.2005, 15:16 Titel: |
|
|
Ja, soweit wars schon irgendwo klar. Aber wie krieg ich den DatenPointer? Ich hätte dann entweder nen ifstream für die gesamte Packer-Datei oder einen Buffer, in dem die Grafik gespeichert ist, aber keine direkte Adresse im Speicher... |
|
Nach oben |
|
 |
Fallen JLI MVP


Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 13.01.2005, 15:42 Titel: |
|
|
Du entpackst dein paket und liest die entpeckte(n) Datei(n) ein und somit haste ja den Pointer wenn dus einliest in nen char* zum beispiel _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
 |
Hasenfuß Senior JLI'ler

Alter: 37 Anmeldedatum: 20.08.2002 Beiträge: 291
Medaillen: Keine
|
Verfasst am: 13.01.2005, 17:19 Titel: |
|
|
Hm.. also ich zeig einfach am besten mal wie ichs probiert hab:
CPP: | ifstream fin;
fin.open(fileName);
// Größe ermitteln
int size;
char ch;
while(fin.get(ch))
++size;
char * buf = new char[size];
for(int i=0; i<size; ++i)
fin.get(buf[i]);
fin.close();
D3DXCreateTextureFromFileInMemoryEx(m_lpD3DDevice,
&buf[0],
size,
srcInfo.Width,
srcInfo.Height,
1,
0,
D3DFMT_UNKNOWN,
D3DPOOL_MANAGED,
D3DX_FILTER_NONE,
D3DX_FILTER_NONE,
D3DCOLOR_ARGB(0xFF,0,0,0),
0,
0,
&lpTexture)))
delete buf;
|
Anstatt &buf[0] hab ich auch schon &buf, *buf und halt alle möglichen Kominationen probiert.. &buf[0] erschien mir logisch weil irgendwo was von anfangsadresse stand wenn ich mich nicht irre... |
|
Nach oben |
|
 |
Jonathan_Klein Living Legend

Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 13.01.2005, 18:27 Titel: |
|
|
äh, hm, ka, aber müsste das nicht einfach nur "buf" heißen? &buf kann nicht gehen, weils ja die Adresse vom Zeiger ist, nicht vom Inhalt, *buf auch nciht weil das ja der Inhalt ist und kein Zeiger, &buf[0], hm, naja sollte doch eigentlich das sebe sein wie buf.
Hab noch nciht so viel mit diese Dateimethoden gemacht, aber die for Schleife sieht irgendwie interessant aus. Gibt es denn irgendwelche Kompilerfehler, Zugriffsverletzungen, oder was macht der?
[edit]Die letzte Zeile muss auch delete buf[] heißen...[/edit] _________________ https://jonathank.de/games/ |
|
Nach oben |
|
 |
Hasenfuß Senior JLI'ler

Alter: 37 Anmeldedatum: 20.08.2002 Beiträge: 291
Medaillen: Keine
|
Verfasst am: 13.01.2005, 20:09 Titel: |
|
|
nur buf geht auch nicht, das mit delete[] buf stimmt, danke
Es kommt halt dieses Standartfenster mit Es wurde ein Problem festgestellt, bericht senden, etc.... Compilerfehler gibts keine, auch keine relevanten Warnungen |
|
Nach oben |
|
 |
abc_d JLI Master Trainee

Alter: 35 Anmeldedatum: 27.01.2003 Beiträge: 615
Medaillen: Keine
|
Verfasst am: 13.01.2005, 20:41 Titel: |
|
|
Jonathan_Klein hat Folgendes geschrieben: | äh, hm, ka, aber müsste das nicht einfach nur "buf" heißen? &buf kann nicht gehen, weils ja die Adresse vom Zeiger ist, nicht vom Inhalt, *buf auch nciht weil das ja der Inhalt ist und kein Zeiger, &buf[0], hm, naja sollte doch eigentlich das sebe sein wie buf.
Hab noch nciht so viel mit diese Dateimethoden gemacht, aber die for Schleife sieht irgendwie interessant aus. Gibt es denn irgendwelche Kompilerfehler, Zugriffsverletzungen, oder was macht der?
[edit]Die letzte Zeile muss auch delete buf[] heißen...[/edit] |
Viele DirectX Funktionen (z.B. Vertex/Index Buffer) verlangen die erste Adresse eines Arrays, was ja auch sinn macht, wenn man die größe kennt.
Arrays werden direkt hintereinander angelegt, und so kann man auf alle Elemente zugreifen. _________________ http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.
Never touch a running System - der Systemling |
|
Nach oben |
|
 |
Patrick Dark JLI Master

Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 13.01.2005, 21:00 Titel: |
|
|
FallenAngel84 hat Folgendes geschrieben: | Nun wird bestimmt gleich Patrick meckern das ich solche cast sachen nutze ^^ |
Stimmt! "Oh wie kannst Du nur????"  _________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
 |
Fallen JLI MVP


Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 13.01.2005, 21:03 Titel: |
|
|
Mir geht der Sinn folgender Zeile nicht ganz auf:
CPP: | for(int i=0; i fin.get(buf[i]); |
Und auch macht es mich stutzig das du beim errechnen von size den Lesepunkt nicht mehr zurück setzt. Ist das Ok so ? Was macht das .get(ch) überhaupt und was is der return wert ? _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
 |
Hasenfuß Senior JLI'ler

Alter: 37 Anmeldedatum: 20.08.2002 Beiträge: 291
Medaillen: Keine
|
Verfasst am: 14.01.2005, 12:14 Titel: |
|
|
soweit ich weiß kann man mit get den nächsten bytewert im übergegebenen char speichern. Mit der Größe stimmt das auch, also wenn ich size ausgeben lasse ist das genauso groß wie die datei. Ich sollte vielleicht noch sagen, dass ich in dem Code noch keine gepackte Datei benutze, sondern einfach jeden Datei erst in einem Puffer speicher und dann über die Memoryfunktion zu laden versuche.
Wenn jemand andere funktionierende Methoden hat, um grafiken in eine datei zu packen und diese dann einzeln und unabhänging von der gespeicherten Reihenfolge mit directx als texture zu laden, immer her damit  |
|
Nach oben |
|
 |
Jonathan_Klein Living Legend

Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 14.01.2005, 14:36 Titel: |
|
|
im Buch von David Scherfgen wird sogar ein virtuelled Dateisystem entwickelt, naja, darfs wahrscheinlich nicht so einfach hier posten...
Die kann auch mehrere Dateinen aus einem unkomprimierten zip-Archiv laden für kompirmierte brauchst du dann glaub ich die zip-lib. Forum zu dem Buch ist www.spieleprogrammierer.de _________________ https://jonathank.de/games/ |
|
Nach oben |
|
 |
Patrick Dark JLI Master

Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 14.01.2005, 14:39 Titel: |
|
|
Jonathan_Klein hat Folgendes geschrieben: | im Buch von David Scherfgen wird sogar ein virtuelled Dateisystem entwickelt |
Korrektur, emuliert. er benutzt nur zip-dateien die keine komprimierung haben und das kann man nun wirklich nicht als VFS ansehen  _________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
 |
Jonathan_Klein Living Legend

Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
|
Nach oben |
|
 |
|