[Bf-blender-cvs] [f7f6a44] multiview: Merge remote-tracking branch 'origin/master' into multiview
Dalai Felinto
noreply at git.blender.org
Tue Feb 10 03:56:10 CET 2015
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));
}
}
More information about the Bf-blender-cvs
mailing list