[Bf-blender-cvs] [09c83d6] master: Viewport: Add adjustable safe areas, 3d-view & VSE
Campbell Barton
noreply at git.blender.org
Mon Jan 19 06:50:29 CET 2015
Commit: 09c83d6fea0fc55b54900329c1b81d992d814b9e
Author: Campbell Barton
Date: Mon Jan 19 16:30:35 2015 +1100
Branches: master
https://developer.blender.org/rB09c83d6fea0fc55b54900329c1b81d992d814b9e
Viewport: Add adjustable safe areas, 3d-view & VSE
Also adds safe-area presets.
D325 by Diego Gangl with own edits.
===================================================================
M intern/cycles/blender/addon/ui.py
A release/scripts/presets/safe_areas/14_colon_9_in_16_colon_9.py
A release/scripts/presets/safe_areas/16_colon_9.py
A release/scripts/presets/safe_areas/4_colon_3_in_16_colon_9.py
M release/scripts/startup/bl_operators/presets.py
M release/scripts/startup/bl_ui/properties_data_camera.py
M release/scripts/startup/bl_ui/space_sequencer.py
M source/blender/blenkernel/BKE_scene.h
M source/blender/blenkernel/intern/scene.c
M source/blender/blenloader/intern/versioning_270.c
M source/blender/blenloader/intern/versioning_legacy.c
M source/blender/editors/include/UI_interface.h
M source/blender/editors/interface/interface_draw.c
M source/blender/editors/space_sequencer/sequencer_draw.c
M source/blender/editors/space_sequencer/space_sequencer.c
M source/blender/editors/space_view3d/space_view3d.c
M source/blender/editors/space_view3d/view3d_draw.c
M source/blender/makesdna/DNA_camera_types.h
M source/blender/makesdna/DNA_scene_types.h
M source/blender/makesdna/DNA_space_types.h
M source/blender/makesrna/RNA_access.h
M source/blender/makesrna/intern/rna_camera.c
M source/blender/makesrna/intern/rna_scene.c
M source/blender/makesrna/intern/rna_space.c
===================================================================
diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py
index 8fd09c3..da303ce 100644
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@ -1417,6 +1417,7 @@ def get_panels():
"DATA_PT_vertex_colors",
"DATA_PT_camera",
"DATA_PT_camera_display",
+ "DATA_PT_camera_safe_areas",
"DATA_PT_lens",
"DATA_PT_speaker",
"DATA_PT_distance",
diff --git a/release/scripts/presets/safe_areas/14_colon_9_in_16_colon_9.py b/release/scripts/presets/safe_areas/14_colon_9_in_16_colon_9.py
new file mode 100644
index 0000000..e486b41
--- /dev/null
+++ b/release/scripts/presets/safe_areas/14_colon_9_in_16_colon_9.py
@@ -0,0 +1,7 @@
+import bpy
+safe_areas = bpy.context.scene.safe_areas
+
+safe_areas.title = (0.035, 0.035)
+safe_areas.action = (0.1, 0.05)
+safe_areas.title_center = (0.15, 0.05)
+safe_areas.action_center = (0.1, 0.05)
diff --git a/release/scripts/presets/safe_areas/16_colon_9.py b/release/scripts/presets/safe_areas/16_colon_9.py
new file mode 100644
index 0000000..221b8db
--- /dev/null
+++ b/release/scripts/presets/safe_areas/16_colon_9.py
@@ -0,0 +1,7 @@
+import bpy
+safe_areas = bpy.context.scene.safe_areas
+
+safe_areas.title = (0.035, 0.035)
+safe_areas.action = (0.1, 0.05)
+safe_areas.title_center = (0.0, 0.0)
+safe_areas.action_center = (0.0, 0.0)
diff --git a/release/scripts/presets/safe_areas/4_colon_3_in_16_colon_9.py b/release/scripts/presets/safe_areas/4_colon_3_in_16_colon_9.py
new file mode 100644
index 0000000..c10bc6c
--- /dev/null
+++ b/release/scripts/presets/safe_areas/4_colon_3_in_16_colon_9.py
@@ -0,0 +1,7 @@
+import bpy
+safe_areas = bpy.context.scene.safe_areas
+
+safe_areas.title = (0.035, 0.035)
+safe_areas.action = (0.1, 0.05)
+safe_areas.title_center = (0.175, 0.05)
+safe_areas.action_center = (0.15, 0.05)
diff --git a/release/scripts/startup/bl_operators/presets.py b/release/scripts/startup/bl_operators/presets.py
index f89792b..5e3485a 100644
--- a/release/scripts/startup/bl_operators/presets.py
+++ b/release/scripts/startup/bl_operators/presets.py
@@ -277,6 +277,26 @@ class AddPresetCamera(AddPresetBase, Operator):
return preset_values
+class AddPresetSafeAreas(AddPresetBase, Operator):
+ """Add or remove a Safe Areas Preset"""
+ bl_idname = "safe_areas.preset_add"
+ bl_label = "Add Safe Area Preset"
+ preset_menu = "SAFE_AREAS_MT_presets"
+
+ preset_defines = [
+ "safe_areas = bpy.context.scene.safe_areas"
+ ]
+
+ preset_values = [
+ "safe_areas.title",
+ "safe_areas.action",
+ "safe_areas.title_center",
+ "safe_areas.action_center",
+ ]
+
+ preset_subdir = "safe_areas"
+
+
class AddPresetSSS(AddPresetBase, Operator):
"""Add or remove a Subsurface Scattering Preset"""
bl_idname = "material.sss_preset_add"
diff --git a/release/scripts/startup/bl_ui/properties_data_camera.py b/release/scripts/startup/bl_ui/properties_data_camera.py
index fee3e58..9c94c9c 100644
--- a/release/scripts/startup/bl_ui/properties_data_camera.py
+++ b/release/scripts/startup/bl_ui/properties_data_camera.py
@@ -41,6 +41,14 @@ class CAMERA_MT_presets(Menu):
draw = Menu.draw_preset
+class SAFE_AREAS_MT_presets(Menu):
+ bl_label = "Camera Presets"
+ preset_subdir = "safe_areas"
+ preset_operator = "script.execute_preset"
+ COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
+ draw = Menu.draw_preset
+
+
class DATA_PT_context_camera(CameraButtonsPanel, Panel):
bl_label = ""
bl_options = {'HIDE_HEADER'}
@@ -195,7 +203,7 @@ class DATA_PT_camera_display(CameraButtonsPanel, Panel):
col = split.column()
col.prop(cam, "show_limits", text="Limits")
col.prop(cam, "show_mist", text="Mist")
- col.prop(cam, "show_title_safe", text="Safe Areas")
+
col.prop(cam, "show_sensor", text="Sensor")
col.prop(cam, "show_name", text="Name")
@@ -210,10 +218,57 @@ class DATA_PT_camera_display(CameraButtonsPanel, Panel):
sub.prop(cam, "passepartout_alpha", text="Alpha", slider=True)
+class DATA_PT_camera_safe_areas(CameraButtonsPanel, Panel):
+ bl_label = "Safe Areas"
+ bl_options = {'DEFAULT_CLOSED'}
+ COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
+
+ def draw_header(self, context):
+ cam = context.camera
+
+ self.layout.prop(cam, "show_safe_areas", text="")
+
+ def draw(self, context):
+ layout = self.layout
+ cam = context.camera
+
+ draw_display_safe_settings(layout, cam)
+
+
class DATA_PT_custom_props_camera(CameraButtonsPanel, PropertyPanel, Panel):
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
_context_path = "object.data"
_property_type = bpy.types.Camera
+
+def draw_display_safe_settings(layout, settings):
+
+ safe_data = bpy.context.scene.safe_areas
+ show_safe_areas = settings.show_safe_areas
+ show_safe_center = settings.show_safe_center
+
+ split = layout.split()
+
+ col = split.column()
+ row = col.row(align=True)
+ row.menu("SAFE_AREAS_MT_presets", text=bpy.types.SAFE_AREAS_MT_presets.bl_label)
+ row.operator("safe_areas.preset_add", text="", icon='ZOOMIN')
+ row.operator("safe_areas.preset_add", text="", icon='ZOOMOUT').remove_active = True
+
+ col = split.column()
+ col.prop(settings, "show_safe_center", text="Center-Cut Safe Areas")
+
+ split = layout.split()
+ col = split.column()
+ col.active = show_safe_areas
+ col.prop(safe_data, "title", slider=True)
+ col.prop(safe_data, "action", slider=True)
+
+ col = split.column()
+ col.active = show_safe_areas and show_safe_center
+ col.prop(safe_data, "title_center", slider=True)
+ col.prop(safe_data, "action_center", slider=True)
+
+
if __name__ == "__main__": # only for live edit.
bpy.utils.register_module(__name__)
diff --git a/release/scripts/startup/bl_ui/space_sequencer.py b/release/scripts/startup/bl_ui/space_sequencer.py
index 66b3cbe..bf63b84 100644
--- a/release/scripts/startup/bl_ui/space_sequencer.py
+++ b/release/scripts/startup/bl_ui/space_sequencer.py
@@ -22,6 +22,7 @@ from bpy.types import Header, Menu, Panel
from bl_ui.properties_grease_pencil_common import GreasePencilDataPanel, GreasePencilToolsPanel
from bpy.app.translations import pgettext_iface as iface_
+from bl_ui.properties_data_camera import draw_display_safe_settings
def act_strip(context):
try:
@@ -205,7 +206,7 @@ class SEQUENCER_MT_view(Menu):
if is_preview:
if st.display_mode == 'IMAGE':
- layout.prop(st, "show_safe_margin")
+ layout.prop(st, "show_safe_areas")
elif st.display_mode == 'WAVEFORM':
layout.prop(st, "show_separate_color")
@@ -973,12 +974,38 @@ class SEQUENCER_PT_view(SequencerButtonsPanel_Output, Panel):
col = layout.column()
if st.display_mode == 'IMAGE':
col.prop(st, "draw_overexposed")
- col.prop(st, "show_safe_margin")
+ col.separator()
+
elif st.display_mode == 'WAVEFORM':
col.prop(st, "show_separate_color")
+
+ col = layout.column()
+ col.separator()
col.prop(st, "proxy_render_size")
+class SEQUENCER_PT_view_safe_areas(SequencerButtonsPanel_Output, Panel):
+ bl_label = "Safe Areas"
+ bl_options = {'DEFAULT_CLOSED'}
+
+ @classmethod
+ def poll(cls, context):
+ st = context.space_data
+ is_preview = st.view_type in {'PREVIEW', 'SEQUENCER_PREVIEW'}
+ return is_preview and (st.display_mode == 'IMAGE')
+
+ def draw_header(self, context):
+ st = context.space_data
+
+ self.layout.prop(st, "show_safe_areas", text="")
+
+ def draw(self, context):
+ layout = self.layout
+ st = context.space_data
+
+ draw_display_safe_settings(layout, st)
+
+
class SEQUENCER_PT_modifiers(SequencerButtonsPanel, Panel):
bl_label = "Modifiers"
diff --git a/source/blender/blenkernel/BKE_scene.h b/source/blender/blenkernel/BKE_scene.h
index eac4f6a..149472d 100644
--- a/source/blender/blenkernel/BKE_scene.h
+++ b/source/blender/blenkernel/BKE_scene.h
@@ -39,6 +39,7 @@ extern "C" {
struct AviCodecData;
struct Base;
+struct DisplaySafeAreas;
struct EvaluationContext;
struct bglMats;
struct Main;
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index 13e9b7f..577dbd6 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -689,6 +689,12 @@ Scene *BKE_scene_add(Main *bmain, const char *name)
BLI_strncpy(sce->sequencer_colorspace_settings.name, colorspace_name,
sizeof(sce->sequencer_colorspace_settings.name));
+ /* Safe Areas */
+ copy_v2_fl2(sce->safe_areas.title, 3.5f / 100.0f, 3.5f / 100.0f);
+ copy_v2_fl2(sce->safe_areas.action, 10.0f / 100.0f, 5.0f / 100.0f);
+ copy_v2_fl2(sce->safe_areas.title_center, 17.5f / 100.0f, 5.0f / 100.0f);
+ copy_v2_fl2(sce->safe_areas.action_center, 15.0f / 100.0f, 5.0f / 100.0f);
+
return sce;
}
diff --git a/source/blender/blenloader/intern/versioning_270.c b/source/blender/blenloader/intern/versioning_270.c
index e6e4375..bde3f0f 100644
--- a/source/blender/blenloader/intern/versioning_270.c
+++ b/source/blender/blenloader/intern/versioning_270.c
@@ -458,4 +458,18 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main)
#undef BRUSH_RAKE
#undef BRUSH_RANDOM_ROTATION
}
+
+ /* Customizable Safe Areas */
+ if (!MAIN_VERSION_ATLEAST(main, 273, 2)) {
+ if (!DNA_struct_elem_find(fd->filesdna, "Scene", "DisplaySafeAreas", "safe_areas")) {
+ Scene *scene;
+
+ for (scene = main->scene.first; scene; scene = scene->id.next) {
+ copy_v2_fl2(scene->safe_areas.title, 3.5f / 100.0f, 3.5f / 100.0f);
+ copy_v2_fl2(scene->safe_areas.action, 10.0f / 100.0f, 5.0f / 100.0f);
+ copy_v2_fl2(scene->safe_areas.title_center, 17.5f / 100.0f, 5.0f / 100.0f);
+ copy_v2_fl2(scene->safe_areas.action_center, 15.0f / 100.0f, 5.0f / 100.0f);
+ }
+ }
+ }
}
diff --git a/source/blender/blenloader/intern/versioning_legacy.c b/source/blender/blenloader/intern/versioning_l
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list