Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Beni5 Super JLI'ler
Alter: 36 Anmeldedatum: 12.11.2003 Beiträge: 310 Wohnort: Switzerland Medaillen: Keine
|
Verfasst am: 17.06.2004, 20:18 Titel: Surfaces währen der Laufzeit laden |
|
|
Hallo!
Ich habe probiert meine Surfaces und texturen während der Laufzeit zu aktualisieren.
Code: |
void CDirect3D::RefreshSets(void)
{
// Dateien aktualisieren
D3DXLoadSurfaceFromFile(m_lpTileSet,0,0,
Tile_Set1
0,D3DX_DEFAULT,0,NULL);
D3DXLoadSurfaceFromFile(m_lpTileSetb,0,0,
Tile_Set2
0,D3DX_DEFAULT,0,NULL);
D3DXGetImageInfoFromFile(Tile_Set2,&Layer2Info);
D3DXCreateTextureFromFileEx(m_lpD3DDevice,
Tile_Set2,
Layer2Info.Width,
Layer2Info.Height,
1,0,
D3DFMT_UNKNOWN,
D3DPOOL_MANAGED,
D3DX_FILTER_NONE,
D3DX_FILTER_NONE,
0,0,0,
&m_lpSetTexture);
} |
Die Variablen Tile_Set1, Tile_Set2 enthalten die aktuellsten Pfade.
problem: Es scheint als ob er es nicht mal probieren würde die Surfaces zu laden. Auch wenn ich die Pfade direkt als string reinschreibe passiert nichts. leider komme ich nicht mit dem Debugger an diese Stelle (Kapitel übersprungen). Ich denke meine frage ist klar und zwar wieso das nicht geht?
THX |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 17.06.2004, 20:22 Titel: |
|
|
Du musst die Texturen danach Invalidieren (Invalidate, InvalidateDeviceObjects) soweit ich weis. Kann auch sein das ich mich irre. _________________ "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 |
|
|
Beni5 Super JLI'ler
Alter: 36 Anmeldedatum: 12.11.2003 Beiträge: 310 Wohnort: Switzerland Medaillen: Keine
|
Verfasst am: 18.06.2004, 09:52 Titel: |
|
|
Irgendwie erkenne ich mit Invalidate keinen Zusammenhang mit den Texturen. Ich habe die Ladefunktionen mal mit FAILED überprüft und die geben alle Fehler zurück. Beim Laden am Anfang jedoch nicht. |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 18.06.2004, 10:47 Titel: |
|
|
Grundsätzlich kannst du Surfaces während der Laufzeit laden bzw. aktualisieren. Dies ist jedoch nicht gerade schnell, gehen tut es aber.
C. |
|
Nach oben |
|
|
Beni5 Super JLI'ler
Alter: 36 Anmeldedatum: 12.11.2003 Beiträge: 310 Wohnort: Switzerland Medaillen: Keine
|
Verfasst am: 18.06.2004, 10:57 Titel: |
|
|
Problem gelöst |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 18.06.2004, 12:33 Titel: |
|
|
und zwar wie? Wenn andere Leute diesen thread hier lesen, wäre es für die ganz interessant zu wissen wie man so ein Priblem lösen kann. Deshalb werden ja auch ätere threads nicht einfach gelöscht, weil man immer noch was draus lernen kann. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
Beni5 Super JLI'ler
Alter: 36 Anmeldedatum: 12.11.2003 Beiträge: 310 Wohnort: Switzerland Medaillen: Keine
|
Verfasst am: 18.06.2004, 15:05 Titel: |
|
|
Bin mir auch nicht sicher aber ich denke es liegt daran dass ich am Anfang ein ungültiges oder garkein Bild reingeladen habe... |
|
Nach oben |
|
|
Beni5 Super JLI'ler
Alter: 36 Anmeldedatum: 12.11.2003 Beiträge: 310 Wohnort: Switzerland Medaillen: Keine
|
Verfasst am: 02.07.2004, 14:08 Titel: |
|
|
Leider ist das Problem nur halb gelöst ich konnte den Fehler jetzt eingrenzen und weiss das ich keine Surfaces mehr laden kann wenn ich die Ladefunktion benutzt habe: Code: | GetOpenFileName(&ofn) |
Immer nach dem Öffen gibt die Funktion D3DXLoadSurfaceFromFile FAILED zurück.
Weiss einer wieso das so ist?
THX |
|
Nach oben |
|
|
LeeDiGer Super JLI'ler
Anmeldedatum: 31.08.2003 Beiträge: 366 Wohnort: Duisburg Medaillen: Keine
|
Verfasst am: 26.06.2008, 22:50 Titel: |
|
|
Mit "GetOpenFileName" habe ich das Problem, sobald ich damit eine Datei datei geöffnet habe (ganz egal, ob ich diese dann auch verwende oder nicht), dass ich hinterher bestimmte Sachen wie neue Texturen, Shaderprogramm oder Meshes laden kann. Wenn ich in diesem Filedialog auf abbrechen gehe, dann würde noch alles funktionieren. Ich möchte aber ein Objekt reinladen können.... hat jemand dieses Problem auch und könnte mir da vielleicht ein Tip geben, warum das nicht geht? _________________ Kein Rückzug! Kein Aufgeben! |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 26.06.2008, 23:11 Titel: |
|
|
Das liegt daran, dass der Dialog den aktuellen Pfad, in dem das Programm ausgeführt wird ändert. Es gibt ein Flag um das zu unterbinden. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
LeeDiGer Super JLI'ler
Anmeldedatum: 31.08.2003 Beiträge: 366 Wohnort: Duisburg Medaillen: Keine
|
Verfasst am: 27.06.2008, 07:15 Titel: |
|
|
ömm, meinst du jetzt bei dem "OPENFILENAME", den man davor definieren muss? hat es etwas mit dem "lpstrInitialDir" zu tun? Kannst du mir da noch einmal ein Tip geben? _________________ Kein Rückzug! Kein Aufgeben! |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
|
Nach oben |
|
|
LeeDiGer Super JLI'ler
Anmeldedatum: 31.08.2003 Beiträge: 366 Wohnort: Duisburg Medaillen: Keine
|
Verfasst am: 29.06.2008, 10:33 Titel: |
|
|
Ich hab den passenden FLAG bei MSDN gefunden und erfolgreich getestet. Danke für den Tip _________________ Kein Rückzug! Kein Aufgeben! |
|
Nach oben |
|
|
newby JLI'ler
Anmeldedatum: 17.08.2007 Beiträge: 106
Medaillen: Keine
|
Verfasst am: 08.07.2008, 09:35 Titel: |
|
|
hey, ist zwar schon ein bischen älter aber egal,
wenn ich ein bild per D3DXLoadSurfaceFromFile mehrmals an verschiedene stellen auf einem surface kopieren möchte, läd der das bild dann jedes mal neu (performance) oder was macht er? |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 08.07.2008, 13:26 Titel: |
|
|
Er wird es jedes mal neu laden, dies kannst du aber auch schnell selbst ausprobieren, indem du zB die Datei nachdem du sie einmal geladen hast löschst und es danach nochmal versuchst. |
|
Nach oben |
|
|
|