@@ -188,6 +188,7 @@ class GLShader {
188188 GLuint std140Size = 0 ;
189189
190190 const bool worldShader;
191+ const bool pushSkip;
191192protected:
192193 int _activeMacros = 0 ;
193194 ShaderProgramDescriptor* currentProgram;
@@ -202,13 +203,15 @@ class GLShader {
202203
203204 size_t _uniformStorageSize;
204205 std::vector<GLUniform*> _uniforms;
206+ std::vector<GLUniform*> _pushUniforms;
205207 std::vector<GLUniform*> _materialSystemUniforms;
206208 std::vector<GLUniformBlock*> _uniformBlocks;
207209 std::vector<GLCompileMacro*> _compileMacros;
208210
209211 GLShader ( const std::string& name, uint32_t vertexAttribsRequired,
210212 const bool useMaterialSystem,
211- const std::string newVertexShaderName, const std::string newFragmentShaderName ) :
213+ const std::string newVertexShaderName, const std::string newFragmentShaderName,
214+ const bool newPushSkip = false ) :
212215 _name ( name ),
213216 _vertexAttribsRequired ( vertexAttribsRequired ),
214217 _useMaterialSystem ( useMaterialSystem ),
@@ -217,7 +220,8 @@ class GLShader {
217220 hasVertexShader ( true ),
218221 hasFragmentShader ( true ),
219222 hasComputeShader ( false ),
220- worldShader ( false ) {
223+ worldShader ( false ),
224+ pushSkip ( newPushSkip ) {
221225 }
222226
223227 GLShader ( const std::string& name,
@@ -230,7 +234,8 @@ class GLShader {
230234 hasVertexShader ( false ),
231235 hasFragmentShader ( false ),
232236 hasComputeShader ( true ),
233- worldShader ( newWorldShader ) {
237+ worldShader ( newWorldShader ),
238+ pushSkip ( false ) {
234239 }
235240
236241public:
@@ -396,6 +401,10 @@ class GLShaderManager {
396401 void GenerateBuiltinHeaders ();
397402 void GenerateWorldHeaders ();
398403
404+ static GLuint SortUniforms ( std::vector<GLUniform*>& uniforms );
405+ static std::vector<GLUniform*> ProcessUniforms ( const GLUniform::UpdateType minType, const GLUniform::UpdateType maxType,
406+ const bool skipTextures, std::vector<GLUniform*>& uniforms, GLuint& structSize, GLuint& padding );
407+
399408 template <class T >
400409 void LoadShader ( T*& shader ) {
401410 if ( !deformShaderCount ) {
0 commit comments