[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: playground/games/astrododge/src
From: Rivo Laks <rivolaks () hot ! ee>
Date: 2009-07-30 16:06:12
Message-ID: 1248969972.240515.15437.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1004624 by rivol:
Precompile shaders earlier in the loading process.
M +25 -25 loadingview.cpp
M +1 -1 loadingview.h
--- trunk/playground/games/astrododge/src/loadingview.cpp #1004623:1004624
@@ -53,11 +53,11 @@
mStateInfos[Load_InitWorld] = LoadingStateInfo( 3, "Creating world");
mStateInfos[Load_AsteroidModelInfos] = LoadingStateInfo( 25, "Loading asteroid models");
mStateInfos[Load_LevelXML] = LoadingStateInfo( 30, "Loading level");
- mStateInfos[Load_ObjectModelInfos] = LoadingStateInfo( 45, "Loading object models");
- mStateInfos[Load_FinalizeModels] = LoadingStateInfo( 50, "Finalizing models");
+ mStateInfos[Load_ObjectModelInfos] = LoadingStateInfo( 42, "Loading object models");
+ mStateInfos[Load_FinalizeModels] = LoadingStateInfo( 47, "Finalizing models");
+ mStateInfos[Load_PrecompileShaders] = LoadingStateInfo( 50, "Compiling shaders");
mStateInfos[Load_AssignObjectModels] = LoadingStateInfo( 55, "Creating objects");
mStateInfos[Load_AssignAsteroidModels] = LoadingStateInfo( 95, "Creating asteroids");
- mStateInfos[Load_PrecompileShaders] = LoadingStateInfo( 98, "Compiling shaders");
mStateInfos[Load_Done] = LoadingStateInfo(100, "Starting game");
}
@@ -179,6 +179,28 @@
updateProgress(Load_FinalizeModels);
mWorld->data()->finalizeModels();
+ updateProgress(Load_PrecompileShaders);
+ QStringList lightTypes;
+ QSet<QString> materials;
+ lightTypes << "directional" << "spot" << "point";
+ materials << "asteroid";
+ foreach (const QString& modelName, mModel2Objects.keys()) {
+ materials << mWorld->data()->model(modelName)->material();
+ }
+
+ foreach (const QString& material, materials) {
+ // For "light" renderMode, use all light types
+ foreach (const QString& light, lightTypes) {
+ if (!mWorld->data()->shaderManager()->precompileProgram("light", light, material)) {
+ return false;
+ }
+ }
+ // For "ambient" mode, just use "directional"
+ if (!mWorld->data()->shaderManager()->precompileProgram("ambient", "directional", material)) {
+ return false;
+ }
+ }
+
updateProgress(Load_AssignObjectModels);
// Objects
QHashIterator<QString, QList<GameObject*> > it(mModel2Objects);
@@ -204,28 +226,6 @@
i++;
}
- updateProgress(Load_PrecompileShaders);
- QStringList lightTypes;
- QSet<QString> materials;
- lightTypes << "directional" << "spot" << "point";
- materials << "asteroid";
- foreach (const QString& modelName, mModel2Objects.keys()) {
- materials << mWorld->data()->model(modelName)->material();
- }
-
- foreach (const QString& material, materials) {
- // For "light" renderMode, use all light types
- foreach (const QString& light, lightTypes) {
- if (!mWorld->data()->shaderManager()->precompileProgram("light", light, material)) {
- return false;
- }
- }
- // For "ambient" mode, just use "directional"
- if (!mWorld->data()->shaderManager()->precompileProgram("ambient", "directional", material)) {
- return false;
- }
- }
-
updateProgress(Load_Done);
return true;
}
--- trunk/playground/games/astrododge/src/loadingview.h #1004623:1004624
@@ -77,9 +77,9 @@
Load_LevelXML,
Load_ObjectModelInfos,
Load_FinalizeModels,
+ Load_PrecompileShaders,
Load_AssignObjectModels,
Load_AssignAsteroidModels,
- Load_PrecompileShaders,
Load_Done
};
struct LoadingStateInfo
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic