Changes to mask evaluation
authorSergey Sharybin <sergey.vfx@gmail.com>
Mon, 10 Jun 2013 13:07:02 +0000 (13:07 +0000)
committerSergey Sharybin <sergey.vfx@gmail.com>
Mon, 10 Jun 2013 13:07:02 +0000 (13:07 +0000)
commit4863feb95640bffa0a2c250f1b9da13100643fd2
treea8063e3ac241cd1917b38671f45109d5c50fd60c
parent183629b451902e32c4840864da55bc3c055fd393
Changes to mask evaluation

- BKE_mask_update_scene was only used with do_newframe=FALSE,
  removed this argument.

- Made it so BKE_mask_update_scene is able to handle LIB_ID_RECALC_DATA
  case. Namely, if mask ID is tagged for data update it means shapekeys
  will be re-evaluated (as if do_newframe=true).

  If mask id only tagged for LIB_ID_RECALC, then no shapekey evaluation
  happens (same as it used to behave before).

  This means, doing DAG_id_tag_update(&mask->id, OB_RECALC_DATA) will
  lead to shapekeys re-evaluation which is really needed in such
  operators as clearing shapekeys (and cleaning shapekeys which is
  in tomato branch yet).

  This is a bit silly to use OB_RECALC_DATA sine mask is not an OB,
  but could not see better way to do it now.

This fixes missing mask re-evaluation after clearing shapekey,
would expect no other functional changes.
source/blender/blenkernel/BKE_mask.h
source/blender/blenkernel/intern/mask.c
source/blender/blenkernel/intern/scene.c
source/blender/editors/mask/mask_shapekey.c