JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=2312005c6ae58d72be8c181f18e23ff7Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Surfaces währen der Laufzeit laden
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
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

BeitragVerfasst am: 17.06.2004, 20:18    Titel: Surfaces währen der Laufzeit laden Antworten mit Zitat

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 Embarassed (Kapitel übersprungen). Ich denke meine frage ist klar und zwar wieso das nicht geht?

THX
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 17.06.2004, 20:22    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beni5
Super JLI'ler


Alter: 36
Anmeldedatum: 12.11.2003
Beiträge: 310
Wohnort: Switzerland
Medaillen: Keine

BeitragVerfasst am: 18.06.2004, 09:52    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 18.06.2004, 10:47    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beni5
Super JLI'ler


Alter: 36
Anmeldedatum: 12.11.2003
Beiträge: 310
Wohnort: Switzerland
Medaillen: Keine

BeitragVerfasst am: 18.06.2004, 10:57    Titel: Antworten mit Zitat

Problem gelöst Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


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

BeitragVerfasst am: 18.06.2004, 12:33    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beni5
Super JLI'ler


Alter: 36
Anmeldedatum: 12.11.2003
Beiträge: 310
Wohnort: Switzerland
Medaillen: Keine

BeitragVerfasst am: 18.06.2004, 15:05    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beni5
Super JLI'ler


Alter: 36
Anmeldedatum: 12.11.2003
Beiträge: 310
Wohnort: Switzerland
Medaillen: Keine

BeitragVerfasst am: 02.07.2004, 14:08    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 26.06.2008, 22:50    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


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

BeitragVerfasst am: 26.06.2008, 23:11    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 27.06.2008, 07:15    Titel: Antworten mit Zitat

ö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
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


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

BeitragVerfasst am: 27.06.2008, 16:57    Titel: Antworten mit Zitat

http://www.jliforum.de/board/viewtopic.php?t=4505&highlight=getopenfilename
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 29.06.2008, 10:33    Titel: Antworten mit Zitat

Ich hab den passenden FLAG bei MSDN gefunden und erfolgreich getestet. Danke für den Tip Smile
_________________
Kein Rückzug! Kein Aufgeben!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
newby
JLI'ler



Anmeldedatum: 17.08.2007
Beiträge: 106

Medaillen: Keine

BeitragVerfasst am: 08.07.2008, 09:35    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 08.07.2008, 13:26    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum