Changeset View
Changeset View
Standalone View
Standalone View
release/scripts/startup/bl_ui/properties_output.py
| Show First 20 Lines • Show All 91 Lines • ▼ Show 20 Lines | def draw_framerate(layout, rd): | ||||
| col.prop(rd, "fps") | col.prop(rd, "fps") | ||||
| col.prop(rd, "fps_base", text="Base") | col.prop(rd, "fps_base", text="Base") | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| layout.use_property_decorate = False # No animation. | layout.use_property_decorate = False # No animation. | ||||
| rd = context.scene.render | wm = context.window_manager | ||||
| rd = context.scene.render if wm.output_source == "SCENE" else context.video_edit.render | |||||
| col = layout.column(align=True) | col = layout.column(align=True) | ||||
| col.prop(rd, "resolution_x", text="Resolution X") | col.prop(rd, "resolution_x", text="Resolution X") | ||||
| col.prop(rd, "resolution_y", text="Y") | col.prop(rd, "resolution_y", text="Y") | ||||
| col.prop(rd, "resolution_percentage", text="%") | col.prop(rd, "resolution_percentage", text="%") | ||||
| col = layout.column(align=True) | col = layout.column(align=True) | ||||
| col.prop(rd, "pixel_aspect_x", text="Aspect X") | col.prop(rd, "pixel_aspect_x", text="Aspect X") | ||||
| Show All 13 Lines | class RENDER_PT_frame_range(RenderOutputButtonsPanel, Panel): | ||||
| bl_label = "Frame Range" | bl_label = "Frame Range" | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| layout.use_property_decorate = False # No animation. | layout.use_property_decorate = False # No animation. | ||||
| scene = context.scene | wm = context.window_manager | ||||
| source = context.scene if wm.output_source == "SCENE" else context.video_edit | |||||
| col = layout.column(align=True) | col = layout.column(align=True) | ||||
| col.prop(scene, "frame_start", text="Frame Start") | col.prop(source, "frame_start", text="Frame Start") | ||||
| col.prop(scene, "frame_end", text="End") | col.prop(source, "frame_end", text="End") | ||||
| col.prop(scene, "frame_step", text="Step") | col.prop(source, "frame_step", text="Step") | ||||
| class RENDER_PT_time_stretching(RenderOutputButtonsPanel, Panel): | class RENDER_PT_time_stretching(RenderOutputButtonsPanel, Panel): | ||||
| bl_label = "Time Stretching" | bl_label = "Time Stretching" | ||||
| bl_parent_id = "RENDER_PT_frame_range" | bl_parent_id = "RENDER_PT_frame_range" | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| layout.use_property_decorate = False # No animation. | layout.use_property_decorate = False # No animation. | ||||
| rd = context.scene.render | wm = context.window_manager | ||||
| rd = context.scene.render if wm.output_source == "SCENE" else context.video_edit.render | |||||
| col = layout.column(align=True) | col = layout.column(align=True) | ||||
| col.prop(rd, "frame_map_old", text="Old") | col.prop(rd, "frame_map_old", text="Old") | ||||
| col.prop(rd, "frame_map_new", text="New") | col.prop(rd, "frame_map_new", text="New") | ||||
| class RENDER_PT_post_processing(RenderOutputButtonsPanel, Panel): | class RENDER_PT_post_processing(RenderOutputButtonsPanel, Panel): | ||||
| bl_label = "Post Processing" | bl_label = "Post Processing" | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| rd = context.scene.render | wm = context.window_manager | ||||
| rd = context.scene.render if wm.output_source == "SCENE" else context.video_edit.render | |||||
| col = layout.column(heading="Pipeline") | col = layout.column(heading="Pipeline") | ||||
| col.prop(rd, "use_compositing") | col.prop(rd, "use_compositing") | ||||
| col.prop(rd, "use_sequencer") | |||||
| layout.prop(rd, "dither_intensity", text="Dither", slider=True) | layout.prop(rd, "dither_intensity", text="Dither", slider=True) | ||||
| class RENDER_PT_stamp(RenderOutputButtonsPanel, Panel): | class RENDER_PT_stamp(RenderOutputButtonsPanel, Panel): | ||||
| bl_label = "Metadata" | bl_label = "Metadata" | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| layout.use_property_decorate = False # No animation. | layout.use_property_decorate = False # No animation. | ||||
| rd = context.scene.render | wm = context.window_manager | ||||
| rd = context.scene.render if wm.output_source == "SCENE" else context.video_edit.render | |||||
| if rd.use_sequencer: | |||||
| layout.prop(rd, "metadata_input") | |||||
| col = layout.column(heading="Include") | col = layout.column(heading="Include") | ||||
| col.prop(rd, "use_stamp_date", text="Date") | col.prop(rd, "use_stamp_date", text="Date") | ||||
| col.prop(rd, "use_stamp_time", text="Time") | col.prop(rd, "use_stamp_time", text="Time") | ||||
| col.prop(rd, "use_stamp_render_time", text="Render Time") | col.prop(rd, "use_stamp_render_time", text="Render Time") | ||||
| col.prop(rd, "use_stamp_frame", text="Frame") | col.prop(rd, "use_stamp_frame", text="Frame") | ||||
| col.prop(rd, "use_stamp_frame_range", text="Frame Range") | col.prop(rd, "use_stamp_frame_range", text="Frame Range") | ||||
| col.prop(rd, "use_stamp_memory", text="Memory") | col.prop(rd, "use_stamp_memory", text="Memory") | ||||
| col.prop(rd, "use_stamp_hostname", text="Hostname") | col.prop(rd, "use_stamp_hostname", text="Hostname") | ||||
| col.prop(rd, "use_stamp_camera", text="Camera") | col.prop(rd, "use_stamp_camera", text="Camera") | ||||
| col.prop(rd, "use_stamp_lens", text="Lens") | col.prop(rd, "use_stamp_lens", text="Lens") | ||||
| col.prop(rd, "use_stamp_scene", text="Scene") | col.prop(rd, "use_stamp_scene", text="Scene") | ||||
| col.prop(rd, "use_stamp_marker", text="Marker") | col.prop(rd, "use_stamp_marker", text="Marker") | ||||
| col.prop(rd, "use_stamp_filename", text="Filename") | col.prop(rd, "use_stamp_filename", text="Filename") | ||||
| if rd.use_sequencer: | |||||
| col.prop(rd, "use_stamp_sequencer_strip", text="Strip Name") | |||||
| class RENDER_PT_stamp_note(RenderOutputButtonsPanel, Panel): | class RENDER_PT_stamp_note(RenderOutputButtonsPanel, Panel): | ||||
| bl_label = "Note" | bl_label = "Note" | ||||
| bl_parent_id = "RENDER_PT_stamp" | bl_parent_id = "RENDER_PT_stamp" | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | ||||
| def draw_header(self, context): | def draw_header(self, context): | ||||
| rd = context.scene.render | wm = context.window_manager | ||||
| rd = context.scene.render if wm.output_source == "SCENE" else context.video_edit.render | |||||
| self.layout.prop(rd, "use_stamp_note", text="") | self.layout.prop(rd, "use_stamp_note", text="") | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| rd = context.scene.render | wm = context.window_manager | ||||
| rd = context.scene.render if wm.output_source == "SCENE" else context.video_edit.render | |||||
| layout.active = rd.use_stamp_note | layout.active = rd.use_stamp_note | ||||
| layout.prop(rd, "stamp_note_text", text="") | layout.prop(rd, "stamp_note_text", text="") | ||||
| class RENDER_PT_stamp_burn(RenderOutputButtonsPanel, Panel): | class RENDER_PT_stamp_burn(RenderOutputButtonsPanel, Panel): | ||||
| bl_label = "Burn Into Image" | bl_label = "Burn Into Image" | ||||
| bl_parent_id = "RENDER_PT_stamp" | bl_parent_id = "RENDER_PT_stamp" | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | ||||
| def draw_header(self, context): | def draw_header(self, context): | ||||
| rd = context.scene.render | wm = context.window_manager | ||||
| rd = context.scene.render if wm.output_source == "SCENE" else context.video_edit.render | |||||
| self.layout.prop(rd, "use_stamp", text="") | self.layout.prop(rd, "use_stamp", text="") | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| rd = context.scene.render | wm = context.window_manager | ||||
| rd = context.scene.render if wm.output_source == "SCENE" else context.video_edit.render | |||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| col = layout.column() | col = layout.column() | ||||
| col.active = rd.use_stamp | col.active = rd.use_stamp | ||||
| col.prop(rd, "stamp_font_size", text="Font Size") | col.prop(rd, "stamp_font_size", text="Font Size") | ||||
| col.column().prop(rd, "stamp_foreground", slider=True) | col.column().prop(rd, "stamp_foreground", slider=True) | ||||
| col.column().prop(rd, "stamp_background", slider=True) | col.column().prop(rd, "stamp_background", slider=True) | ||||
| col.prop(rd, "use_stamp_labels", text="Include Labels") | col.prop(rd, "use_stamp_labels", text="Include Labels") | ||||
| class RENDER_PT_output(RenderOutputButtonsPanel, Panel): | class RENDER_PT_output(RenderOutputButtonsPanel, Panel): | ||||
| bl_label = "Output" | bl_label = "Output" | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.use_property_split = False | layout.use_property_split = False | ||||
| layout.use_property_decorate = False # No animation. | layout.use_property_decorate = False # No animation. | ||||
| rd = context.scene.render | wm = context.window_manager | ||||
| rd = context.scene.render if wm.output_source == "SCENE" else context.video_edit.render | |||||
| image_settings = rd.image_settings | image_settings = rd.image_settings | ||||
| layout.prop(rd, "filepath", text="") | layout.prop(rd, "filepath", text="") | ||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| col = layout.column(heading="Saving") | col = layout.column(heading="Saving") | ||||
| col.prop(rd, "use_file_extension") | col.prop(rd, "use_file_extension") | ||||
| Show All 9 Lines | |||||
| class RENDER_PT_output_views(RenderOutputButtonsPanel, Panel): | class RENDER_PT_output_views(RenderOutputButtonsPanel, Panel): | ||||
| bl_label = "Views" | bl_label = "Views" | ||||
| bl_parent_id = "RENDER_PT_output" | bl_parent_id = "RENDER_PT_output" | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | ||||
| @classmethod | @classmethod | ||||
| def poll(cls, context): | def poll(cls, context): | ||||
| rd = context.scene.render | wm = context.window_manager | ||||
| rd = context.scene.render if wm.output_source == "SCENE" else context.video_edit.render | |||||
| return rd.use_multiview | return rd.use_multiview | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.use_property_split = False | layout.use_property_split = False | ||||
| layout.use_property_decorate = False # No animation. | layout.use_property_decorate = False # No animation. | ||||
| rd = context.scene.render | wm = context.window_manager | ||||
| rd = context.scene.render if wm.output_source == "SCENE" else context.video_edit.render | |||||
| layout.template_image_views(rd.image_settings) | layout.template_image_views(rd.image_settings) | ||||
| class RENDER_PT_output_color_management(RenderOutputButtonsPanel, Panel): | class RENDER_PT_output_color_management(RenderOutputButtonsPanel, Panel): | ||||
| bl_label = "Color Management" | bl_label = "Color Management" | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| bl_parent_id = "RENDER_PT_output" | bl_parent_id = "RENDER_PT_output" | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | ||||
| def draw(self, context): | def draw(self, context): | ||||
| wm = context.window_manager | |||||
| scene = context.scene | scene = context.scene | ||||
| image_settings = scene.render.image_settings | |||||
| layout = self.layout | layout = self.layout | ||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| layout.use_property_decorate = False # No animation. | layout.use_property_decorate = False # No animation. | ||||
| layout.row().prop(image_settings, "color_management", text=" ", expand=True) | if wm.output_source == "SCENE": | ||||
| layout.row().prop(scene.render.image_settings, "color_management", text=" ", expand=True) | |||||
| flow = layout.grid_flow(row_major=True, columns=0, even_columns=False, even_rows=False, align=True) | flow = layout.grid_flow(row_major=True, columns=0, even_columns=False, even_rows=False, align=True) | ||||
| if wm.output_source == "SCENE": | |||||
| image_settings = scene.render.image_settings | |||||
| if image_settings.color_management == 'OVERRIDE': | if image_settings.color_management == 'OVERRIDE': | ||||
| owner = image_settings | owner = image_settings | ||||
| else: | else: | ||||
| owner = scene | owner = scene | ||||
| flow.enabled = False | flow.enabled = False | ||||
| else: | |||||
| image_settings = context.video_edit.render.image_settings | |||||
| owner = image_settings | |||||
| col = flow.column() | col = flow.column() | ||||
| if image_settings.has_linear_colorspace: | if image_settings.has_linear_colorspace: | ||||
| if hasattr(owner, 'linear_colorspace_settings'): | if hasattr(owner, 'linear_colorspace_settings'): | ||||
| col.prop(owner.linear_colorspace_settings, "name", text="Color Space") | col.prop(owner.linear_colorspace_settings, "name", text="Color Space") | ||||
| else: | else: | ||||
| col.prop(owner.display_settings, "display_device") | col.prop(owner.display_settings, "display_device") | ||||
| col.separator() | col.separator() | ||||
| col.template_colormanaged_view_settings(owner, "view_settings") | col.template_colormanaged_view_settings(owner, "view_settings") | ||||
| class RENDER_PT_encoding(RenderOutputButtonsPanel, Panel): | class RENDER_PT_encoding(RenderOutputButtonsPanel, Panel): | ||||
| bl_label = "Encoding" | bl_label = "Encoding" | ||||
| bl_parent_id = "RENDER_PT_output" | bl_parent_id = "RENDER_PT_output" | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | ||||
| def draw_header_preset(self, _context): | def draw_header_preset(self, _context): | ||||
| RENDER_PT_ffmpeg_presets.draw_panel_header(self.layout) | RENDER_PT_ffmpeg_presets.draw_panel_header(self.layout) | ||||
| @classmethod | @classmethod | ||||
| def poll(cls, context): | def poll(cls, context): | ||||
| rd = context.scene.render | wm = context.window_manager | ||||
| rd = context.scene.render if wm.output_source == "SCENE" else context.video_edit.render | |||||
| return rd.image_settings.file_format in {'FFMPEG', 'XVID', 'H264', 'THEORA'} | return rd.image_settings.file_format in {'FFMPEG', 'XVID', 'H264', 'THEORA'} | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| layout.use_property_decorate = False | layout.use_property_decorate = False | ||||
| rd = context.scene.render | wm = context.window_manager | ||||
| rd = context.scene.render if wm.output_source == "SCENE" else context.video_edit.render | |||||
| ffmpeg = rd.ffmpeg | ffmpeg = rd.ffmpeg | ||||
| layout.prop(rd.ffmpeg, "format") | layout.prop(rd.ffmpeg, "format") | ||||
| layout.prop(ffmpeg, "use_autosplit") | layout.prop(ffmpeg, "use_autosplit") | ||||
| class RENDER_PT_encoding_video(RenderOutputButtonsPanel, Panel): | class RENDER_PT_encoding_video(RenderOutputButtonsPanel, Panel): | ||||
| bl_label = "Video" | bl_label = "Video" | ||||
| bl_parent_id = "RENDER_PT_encoding" | bl_parent_id = "RENDER_PT_encoding" | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | ||||
| @classmethod | @classmethod | ||||
| def poll(cls, context): | def poll(cls, context): | ||||
| rd = context.scene.render | wm = context.window_manager | ||||
| rd = context.scene.render if wm.output_source == "SCENE" else context.video_edit.render | |||||
| return rd.image_settings.file_format in {'FFMPEG', 'XVID', 'H264', 'THEORA'} | return rd.image_settings.file_format in {'FFMPEG', 'XVID', 'H264', 'THEORA'} | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| layout.use_property_decorate = False | layout.use_property_decorate = False | ||||
| self.draw_vcodec(context) | self.draw_vcodec(context) | ||||
| def draw_vcodec(self, context): | def draw_vcodec(self, context): | ||||
| """Video codec options.""" | """Video codec options.""" | ||||
| layout = self.layout | layout = self.layout | ||||
| ffmpeg = context.scene.render.ffmpeg | |||||
| wm = context.window_manager | |||||
| rd = context.scene.render if wm.output_source == "SCENE" else context.video_edit.render | |||||
| ffmpeg = rd.ffmpeg | |||||
| needs_codec = ffmpeg.format in {'AVI', 'QUICKTIME', 'MKV', 'OGG', 'MPEG4', 'WEBM'} | needs_codec = ffmpeg.format in {'AVI', 'QUICKTIME', 'MKV', 'OGG', 'MPEG4', 'WEBM'} | ||||
| if needs_codec: | if needs_codec: | ||||
| layout.prop(ffmpeg, "codec") | layout.prop(ffmpeg, "codec") | ||||
| if needs_codec and ffmpeg.codec == 'NONE': | if needs_codec and ffmpeg.codec == 'NONE': | ||||
| return | return | ||||
| Show All 34 Lines | |||||
| class RENDER_PT_encoding_audio(RenderOutputButtonsPanel, Panel): | class RENDER_PT_encoding_audio(RenderOutputButtonsPanel, Panel): | ||||
| bl_label = "Audio" | bl_label = "Audio" | ||||
| bl_parent_id = "RENDER_PT_encoding" | bl_parent_id = "RENDER_PT_encoding" | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | ||||
| @classmethod | @classmethod | ||||
| def poll(cls, context): | def poll(cls, context): | ||||
| rd = context.scene.render | wm = context.window_manager | ||||
| rd = context.scene.render if wm.output_source == "SCENE" else context.video_edit.render | |||||
| return rd.image_settings.file_format in {'FFMPEG', 'XVID', 'H264', 'THEORA'} | return rd.image_settings.file_format in {'FFMPEG', 'XVID', 'H264', 'THEORA'} | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| layout.use_property_decorate = False | layout.use_property_decorate = False | ||||
| rd = context.scene.render | wm = context.window_manager | ||||
| rd = context.scene.render if wm.output_source == "SCENE" else context.video_edit.render | |||||
| ffmpeg = rd.ffmpeg | ffmpeg = rd.ffmpeg | ||||
| if ffmpeg.format != 'MP3': | if ffmpeg.format != 'MP3': | ||||
| layout.prop(ffmpeg, "audio_codec", text="Audio Codec") | layout.prop(ffmpeg, "audio_codec", text="Audio Codec") | ||||
| if ffmpeg.audio_codec != 'NONE': | if ffmpeg.audio_codec != 'NONE': | ||||
| layout.prop(ffmpeg, "audio_channels") | layout.prop(ffmpeg, "audio_channels") | ||||
| layout.prop(ffmpeg, "audio_mixrate", text="Sample Rate") | layout.prop(ffmpeg, "audio_mixrate", text="Sample Rate") | ||||
| Show All 17 Lines | |||||
| class RENDER_PT_stereoscopy(RenderOutputButtonsPanel, Panel): | class RENDER_PT_stereoscopy(RenderOutputButtonsPanel, Panel): | ||||
| bl_label = "Stereoscopy" | bl_label = "Stereoscopy" | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| def draw_header(self, context): | def draw_header(self, context): | ||||
| rd = context.scene.render | wm = context.window_manager | ||||
| rd = context.scene.render if wm.output_source == "SCENE" else context.video_edit.render | |||||
| self.layout.prop(rd, "use_multiview", text="") | self.layout.prop(rd, "use_multiview", text="") | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| scene = context.scene | wm = context.window_manager | ||||
| rd = scene.render | rd = context.scene.render if wm.output_source == "SCENE" else context.video_edit.render | ||||
| rv = rd.views.active | rv = rd.views.active | ||||
| layout.active = rd.use_multiview | layout.active = rd.use_multiview | ||||
| basic_stereo = rd.views_format == 'STEREO_3D' | basic_stereo = rd.views_format == 'STEREO_3D' | ||||
| row = layout.row() | row = layout.row() | ||||
| layout.row().prop(rd, "views_format", expand=True) | layout.row().prop(rd, "views_format", expand=True) | ||||
| ▲ Show 20 Lines • Show All 48 Lines • Show Last 20 Lines | |||||