Browse Source

ShaderGenerator: fix TextureAttrib assertion
This was caused by af57c829d2c15530f72395895353c004a7440a35 and was triggered by a change in TextureStage sort.

rdb 8 years ago
parent
commit
9c4151cb0f
2 changed files with 4 additions and 1 deletions
  1. 1 1
      panda/src/pgraph/textureAttrib.I
  2. 3 0
      panda/src/pgraph/textureAttrib.cxx

+ 1 - 1
panda/src/pgraph/textureAttrib.I

@@ -263,7 +263,7 @@ on_stage_affects_alpha(size_t n) const {
  */
 INLINE void TextureAttrib::
 check_sorted() const {
-  if (_sort_seq != TextureStage::get_sort_seq()) {
+  if (_sort_seq != TextureStage::get_sort_seq() && !_sort_seq.is_fresh()) {
     ((TextureAttrib *)this)->sort_on_stages();
   }
 }

+ 3 - 0
panda/src/pgraph/textureAttrib.cxx

@@ -807,6 +807,9 @@ get_auto_shader_attrib_impl(const RenderState *state) const {
     }
   }
 
+  // Prevent check_sorted() from being called on this state.
+  attrib->_sort_seq = UpdateSeq::fresh();
+
   return return_new(attrib);
 }