- Timestamp:
- 06/27/08 13:33:46 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/RenderQueue.cpp
r2800 r2801 7 7 using namespace std; 8 8 9 // sort by alpha, in second instance per texture 10 //#define SORT_ALPHA 9 11 10 12 namespace CHCDemoEngine … … 12 14 13 15 14 inline static bool IsLower(SceneEntity *ent1, SceneEntity *ent2)16 inline static bool CompTexture(SceneEntity *ent1, SceneEntity *ent2) 15 17 { 16 18 // group by texture size … … 25 27 26 28 27 inline static bool IsLower2(SceneEntity *ent1, SceneEntity *ent2) 29 #ifdef SORT_ALPHA 30 31 inline static bool CompMat(SceneEntity *ent1, SceneEntity *ent2) 32 { 33 return ent1->GetMaterial()->IsAlphaTestEnabled() < ent2->GetMaterial()->IsAlphaTestEnabled(); 34 } 35 36 #else 37 38 inline static bool CompMat(SceneEntity *ent1, SceneEntity *ent2) 28 39 { 29 40 return ent1->GetMaterial() < ent2->GetMaterial(); 30 41 } 42 43 #endif 31 44 32 45 … … 37 50 38 51 RenderQueue::RenderQueue(RenderState *state): 39 mState(state) 52 mState(state), mMinSizeForSorting(3) 40 53 { 41 54 } … … 100 113 101 114 // show ordering by material 102 Debug << "\nmaterial ptr: " << endl;115 Debug << "\nmaterial: " << endl; 103 116 104 117 for (sit = mEntities.begin(); sit != sit_end; ++ sit) 105 118 { 119 #ifdef SORT_ALPHA 120 Debug << (*sit)->GetMaterial()->IsAlphaTestEnabled() << " "; 121 #else 106 122 Debug << (*sit)->GetMaterial() << " "; 123 #endif 107 124 } 108 125 } … … 118 135 void RenderQueue::Sort() 119 136 { 137 #ifdef SORT_ALPHA 138 // sort by texture size 139 sort(mEntities.begin(), mEntities.end(), CompTexture); 140 // sort by alpha test enabled 141 stable_sort(mEntities.begin(), mEntities.end(), CompMat); 142 #else 120 143 // sort by material 121 sort(mEntities.begin(), mEntities.end(), IsLower2);144 sort(mEntities.begin(), mEntities.end(), CompMat); 122 145 // sort by texture size 123 stable_sort(mEntities.begin(), mEntities.end(), IsLower); 146 stable_sort(mEntities.begin(), mEntities.end(), CompTexture); 147 #endif 124 148 } 125 149
Note: See TracChangeset
for help on using the changeset viewer.