000
23.04.2010, 17:13 Uhr
Moritz1243
|
Hallo zusammen,
ich habe ein Problem oder einen Fehler mit meinen Thread in dem Texturen geladen werden. Mein Vorhaben war es mehrer Bilder darzustellen. Der Thread, der die dafür nötigen Bilder lädt wird aufgerufen, wenn das programm startet. Nach dem aufruf des Threads wird sofort mit dem rendern der noch nicht vorhanden bilder begonnen. Normaler weise müssten die bilder dann nach und nach geladen werden und somit immer mehr bilder auch gerendert werden. jedoch passiert dies nicht, sondern die bilder bleiben weiß.
Meine Frage ist nun warum kann der Thread die bilder nicht laden, während opengl rendert? Den wenn ich die Funktion zum laden der bilder, anstelle des threads direkt aufrufe stockt das programm zwar erst während der lade zeit, aber dann werden alle bilder angezeit.
Ich habe mal etwas gegoogelt und herrausgefunden das es eventuell an gemeinsamer resourcennutzung liegt und das man sowas mit einer critial section umgehen kann. Stimmt das?
im physdo code sieht das so aus:
so geht:
C++: |
int main { erstellefenster();
loadbmp("..."); }
|
so nicht:
C++: |
int main { erstellefenster();
_beginThread("loadthread", ...); }
void loadthread { loadbmp{"..."}; }
|
danke Dieser Post wurde am 23.04.2010 um 18:34 Uhr von FloSoft editiert. |