[Bf-blender-cvs] [08f2122] multiview: Merge remote-tracking branch 'origin/master' into multiview
Dalai Felinto
noreply at git.blender.org
Fri Oct 10 17:31:45 CEST 2014
Commit: 08f2122d7aae21edc7628c29815a0ed90901d6ad
Author: Dalai Felinto
Date: Fri Oct 10 12:31:14 2014 -0300
Branches: multiview
https://developer.blender.org/rB08f2122d7aae21edc7628c29815a0ed90901d6ad
Merge remote-tracking branch 'origin/master' into multiview
Conflicts:
source/blender/blenkernel/intern/image.c
source/blender/blenloader/intern/versioning_270.c
source/blender/editors/sculpt_paint/paint_image_proj.c
source/blender/editors/space_image/image_buttons.c
source/blender/editors/space_image/image_ops.c
source/blender/editors/space_view3d/view3d_draw.c
source/blender/makesdna/DNA_image_types.h
source/blender/makesdna/DNA_userdef_types.h
source/blender/makesrna/intern/rna_image.c
source/blender/makesrna/intern/rna_render.c
source/blender/render/extern/include/RE_pipeline.h
source/blender/render/intern/source/pipeline.c
source/blender/render/intern/source/render_result.c
===================================================================
===================================================================
diff --cc intern/cycles/blender/blender_camera.cpp
index 7e51c6e,ce8c64c..9dcc607
--- a/intern/cycles/blender/blender_camera.cpp
+++ b/intern/cycles/blender/blender_camera.cpp
@@@ -556,11 -550,10 +555,10 @@@ void BlenderSync::sync_view(BL::SpaceVi
{
BlenderCamera bcam;
blender_camera_init(&bcam, b_scene.render(), b_scene);
- blender_camera_from_view(&bcam, b_scene, b_v3d, b_rv3d, width, height);
- blender_camera_border(&bcam, b_scene.render(), b_scene, b_v3d, b_rv3d, width, height);
+ blender_camera_from_view(&bcam, b_engine, b_scene, b_v3d, b_rv3d, width, height);
+ blender_camera_border(&bcam, b_engine, b_scene.render(), b_scene, b_v3d, b_rv3d, width, height);
blender_camera_sync(scene->camera, &bcam, width, height);
- scene->camera->use_camera_in_volume = experimental;
}
BufferParams BlenderSync::get_buffer_params(BL::RenderSettings b_render, BL::Scene b_scene, BL::SpaceView3D b_v3d, BL::RegionView3D b_rv3d, Camera *cam, int width, int height)
diff --cc release/scripts/startup/bl_ui/space_image.py
index 861c889,0b97a2d..7922eb7
--- a/release/scripts/startup/bl_ui/space_image.py
+++ b/release/scripts/startup/bl_ui/space_image.py
@@@ -665,35 -661,12 +665,40 @@@ class IMAGE_PT_view_properties(Panel)
sub.active = uvedit.show_stretch
sub.row().prop(uvedit, "draw_stretch_type", expand=True)
+ if ima:
+ layout.separator()
+ render_slot = ima.render_slots.active
+ layout.prop(render_slot, "name", text="Slot Name")
+
+class IMAGE_PT_stereo_3d_properties(Panel):
+ bl_space_type = 'IMAGE_EDITOR'
+ bl_region_type = 'UI'
+ bl_label = "Stereoscopy"
+ bl_options = {'DEFAULT_CLOSED'}
+
+ @classmethod
+ def poll(cls, context):
+ sima = context.space_data
+ image = sima.image if sima else None
+ return (sima and image and image.type == 'IMAGE' and \
+ context.scene.render.use_multiple_views)
+
+ def draw(self, context):
+ layout = self.layout
+
+ sima = context.space_data
+ ima = sima.image
+
+ col = layout
+ col.label(text="Views Format:")
+ col.row().prop(ima, "views_format", expand=True)
+
+ box = col.box()
+ box.active = ima.views_format == 'STEREO_3D'
+ box.template_image_stereo_3d(ima.stereo_3d_format)
+
+
class IMAGE_PT_tools_transform_uvs(Panel, UVToolsPanel):
bl_label = "Transform"
diff --cc source/blender/blenkernel/intern/image.c
index 156ffda,5c673ee..8f17628
--- a/source/blender/blenkernel/intern/image.c
+++ b/source/blender/blenkernel/intern/image.c
@@@ -871,25 -771,15 +873,26 @@@ Image *BKE_image_add_generated(Main *bm
ima->gen_type = gen_type;
ima->gen_flag |= (floatbuf ? IMA_GEN_FLOAT : 0);
ima->gen_depth = depth;
+ copy_v4_v4(ima->gen_color, color);
- ibuf = add_ibuf_size(width, height, ima->name, depth, floatbuf, gen_type, color, &ima->colorspace_settings);
- image_assign_ibuf(ima, ibuf, IMA_NO_INDEX, 0);
+ for (view_id = 0; view_id < 2; view_id++) {
+ ImBuf *ibuf;
+ ImageView *iv;
+ ibuf = add_ibuf_size(width, height, ima->name, depth, floatbuf, gen_type, color, &ima->colorspace_settings);
+ image_assign_ibuf(ima, ibuf, stereo3d ? view_id : IMA_NO_INDEX, 0);
- /* image_assign_ibuf puts buffer to the cache, which increments user counter. */
- IMB_freeImBuf(ibuf);
+ /* image_assign_ibuf puts buffer to the cache, which increments user counter. */
+ IMB_freeImBuf(ibuf);
+ if (!stereo3d) break;
+
+ iv = MEM_mallocN(sizeof(ImageView), "Viewer Image View");
+ BLI_strncpy(iv->name, names[view_id], sizeof(iv->name));
+ BLI_addtail(&ima->views, iv);
+ }
ima->ok = IMA_OK_LOADED;
+ if (stereo3d)
+ ima->flag |= IMA_IS_STEREO | IMA_IS_MULTIVIEW;
}
return ima;
@@@ -3773,8 -3043,8 +3775,8 @@@ static ImBuf *image_acquire_ibuf(Image
if (ima->gen_y == 0) ima->gen_y = 1024;
if (ima->gen_depth == 0) ima->gen_depth = 24;
ibuf = add_ibuf_size(ima->gen_x, ima->gen_y, ima->name, ima->gen_depth, (ima->gen_flag & IMA_GEN_FLOAT) != 0, ima->gen_type,
- color, &ima->colorspace_settings);
+ ima->gen_color, &ima->colorspace_settings);
- image_assign_ibuf(ima, ibuf, IMA_NO_INDEX, 0);
+ image_assign_ibuf(ima, ibuf, index, 0);
ima->ok = IMA_OK_LOADED;
}
else if (ima->source == IMA_SRC_VIEWER) {
diff --cc source/blender/blenloader/intern/versioning_270.c
index 465afc9,d8da0a1..985c037
--- a/source/blender/blenloader/intern/versioning_270.c
+++ b/source/blender/blenloader/intern/versioning_270.c
@@@ -381,91 -390,19 +395,106 @@@ void blo_do_versions_270(FileData *fd,
}
}
}
+
+ if (!MAIN_VERSION_ATLEAST(main, 272, 1)) {
+ Brush *br;
+ for (br = main->brush.first; br; br = br->id.next) {
+ if ((br->ob_mode & OB_MODE_SCULPT) && ELEM(br->sculpt_tool, SCULPT_TOOL_GRAB, SCULPT_TOOL_SNAKE_HOOK))
+ br->alpha = 1.0f;
+ }
+ }
+
+ if (!DNA_struct_elem_find(fd->filesdna, "Image", "float", "gen_color")) {
+ Image *image;
+ for (image = main->image.first; image != NULL; image = image->id.next) {
+ image->gen_color[3] = 1.0f;
+ }
+ }
+
+ {
+ if (!DNA_struct_elem_find(fd->filesdna, "RenderData", "ListBase", "views")) {
+ Scene *scene;
+ SceneRenderView *srv;
+ for (scene = main->scene.first; scene; scene = scene->id.next) {
+ BKE_scene_add_render_view(scene, STEREO_LEFT_NAME);
+ srv = (SceneRenderView *)scene->r.views.first;
+ BLI_strncpy(srv->suffix, "_L", sizeof(srv->suffix));
+
+ BKE_scene_add_render_view(scene, STEREO_RIGHT_NAME);
+ srv = (SceneRenderView *)scene->r.views.last;
+ BLI_strncpy(srv->suffix, "_R", sizeof(srv->suffix));
+ }
+ }
+
+ if (!DNA_struct_elem_find(fd->filesdna, "View3D", "char", "stereo_camera")) {
+ bScreen *screen;
+ for (screen = main->screen.first; screen; screen = screen->id.next) {
+ ScrArea *sa;
+ for (sa = screen->areabase.first; sa; sa = sa->next) {
+ SpaceLink *sl;
+
+ for (sl = sa->spacedata.first; sl; sl = sl->next) {
+ switch (sl->spacetype) {
+ case SPACE_VIEW3D:
+ {
+ View3D *v3d = (View3D *)sl;
+ v3d->stereo3d_camera = STEREO_3D_ID;
+ v3d->stereo3d_flag |= V3D_S3D_DISPPLANE;
+ v3d->stereo3d_convergence_alpha = 0.15f;
+ v3d->stereo3d_volume_alpha = 0.05f;
+ break;
+ }
+ case SPACE_IMAGE:
+ {
+ SpaceImage *sima = (SpaceImage *) sl;
+ sima->iuser.flag |= IMA_SHOW_STEREO;
+ sima->iuser.passtype = SCE_PASS_COMBINED;
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if (!DNA_struct_elem_find(fd->filesdna, "Camera", "CameraStereoSettings", "stereo")) {
+ Camera *cam;
+ for (cam = main->camera.first; cam; cam = cam->id.next) {
+ cam->stereo.interocular_distance = 0.065;
+ cam->stereo.convergence_distance = 30.f * 0.065;
+ }
+ }
+
+ if (!DNA_struct_elem_find(fd->filesdna, "Image", "Stereo3dFormat", "*stereo3d_format")) {
+ Image *ima;
+ for (ima = main->image.first; ima; ima = ima->id.next) {
+ ima->stereo3d_format = MEM_callocN(sizeof(Stereo3dFormat), "Image Stereo 3d Format");
+ }
+ }
+
+ if (!DNA_struct_elem_find(fd->filesdna, "Image", "ListBase", "packedfiles")) {
+ Image *ima;
+ for (ima = main->image.first; ima; ima = ima->id.next) {
+ if (ima->packedfile) {
+ ImagePackedFile *imapf = MEM_mallocN(sizeof(ImagePackedFile), "Image Packed File");
+ BLI_addtail(&ima->packedfiles, imapf);
+
+ imapf->packedfile = ima->packedfile;
+ BLI_strncpy(imapf->filepath, ima->name, FILE_MAX);
+ ima->packedfile = NULL;
+ }
+ }
+ }
+
+ if (!DNA_struct_elem_find(fd->filesdna, "wmWindow", "Stereo3dFormat", "*stereo3d_format")) {
+ wmWindowManager *wm;
+ wmWindow *win;
+
+ for (wm = main->wm.first; wm; wm = wm->id.next) {
+ for (win = wm->windows.first; win; win = win->next) {
+ win->stereo3d_format = MEM_callocN(sizeof(Stereo3dFormat), "Stereo Display 3d Format");
+ }
+ }
+ }
+ }
}
diff --cc source/blender/editors/sculpt_paint/paint_image_proj.c
index d8a4c3d,f9124db..858e9f5
--- a/source/blender/editors/sculpt_paint/paint_image_proj.c
+++ b/source/blender/editors/sculpt_paint/paint_image_proj.c
@@@ -5006,7 -4994,33 +4994,33 @@@ static EnumPropertyItem layer_type_item
{0, NULL, 0, NULL, NULL}
};
- bool proj_paint_add_slot(bContext *C, Material *ma, wmOperator *op)
+ static Image *proj_paint_image_create(wmOperator *op, Main *bmain)
+ {
+ Image *ima;
+ float color[4] = {0.0f, 0.0f, 0.0f, 1.0f};
+ char imagename[MAX_ID_NAME - 2] = "Material Diffuse Color";
+ int width = 1024;
+ int height = 1024;
+ bool use_float = false;
+ short gen_type = IMA_GENTYPE_BLANK;
+ bool alpha = false;
+
+ if (op) {
+ width = RNA_int_get(op->ptr, "width");
+ height = RNA_int_get(op->ptr, "height");
+ use_float = RNA_boolean_get(op->ptr, "float");
+ gen_type = RNA_enum_get(op->ptr, "generated_type");
+ RNA_float_get_array(op->ptr, "color", color);
+ alpha = RNA_boolean_get(op->ptr, "alpha");
+ RNA_string_get(op->ptr, "name", imagename);
+ }
+ ima = BKE_image_add_generated(bmain, width, height, imagename, alpha ? 32 : 24, use_float,
- gen_type, color);
++ gen_type, color, false);
+
+ return ima;
+ }
+
+ static bool proj_paint_add_slot(bContext *C, wmOperator *op)
{
Object *ob = CTX_data_active_object(C);
Scene *scene = CTX_data_scene(C);
diff --cc source/blender/editors/space_image/image_buttons.c
index 1f2c7bf,ffdb8ec..fa38857
--- a/source/blender/editors/space_image/image_buttons.c
+++ b/source/blender/editors/space_image/image_buttons.c
@@@ -561,10 -497,9 +566,9 @@@ static void image_user_change(bContext
}
#endif
- //XXX TODO create uiblock_view_buttons
- static void uiblock_layer_pass_buttons(uiLayout *layout, RenderResult *rr, Image *ima, ImageUser *iuser, int w, short *render_slot)
+ static void uiblock_layer_pass_buttons(uiLayout *layout, Image *image, RenderResu
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list