+ if(changed&CAMERA)
+ {
+ shdata_changed = true;
+ changed &= ~CAMERA;
+ }
+
+ if(changed&MATRIX)
+ {
+ standard_shdata.uniform(world_obj_matrix_tag, state.model_matrix);
+ LinAl::Matrix<float, 3, 3> nm = state.model_matrix.block<3, 3>(0, 0);
+ nm = transpose(invert(nm));
+ standard_shdata.uniform(world_obj_normal_matrix_tag, nm);
+ changed &= ~MATRIX;
+ shdata_changed = true;
+ }
+
+ if(shdata_changed || shprog_changed || pipeline_changed || extra_shdata)