@@ -136,7 +136,7 @@ RTS3DScene::RTS3DScene()
136
136
// Allocate memory to hold queue of visible renderobjects that need to be drawn last
137
137
// because they are forced translucent.
138
138
m_translucentObjectsCount = 0 ;
139
- if (TheGlobalData && TheGlobalData ->m_maxVisibleTranslucentObjects )
139
+ if (TheGlobalData->m_maxVisibleTranslucentObjects > 0 )
140
140
m_translucentObjectsBuffer = NEW RenderObjClass* [TheGlobalData->m_maxVisibleTranslucentObjects ];
141
141
else
142
142
m_translucentObjectsBuffer = NULL ;
@@ -146,18 +146,26 @@ RTS3DScene::RTS3DScene()
146
146
m_numNonOccluderOrOccludee=0 ;
147
147
m_occludedObjectsCount=0 ;
148
148
149
- m_potentialOccluders=NULL ;
150
- m_potentialOccludees=NULL ;
151
- m_nonOccludersOrOccludees=NULL ;
149
+ if (TheGlobalData->m_maxVisibleOccluderObjects > 0 )
150
+ m_potentialOccluders = NEW RenderObjClass* [TheGlobalData->m_maxVisibleOccluderObjects ];
151
+ else
152
+ m_potentialOccluders = NULL ;
153
+
154
+ if (TheGlobalData->m_maxVisibleOccludeeObjects > 0 )
155
+ m_potentialOccludees = NEW RenderObjClass* [TheGlobalData->m_maxVisibleOccludeeObjects ];
156
+ else
157
+ m_potentialOccludees = NULL ;
158
+
159
+ if (TheGlobalData->m_maxVisibleNonOccluderOrOccludeeObjects > 0 )
160
+ m_nonOccludersOrOccludees = NEW RenderObjClass* [TheGlobalData->m_maxVisibleNonOccluderOrOccludeeObjects ];
161
+ else
162
+ m_nonOccludersOrOccludees = NULL ;
152
163
153
164
// Modify the shader to make occlusion transparent
154
165
ShaderClass shader = PlayerColorShader;
155
166
shader.Set_Src_Blend_Func (ShaderClass::SRCBLEND_SRC_ALPHA);
156
167
shader.Set_Dst_Blend_Func (ShaderClass::DSTBLEND_ONE_MINUS_SRC_ALPHA);
157
168
158
- m_potentialOccluders = NEW RenderObjClass* [TheGlobalData->m_maxVisibleOccluderObjects ];
159
- m_potentialOccludees = NEW RenderObjClass* [TheGlobalData->m_maxVisibleOccludeeObjects ];
160
- m_nonOccludersOrOccludees = NEW RenderObjClass* [TheGlobalData->m_maxVisibleNonOccluderOrOccludeeObjects ];
161
169
#ifdef USE_NON_STENCIL_OCCLUSION
162
170
for (i=0 ; i<MAX_PLAYER_COUNT; i++)
163
171
{ m_occludedMaterialPass[i]=NEW_REF (MaterialPassClass,());
0 commit comments