Commit: f7f6a4402202b37b7a314e5bd5c51a1336ddfc3e
Author: Dalai Felinto
Date:   Mon Feb 9 22:36:44 2015 -0200
Branches: multiview
https://developer.blender.org/rBf7f6a4402202b37b7a314e5bd5c51a1336ddfc3e

Merge remote-tracking branch 'origin/master' into multiview

Conflicts:
        source/blender/blenkernel/intern/image.c
        source/blender/editors/space_node/drawnode.c
        source/blender/makesrna/intern/rna_image_api.c

===================================================================



===================================================================

diff --cc source/blender/blenkernel/BKE_image.h
index 9c95a79,2c9ecef..82fa826
--- a/source/blender/blenkernel/BKE_image.h
+++ b/source/blender/blenkernel/BKE_image.h
@@@ -187,12 -185,7 +187,9 @@@ void BKE_image_walk_all_users(const str
  
  /* ensures an Image exists for viewing nodes or render */
  struct Image *BKE_image_verify_viewer(int type, const char *name);
 +/* ensures the view node cache is compatible with the scene views */
 +void BKE_image_verify_viewer_views(const struct RenderData *rd, struct Image 
*ima, struct ImageUser *iuser);
  
- /* force an ImBuf to become part of Image */
- void BKE_image_assign_ibuf(struct Image *ima, struct ImBuf *ibuf);
- 
  /* called on frame change or before render */
  void BKE_image_user_frame_calc(struct ImageUser *iuser, int cfra, int 
fieldnr);
  void BKE_image_user_check_frame_calc(struct ImageUser *iuser, int cfra, int 
fieldnr);
diff --cc source/blender/blenkernel/intern/image.c
index cb0fe4f,131a19b..73da1a8
--- a/source/blender/blenkernel/intern/image.c
+++ b/source/blender/blenkernel/intern/image.c
@@@ -2349,64 -2182,6 +2351,59 @@@ Image *BKE_image_verify_viewer(int type
        return ima;
  }
  
 +static void image_viewer_create_views(const RenderData *rd, Image *ima)
 +{
 +      SceneRenderView *srv;
 +      for (srv = rd->views.first; srv; srv = srv->next) {
 +              if (BKE_scene_render_view_active(rd, srv) == false)
 +                      continue;
 +              image_add_view(ima, srv->name, "");
 +      }
 +}
 +
 +/* Reset the image cache and views when the Viewer Nodes views don't match 
the scene views */
 +void BKE_image_verify_viewer_views(const RenderData *rd, Image *ima, 
ImageUser *iuser)
 +{
 +      bool do_reset;
 +
 +      BLI_lock_thread(LOCK_DRAW_IMAGE);
 +
 +      if (BKE_scene_is_stereo3d(rd)) {
 +              ima->flag |= IMA_IS_STEREO;
 +              ima->flag |= IMA_IS_MULTIVIEW;
 +      }
 +      else {
 +              ima->flag &= ~IMA_IS_STEREO;
 +              ima->flag &= ~IMA_IS_MULTIVIEW;
 +              iuser->flag &= ~IMA_SHOW_STEREO;
 +      }
 +
 +      /* see if all scene render views are in the image view list */
 +      do_reset = (BKE_scene_num_views_get(rd) != 
BLI_listbase_count(&ima->views));
 +      if (!do_reset) {
 +              SceneRenderView *srv;
 +              ImageView *iv;
 +
 +              for (iv = ima->views.first; iv; iv = iv->next) {
 +                      srv = BLI_findstring(&rd->views, iv->name, 
offsetof(SceneRenderView, name));
 +                      if ((srv == NULL) || (BKE_scene_render_view_active(rd, 
srv) == false)) {
 +                              do_reset = true;
 +                              break;
 +                      }
 +              }
 +      }
 +
 +      if (do_reset) {
 +              image_free_cached_frames(ima);
 +              BKE_image_free_views(ima);
 +
 +              /* add new views */
 +              image_viewer_create_views(rd, ima);
 +      }
 +
 +      BLI_unlock_thread(LOCK_DRAW_IMAGE);
 +}
 +
- void BKE_image_assign_ibuf(Image *ima, ImBuf *ibuf)
- {
-       image_assign_ibuf(ima, ibuf, IMA_NO_INDEX, 0);
- }
- 
  void BKE_image_walk_all_users(const Main *mainp, void *customdata,
                                void callback(Image *ima, ImageUser *iuser, 
void *customdata))
  {
diff --cc source/blender/editors/include/UI_interface.h
index d5c84e8,590ab1d..c3560f8
--- a/source/blender/editors/include/UI_interface.h
+++ b/source/blender/editors/include/UI_interface.h
@@@ -891,9 -891,8 +891,10 @@@ void uiTemplateGameStates(uiLayout *lay
                        PointerRNA *used_ptr, const char *used_propname, int 
active_state);
  void uiTemplateImage(uiLayout *layout, struct bContext *C, struct PointerRNA 
*ptr, const char *propname, struct PointerRNA *userptr, int compact);
  void uiTemplateImageSettings(uiLayout *layout, struct PointerRNA *imfptr, int 
color_management);
 +void uiTemplateImageStereo3d(uiLayout *layout, struct PointerRNA 
*stereo3d_format_ptr);
 +void uiTemplateImageViews(uiLayout *layout, struct PointerRNA *imfptr);
  void uiTemplateImageLayers(uiLayout *layout, struct bContext *C, struct Image 
*ima, struct ImageUser *iuser);
+ void uiTemplateImageInfo(uiLayout *layout, struct bContext *C, Image *ima, 
ImageUser *iuser);
  void uiTemplateRunningJobs(uiLayout *layout, struct bContext *C);
  void UI_but_func_operator_search(uiBut *but);
  void uiTemplateOperatorSearch(uiLayout *layout);
diff --cc source/blender/editors/space_node/drawnode.c
index 07f4ff6,2089dce..e33ecc8
--- a/source/blender/editors/space_node/drawnode.c
+++ b/source/blender/editors/space_node/drawnode.c
@@@ -703,11 -703,8 +703,10 @@@ static void node_buts_image_user(uiLayo
                uiItemR(col, ptr, "use_auto_refresh", 0, NULL, ICON_NONE);
        }
  
-       col = uiLayoutColumn(layout, false);
- 
 -      if (RNA_enum_get(imaptr, "type") == IMA_TYPE_MULTILAYER) {
 +      if (RNA_enum_get(imaptr, "type") == IMA_TYPE_MULTILAYER &&
 +          RNA_boolean_get(ptr, "has_layers"))
 +      {
+               col = uiLayoutColumn(layout, false);
                uiItemR(col, ptr, "layer", 0, NULL, ICON_NONE);
        }
  }
diff --cc source/blender/makesrna/intern/rna_image_api.c
index 38ad15a,5fc65ea..9b559c8
--- a/source/blender/makesrna/intern/rna_image_api.c
+++ b/source/blender/makesrna/intern/rna_image_api.c
@@@ -144,9 -142,10 +142,11 @@@ static void rna_Image_save(Image *image
        WM_event_add_notifier(C, NC_IMAGE | NA_EDITED, image);
  }
  
- static void rna_Image_pack(Image *image, bContext *C, ReportList *reports, 
int as_png, const char *data, int data_len)
+ static void rna_Image_pack(
+         Image *image, Main *bmain, bContext *C, ReportList *reports,
+         int as_png, const char *data, int data_len)
  {
 +      Scene *scene = CTX_data_scene(C);
        ImBuf *ibuf = BKE_image_acquire_ibuf(image, NULL, NULL);
  
        if (!as_png && (ibuf && (ibuf->userflags & IB_BITMAPDIRTY))) {
@@@ -166,7 -165,7 +166,7 @@@
                        image->packedfile = newPackedFileMemory(data_dup, 
data_len);
                }
                else {
-                       BKE_image_packfiles(reports, image, 
ID_BLEND_PATH(G.main, &image->id));
 -                      image->packedfile = newPackedFile(reports, image->name, 
ID_BLEND_PATH(bmain, &image->id));
++                      BKE_image_packfiles(reports, image, 
ID_BLEND_PATH(bmain, &image->id));
                }
        }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to