diff options
Diffstat (limited to 'doc/python_api/rst')
-rw-r--r-- | doc/python_api/rst/bge.app.rst | 1 | ||||
-rw-r--r-- | doc/python_api/rst/bge.texture.rst | 8 | ||||
-rw-r--r-- | doc/python_api/rst/bge_types/bge.types.BL_ShapeActionActuator.rst | 4 | ||||
-rw-r--r-- | doc/python_api/rst/bge_types/bge.types.KX_GameObject.rst | 18 | ||||
-rw-r--r-- | doc/python_api/rst/bgl.rst | 4 | ||||
-rw-r--r-- | doc/python_api/rst/change_log.rst | 5651 | ||||
-rw-r--r-- | doc/python_api/rst/gpu.rst | 8 | ||||
-rw-r--r-- | doc/python_api/rst/include__bmesh.rst | 15 | ||||
-rw-r--r-- | doc/python_api/rst/info_api_reference.rst | 2 | ||||
-rw-r--r-- | doc/python_api/rst/info_overview.rst | 51 | ||||
-rw-r--r-- | doc/python_api/rst/info_tutorial_addon.rst | 635 |
11 files changed, 5711 insertions, 686 deletions
diff --git a/doc/python_api/rst/bge.app.rst b/doc/python_api/rst/bge.app.rst index 34b9263db0c..e8b91ffbcaf 100644 --- a/doc/python_api/rst/bge.app.rst +++ b/doc/python_api/rst/bge.app.rst @@ -47,4 +47,3 @@ Module to access application values that remain unchanged during runtime. True if the BGE has been built with physics support. :type: bool - diff --git a/doc/python_api/rst/bge.texture.rst b/doc/python_api/rst/bge.texture.rst index 49f6c4469a4..3028ee653f8 100644 --- a/doc/python_api/rst/bge.texture.rst +++ b/doc/python_api/rst/bge.texture.rst @@ -681,7 +681,7 @@ Image classes .. attribute:: zbuff - Use depth component of render as grey scale color - suitable for texture source. + Use depth component of render as grayscale color - suitable for texture source. :type: bool @@ -817,7 +817,7 @@ Image classes .. attribute:: zbuff - Use depth component of viewport as grey scale color - suitable for texture source. + Use depth component of viewport as grayscale color - suitable for texture source. :type: bool @@ -1260,8 +1260,8 @@ Filter classes .. class:: FilterGray - Filter for gray scale effect. - Proportions of R, G and B contributions in the output gray scale are 28:151:77. + Filter for grayscale effect. + Proportions of R, G and B contributions in the output grayscale are 28:151:77. .. attribute:: previous diff --git a/doc/python_api/rst/bge_types/bge.types.BL_ShapeActionActuator.rst b/doc/python_api/rst/bge_types/bge.types.BL_ShapeActionActuator.rst index d08a761ed95..4bb3d273cb9 100644 --- a/doc/python_api/rst/bge_types/bge.types.BL_ShapeActionActuator.rst +++ b/doc/python_api/rst/bge_types/bge.types.BL_ShapeActionActuator.rst @@ -59,7 +59,7 @@ base class --- :class:`SCA_IActuator` .. attribute:: mode - The operation mode of the actuator. Can be one of :ref:`these constants<shape-action-actuator>`. + The operation mode of the actuator. Can be one of :ref:`these constants<action-actuator>`. :type: integer @@ -68,5 +68,3 @@ base class --- :class:`SCA_IActuator` The name of the property that is set to the current frame number. :type: string - - diff --git a/doc/python_api/rst/bge_types/bge.types.KX_GameObject.rst b/doc/python_api/rst/bge_types/bge.types.KX_GameObject.rst index d8cc5e45e83..c5729fd5b19 100644 --- a/doc/python_api/rst/bge_types/bge.types.KX_GameObject.rst +++ b/doc/python_api/rst/bge_types/bge.types.KX_GameObject.rst @@ -405,7 +405,7 @@ base class --- :class:`SCA_IObject` .. note:: - This attribute is experemental and may be removed (but probably wont be). + This attribute is experimental and may be removed (but probably wont be). .. note:: @@ -419,7 +419,7 @@ base class --- :class:`SCA_IObject` .. note:: - This attribute is experemental and may be removed (but probably wont be). + This attribute is experimental and may be removed (but probably wont be). .. note:: @@ -453,7 +453,7 @@ base class --- :class:`SCA_IObject` .. attribute:: childrenRecursive - all children of this object including childrens children, (read-only). + all children of this object including children's children, (read-only). :type: :class:`CListValue` of :class:`KX_GameObject`'s @@ -536,7 +536,7 @@ base class --- :class:`SCA_IObject` .. method:: getAxisVect(vect) - Returns the axis vector rotates by the objects worldspace orientation. + Returns the axis vector rotates by the object's worldspace orientation. This is the equivalent of multiplying the vector by the orientation matrix. :arg vect: a vector to align the axis. @@ -596,7 +596,7 @@ base class --- :class:`SCA_IObject` Gets the game object's linear velocity. - This method returns the game object's velocity through it's centre of mass, ie no angular velocity component. + This method returns the game object's velocity through it's center of mass, ie no angular velocity component. :arg local: * False: you get the "global" velocity ie: relative to world orientation. @@ -609,7 +609,7 @@ base class --- :class:`SCA_IObject` Sets the game object's linear velocity. - This method sets game object's velocity through it's centre of mass, + This method sets game object's velocity through it's center of mass, ie no angular velocity component. This requires a dynamic object. @@ -814,7 +814,7 @@ base class --- :class:`SCA_IObject` # do something pass - The face paremeter determines the orientation of the normal. + The face parameter determines the orientation of the normal. * 0 => hit normal is always oriented towards the ray origin (as if you casted the ray from outside) * 1 => hit normal is the real face normal (only for mesh object, otherwise face has no effect) @@ -911,7 +911,7 @@ base class --- :class:`SCA_IObject` .. note:: - The gameObject argument has an advantage that it can convert from a mesh with modifiers applied (such as subsurf). + The gameObject argument has an advantage that it can convert from a mesh with modifiers applied (such as the Subdivision Surface modifier). .. warning:: @@ -919,7 +919,7 @@ base class --- :class:`SCA_IObject` .. warning:: - If the object is a part of a combound object it will fail (parent or child) + If the object is a part of a compound object it will fail (parent or child) .. warning:: diff --git a/doc/python_api/rst/bgl.rst b/doc/python_api/rst/bgl.rst index 99f481ce998..0b31e62963c 100644 --- a/doc/python_api/rst/bgl.rst +++ b/doc/python_api/rst/bgl.rst @@ -12,7 +12,7 @@ contents: dir(bgl). A simple search on the web can point to more than enough material to teach OpenGL programming, from books to many collections of tutorials. -Here is a comprehensive `list of books <https://www.opengl.org/documentation/books/>`__ (non free). +Here is a comprehensive `list of books <https://www.khronos.org/developers/books/>`__ (non free). The `arcsynthesis tutorials <https://web.archive.org/web/20150225192611/http://www.arcsynthesis.org/gltut/index.html>`__ is one of the best resources to learn modern OpenGL and `g-truc <http://www.g-truc.net/post-opengl-samples.html#menu>`__ @@ -2067,7 +2067,7 @@ offers a set of extensive examples, including advanced features. :arg length: Returns the length of the string returned in source (excluding the null terminator). :type source: :class:`bgl.Buffer` char. :arg source: Specifies an array of characters that is used to return the source code string. - + .. function:: glShaderSource(shader, shader_string): diff --git a/doc/python_api/rst/change_log.rst b/doc/python_api/rst/change_log.rst index 5a3bf2a6d8d..21c7cf96135 100644 --- a/doc/python_api/rst/change_log.rst +++ b/doc/python_api/rst/change_log.rst @@ -1,3 +1,5 @@ +:tocdepth: 2 + Blender API Change Log ********************** @@ -5648,3 +5650,5652 @@ Added * :class:`bpy.types.SceneRenderLayer.freestyle_settings` * :class:`bpy.types.SceneRenderLayer.use_freestyle` + +2.67 to 2.68 +============ + +bpy.types.BlendDataTexts +------------------------ + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataTexts.load` (filepath, internal), *was (filepath)* + +bpy.types.DopeSheet +------------------- + +Added +^^^^^ + +* :class:`bpy.types.DopeSheet.show_modifiers` + +bpy.types.Armature +------------------ + +Added +^^^^^ + +* :class:`bpy.types.Armature.is_editmode` + +bpy.types.Curve +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Curve.is_editmode` + +bpy.types.Lattice +----------------- + +Added +^^^^^ + +* :class:`bpy.types.Lattice.is_editmode` + +bpy.types.Mesh +-------------- + +Added +^^^^^ + +* :class:`bpy.types.Mesh.calc_smooth_groups` +* :class:`bpy.types.Mesh.is_editmode` + +bpy.types.MetaBall +------------------ + +Added +^^^^^ + +* :class:`bpy.types.MetaBall.is_editmode` + +bpy.types.ParticleSettings +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ParticleSettings.use_modifier_stack` + +bpy.types.WindowManager +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.WindowManager.popup_menu` +* :class:`bpy.types.WindowManager.pupmenu_begin__internal` +* :class:`bpy.types.WindowManager.pupmenu_end__internal` + +bpy.types.World +--------------- + +Added +^^^^^ + +* :class:`bpy.types.World.cycles_visibility` + +bpy.types.MaskSpline +-------------------- + +Added +^^^^^ + +* :class:`bpy.types.MaskSpline.points` + +bpy.types.MaskSplines +--------------------- + +Added +^^^^^ + +* :class:`bpy.types.MaskSplines.new` +* :class:`bpy.types.MaskSplines.remove` + +Removed +^^^^^^^ + +* **add** + +bpy.types.MeshPolygon +--------------------- + +Added +^^^^^ + +* :class:`bpy.types.MeshPolygon.center` + +bpy.types.DecimateModifier +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.DecimateModifier.delimit` + +bpy.types.MovieTrackingSettings +------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.MovieTrackingSettings.use_keyframe_selection` + +bpy.types.Node +-------------- + +Added +^^^^^ + +* :class:`bpy.types.Node.dimensions` + +bpy.types.NodeSocket +-------------------- + +Added +^^^^^ + +* :class:`bpy.types.NodeSocket.hide_value` + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.NodeSocket.draw` (context, layout, node, text), *was (context, layout, node)* + +bpy.types.NodeSocketStandard +---------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.NodeSocketStandard.draw` (context, layout, node, text), *was (context, layout, node)* + +bpy.types.NodeSocketInterfaceStandard +------------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.NodeSocketInterfaceStandard.type` + +bpy.types.NodeTreeInputs +------------------------ + +Added +^^^^^ + +* :class:`bpy.types.NodeTreeInputs.move` + +bpy.types.NodeTreeOutputs +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.NodeTreeOutputs.move` + +bpy.types.CyclesMaterialSettings +-------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.CyclesMaterialSettings.use_transparent_shadow` + +bpy.types.CyclesRenderSettings +------------------------------ + +Added +^^^^^ + +* :class:`bpy.types.CyclesRenderSettings.sampling_pattern` + +bpy.types.RenderEngine +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.RenderEngine.bl_use_exclude_layers` +* :class:`bpy.types.RenderEngine.bl_use_save_buffers` + +bpy.types.SmokeDomainSettings +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SmokeDomainSettings.highres_sampling` + +Removed +^^^^^^^ + +* **use_smooth_emitter** + +bpy.types.SmokeFlowSettings +--------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SmokeFlowSettings.particle_size` +* :class:`bpy.types.SmokeFlowSettings.subframes` +* :class:`bpy.types.SmokeFlowSettings.use_particle_size` + +bpy.types.SpaceProperties +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceProperties.use_limited_texture_context` + +bpy.types.SpaceView3D +--------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceView3D.transform_manipulators` + +Removed +^^^^^^^ + +* **use_manipulator_rotate** +* **use_manipulator_scale** +* **use_manipulator_translate** + +bpy.types.ThemeFontStyle +------------------------ + +Renamed +^^^^^^^ + +* **shadowalpha** -> :class:`bpy.types.ThemeFontStyle.shadow_alpha` +* **shadowcolor** -> :class:`bpy.types.ThemeFontStyle.shadow_value` + +bpy.types.ThemeView3D +--------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeView3D.wire_edit` + +bpy.types.ToolSettings +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.ToolSettings.vertex_group_subset` + +bpy.types.UserPreferences +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.UserPreferences.autoexec_paths` + +2.68 to 2.69 +============ + +bpy.types.ActionActuator +------------------------ + +Added +^^^^^ + +* :class:`bpy.types.ActionActuator.blend_mode` + +bpy.types.ColorManagedViewSettings +---------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ColorManagedViewSettings.look` + +bpy.types.ShrinkwrapConstraint +------------------------------ + +Added +^^^^^ + +* :class:`bpy.types.ShrinkwrapConstraint.project_axis` +* :class:`bpy.types.ShrinkwrapConstraint.project_axis_space` +* :class:`bpy.types.ShrinkwrapConstraint.project_limit` + +Removed +^^^^^^^ + +* **use_x** +* **use_y** +* **use_z** + +bpy.types.CurveMapping +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.CurveMapping.initialize` + +bpy.types.DynamicPaintSurface +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.DynamicPaintSurface.wave_smoothness` + +bpy.types.Mesh +-------------- + +Added +^^^^^ + +* :class:`bpy.types.Mesh.calc_normals_split` +* :class:`bpy.types.Mesh.free_normals_split` + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.Mesh.calc_smooth_groups` (use_bitflags), *was ()* + +bpy.types.Scene +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Scene.frame_current_final` + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.Scene.collada_export` (filepath, apply_modifiers, export_mesh_type, selected, include_children, include_armatures, include_shapekeys, deform_bones_only, active_uv_only, include_uv_textures, include_material_textures, use_texture_copies, use_ngons, use_object_instantiation, sort_by_name, open_sim, export_transformation_type), *was (filepath, apply_modifiers, export_mesh_type, selected, include_children, include_armatures, include_shapekeys, deform_bones_only, active_uv_only, include_uv_textures, include_material_textures, use_texture_copies, use_ngons, use_object_instantiation, sort_by_name, second_life, export_transformation_type)* + +bpy.types.Text +-------------- + +Added +^^^^^ + +* :class:`bpy.types.Text.current_line_index` + +bpy.types.IDMaterials +--------------------- + +Added +^^^^^ + +* :class:`bpy.types.IDMaterials.clear` + +bpy.types.KeyMaps +----------------- + +Added +^^^^^ + +* :class:`bpy.types.KeyMaps.remove` + +bpy.types.MaskParent +-------------------- + +Added +^^^^^ + +* :class:`bpy.types.MaskParent.type` + +bpy.types.MeshLoop +------------------ + +Added +^^^^^ + +* :class:`bpy.types.MeshLoop.normal` + +bpy.types.SimpleDeformModifier +------------------------------ + +Removed +^^^^^^^ + +* **use_relative** + +bpy.types.MovieTracking +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.MovieTracking.plane_tracks` + +bpy.types.MovieTrackingObject +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.MovieTrackingObject.plane_tracks` + +bpy.types.ShaderNodeMapping +--------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ShaderNodeMapping.vector_type` + +bpy.types.ShaderNodeSubsurfaceScattering +---------------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ShaderNodeSubsurfaceScattering.falloff` + +bpy.types.ShaderNodeTexSky +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ShaderNodeTexSky.ground_albedo` +* :class:`bpy.types.ShaderNodeTexSky.sky_type` + +bpy.types.ParticleSystem +------------------------ + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.ParticleSystem.co_hair` (object, particle_no, step), *was (object, modifier, particle_no, step)* + +bpy.types.Property +------------------ + +Added +^^^^^ + +* :class:`bpy.types.Property.is_argument_optional` + +bpy.types.CyclesCurveRenderSettings +----------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.CyclesCurveRenderSettings.cull_backfacing` +* :class:`bpy.types.CyclesCurveRenderSettings.shape` + +Removed +^^^^^^^ + +* **encasing_ratio** +* **interpolation** +* **line_method** +* **normalmix** +* **preset** +* **segments** +* **triangle_method** +* **use_backfacing** +* **use_encasing** +* **use_joined** +* **use_parents** +* **use_smooth** +* **use_tangent_normal** +* **use_tangent_normal_correction** +* **use_tangent_normal_geometry** + +bpy.types.CyclesRenderSettings +------------------------------ + +Added +^^^^^ + +* :class:`bpy.types.CyclesRenderSettings.use_square_samples` + +bpy.types.RenderEngine +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.RenderEngine.bind_display_space_shader` +* :class:`bpy.types.RenderEngine.support_display_space_shader` +* :class:`bpy.types.RenderEngine.unbind_display_space_shader` + +bpy.types.RenderLayer +--------------------- + +Added +^^^^^ + +* :class:`bpy.types.RenderLayer.use_pass_subsurface_color` +* :class:`bpy.types.RenderLayer.use_pass_subsurface_direct` +* :class:`bpy.types.RenderLayer.use_pass_subsurface_indirect` + +bpy.types.SceneGameData +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.SceneGameData.vsync` + +bpy.types.SceneRenderLayer +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SceneRenderLayer.use_pass_subsurface_color` +* :class:`bpy.types.SceneRenderLayer.use_pass_subsurface_direct` +* :class:`bpy.types.SceneRenderLayer.use_pass_subsurface_indirect` + +bpy.types.SpaceNodeEditor +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceNodeEditor.cursor_location_from_region` + +bpy.types.SpaceTextEditor +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceTextEditor.top` +* :class:`bpy.types.SpaceTextEditor.visible_lines` + +bpy.types.SpaceView3D +--------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceView3D.show_occlude_wire` + +bpy.types.TexMapping +-------------------- + +Added +^^^^^ + +* :class:`bpy.types.TexMapping.vector_type` + +bpy.types.ThemeImageEditor +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeImageEditor.uv_others` +* :class:`bpy.types.ThemeImageEditor.uv_shadow` + +bpy.types.UILayout +------------------ + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.UILayout.template_list` (listtype_name, list_id, dataptr, propname, active_dataptr, active_propname, rows, maxrows, type, columns), *was (listtype_name, list_id, dataptr, propname, active_dataptr, active_propname, rows, maxrows, type)* + +bpy.types.UIList +---------------- + +Added +^^^^^ + +* :class:`bpy.types.UIList.bitflag_filter_item` +* :class:`bpy.types.UIList.draw_filter` +* :class:`bpy.types.UIList.filter_items` +* :class:`bpy.types.UIList.filter_name` +* :class:`bpy.types.UIList.use_filter_invert` +* :class:`bpy.types.UIList.use_filter_show` +* :class:`bpy.types.UIList.use_filter_sort_alpha` +* :class:`bpy.types.UIList.use_filter_sort_reverse` + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.UIList.draw_item` (context, layout, data, item, icon, active_data, active_property, index, flt_flag), *was (context, layout, data, item, icon, active_data, active_property, index)* + +bpy.types.UI_UL_list +-------------------- + +Added +^^^^^ + +* :class:`bpy.types.UI_UL_list.filter_items_by_name` +* :class:`bpy.types.UI_UL_list.sort_items_by_name` +* :class:`bpy.types.UI_UL_list.sort_items_helper` + +bpy.types.Window +---------------- + +Added +^^^^^ + +* :class:`bpy.types.Window.cursor_modal_restore` +* :class:`bpy.types.Window.cursor_modal_set` +* :class:`bpy.types.Window.cursor_set` +* :class:`bpy.types.Window.cursor_warp` + +2.69 to 2.70 +============ + +bpy.types.BlendData +------------------- + +Added +^^^^^ + +* :class:`bpy.types.BlendData.use_autopack` + +bpy.types.ClothSettings +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.ClothSettings.sewing_force_max` +* :class:`bpy.types.ClothSettings.shrink_max` +* :class:`bpy.types.ClothSettings.shrink_min` +* :class:`bpy.types.ClothSettings.use_sewing_springs` +* :class:`bpy.types.ClothSettings.vertex_group_shrink` + +bpy.types.DupliObject +--------------------- + +Removed +^^^^^^^ + +* **matrix_original** + +bpy.types.FCurve +---------------- + +Added +^^^^^ + +* :class:`bpy.types.FCurve.update_autoflags` + +bpy.types.FModifierNoise +------------------------ + +Added +^^^^^ + +* :class:`bpy.types.FModifierNoise.offset` + +bpy.types.FreestyleSettings +--------------------------- + +Removed +^^^^^^^ + +* **raycasting_algorithm** + +bpy.types.GameObjectSettings +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.GameObjectSettings.use_record_animation` + +bpy.types.Armature +------------------ + +Added +^^^^^ + +* :class:`bpy.types.Armature.transform` + +bpy.types.Brush +--------------- + +Renamed +^^^^^^^ + +* **use_restore_mesh** -> :class:`bpy.types.Brush.use_drag_dot` + +bpy.types.Curve +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Curve.transform` + +Removed +^^^^^^^ + +* **use_time_offset** + +bpy.types.Image +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Image.filepath_from_user` + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.Image.gl_load` (frame, filter, mag), *was (filter, mag)* +* :class:`bpy.types.Image.gl_touch` (frame, filter, mag), *was (filter, mag)* + +bpy.types.Lattice +----------------- + +Added +^^^^^ + +* :class:`bpy.types.Lattice.transform` + +bpy.types.Mesh +-------------- + +Added +^^^^^ + +* :class:`bpy.types.Mesh.calc_tangents` +* :class:`bpy.types.Mesh.free_tangents` + +bpy.types.Object +---------------- + +Added +^^^^^ + +* :class:`bpy.types.Object.image_user` +* :class:`bpy.types.Object.lod_levels` + +bpy.types.ParticleSettings +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ParticleSettings.material_slot` + +bpy.types.Scene +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Scene.lock_frame_selection_to_range` + +bpy.types.Texture +----------------- + +Added +^^^^^ + +* :class:`bpy.types.Texture.use_clamp` + +bpy.types.World +--------------- + +Removed +^^^^^^^ + +* **star_settings** + +bpy.types.MaskLayer +------------------- + +Added +^^^^^ + +* :class:`bpy.types.MaskLayer.use_fill_holes` +* :class:`bpy.types.MaskLayer.use_fill_overlap` + +bpy.types.Menu +-------------- + +Added +^^^^^ + +* :class:`bpy.types.Menu.draw_collapsible` + +bpy.types.MeshLoop +------------------ + +Added +^^^^^ + +* :class:`bpy.types.MeshLoop.bitangent` +* :class:`bpy.types.MeshLoop.bitangent_sign` +* :class:`bpy.types.MeshLoop.tangent` + +bpy.types.BevelModifier +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.BevelModifier.offset_type` +* :class:`bpy.types.BevelModifier.profile` + +bpy.types.BuildModifier +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.BuildModifier.use_reverse` + +bpy.types.ScrewModifier +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.ScrewModifier.use_stretch_u` +* :class:`bpy.types.ScrewModifier.use_stretch_v` + +bpy.types.TriangulateModifier +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.TriangulateModifier.ngon_method` +* :class:`bpy.types.TriangulateModifier.quad_method` + +Removed +^^^^^^^ + +* **use_beauty** + +bpy.types.MovieTrackingMarker +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.MovieTrackingMarker.is_keyed` + +bpy.types.MovieTrackingPlaneTrack +--------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.MovieTrackingPlaneTrack.image` +* :class:`bpy.types.MovieTrackingPlaneTrack.image_opacity` + +bpy.types.MovieTrackingSettings +------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.MovieTrackingSettings.default_weight` +* :class:`bpy.types.MovieTrackingSettings.show_extra_expanded` + +Removed +^^^^^^^ + +* **reconstruction_success_threshold** +* **use_fallback_reconstruction** + +bpy.types.MovieTrackingTrack +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.MovieTrackingTrack.offset` +* :class:`bpy.types.MovieTrackingTrack.weight` + +bpy.types.Node +-------------- + +Added +^^^^^ + +* :class:`bpy.types.Node.draw_label` + +bpy.types.CompositorNodeDefocus +------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.CompositorNodeDefocus.scene` + +bpy.types.CompositorNodeDespeckle +--------------------------------- + +Renamed +^^^^^^^ + +* **threshold_neighbour** -> :class:`bpy.types.CompositorNodeDespeckle.threshold_neighbor` + +bpy.types.ShaderNodeOutput +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ShaderNodeOutput.is_active_output` + +bpy.types.ShaderNodeOutputLamp +------------------------------ + +Added +^^^^^ + +* :class:`bpy.types.ShaderNodeOutputLamp.is_active_output` + +bpy.types.ShaderNodeOutputMaterial +---------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ShaderNodeOutputMaterial.is_active_output` + +bpy.types.ShaderNodeOutputWorld +------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ShaderNodeOutputWorld.is_active_output` + +bpy.types.NodeSocket +-------------------- + +Added +^^^^^ + +* :class:`bpy.types.NodeSocket.is_output` + +Removed +^^^^^^^ + +* **in_out** + +bpy.types.NodeSocketInterface +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.NodeSocketInterface.is_output` + +Removed +^^^^^^^ + +* **in_out** + +bpy.types.Paint +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Paint.use_symmetry_feather` +* :class:`bpy.types.Paint.use_symmetry_x` +* :class:`bpy.types.Paint.use_symmetry_y` +* :class:`bpy.types.Paint.use_symmetry_z` + +bpy.types.Sculpt +---------------- + +Added +^^^^^ + +* :class:`bpy.types.Sculpt.detail_refine_method` +* :class:`bpy.types.Sculpt.gravity` +* :class:`bpy.types.Sculpt.gravity_object` + +Removed +^^^^^^^ + +* **use_edge_collapse** +* **use_symmetry_feather** +* **use_symmetry_x** +* **use_symmetry_y** +* **use_symmetry_z** + +bpy.types.VertexPaint +--------------------- + +Removed +^^^^^^^ + +* **use_all_faces** + +bpy.types.Panel +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Panel.bl_category` +* :class:`bpy.types.Panel.use_pin` + +bpy.types.CyclesRenderSettings +------------------------------ + +Added +^^^^^ + +* :class:`bpy.types.CyclesRenderSettings.sample_clamp_direct` +* :class:`bpy.types.CyclesRenderSettings.sample_clamp_indirect` +* :class:`bpy.types.CyclesRenderSettings.volume_bounces` +* :class:`bpy.types.CyclesRenderSettings.volume_homogeneous_sampling` +* :class:`bpy.types.CyclesRenderSettings.volume_max_steps` +* :class:`bpy.types.CyclesRenderSettings.volume_samples` +* :class:`bpy.types.CyclesRenderSettings.volume_step_size` + +Removed +^^^^^^^ + +* **sample_clamp** + +bpy.types.CyclesWorldSettings +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.CyclesWorldSettings.homogeneous_volume` + +bpy.types.RenderEngine +---------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.RenderEngine.end_result` (result, cancel, do_merge_results), *was (result, cancel)* + +bpy.types.RenderSettings +------------------------ + +Added +^^^^^ + +* :class:`bpy.types.RenderSettings.bake_user_scale` +* :class:`bpy.types.RenderSettings.use_bake_user_scale` +* :class:`bpy.types.RenderSettings.use_lock_interface` + +bpy.types.RigidBodyObject +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.RigidBodyObject.mesh_source` +* :class:`bpy.types.RigidBodyObject.use_deform` + +bpy.types.SceneRenderLayer +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SceneRenderLayer.pass_alpha_threshold` + +bpy.types.SculptToolCapabilities +-------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SculptToolCapabilities.has_gravity` + +bpy.types.SpaceClipEditor +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceClipEditor.mask_overlay_mode` +* :class:`bpy.types.SpaceClipEditor.show_graph_tracks_error` +* :class:`bpy.types.SpaceClipEditor.show_mask_overlay` + +Renamed +^^^^^^^ + +* **show_graph_tracks** -> :class:`bpy.types.SpaceClipEditor.show_graph_tracks_motion` + +bpy.types.SpaceGraphEditor +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceGraphEditor.use_auto_normalization` +* :class:`bpy.types.SpaceGraphEditor.use_normalization` + +bpy.types.SpaceImageEditor +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceImageEditor.mask_overlay_mode` +* :class:`bpy.types.SpaceImageEditor.show_mask_overlay` + +bpy.types.SpaceNodeEditor +------------------------- + +Removed +^^^^^^^ + +* **use_hidden_preview** + +bpy.types.SpaceView3D +--------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceView3D.show_textured_shadeless` + +bpy.types.TextCharacterFormat +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.TextCharacterFormat.material_index` + +bpy.types.ThemeDopeSheet +------------------------ + +Added +^^^^^ + +* :class:`bpy.types.ThemeDopeSheet.keyframe` +* :class:`bpy.types.ThemeDopeSheet.keyframe_border` +* :class:`bpy.types.ThemeDopeSheet.keyframe_border_selected` +* :class:`bpy.types.ThemeDopeSheet.keyframe_breakdown` +* :class:`bpy.types.ThemeDopeSheet.keyframe_breakdown_selected` +* :class:`bpy.types.ThemeDopeSheet.keyframe_extreme` +* :class:`bpy.types.ThemeDopeSheet.keyframe_extreme_selected` +* :class:`bpy.types.ThemeDopeSheet.keyframe_jitter` +* :class:`bpy.types.ThemeDopeSheet.keyframe_jitter_selected` +* :class:`bpy.types.ThemeDopeSheet.keyframe_selected` + +bpy.types.ThemeImageEditor +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeImageEditor.edge_select` +* :class:`bpy.types.ThemeImageEditor.wire_edit` + +bpy.types.ThemeInfo +------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeInfo.info_debug` +* :class:`bpy.types.ThemeInfo.info_debug_text` +* :class:`bpy.types.ThemeInfo.info_error` +* :class:`bpy.types.ThemeInfo.info_error_text` +* :class:`bpy.types.ThemeInfo.info_info` +* :class:`bpy.types.ThemeInfo.info_info_text` +* :class:`bpy.types.ThemeInfo.info_selected` +* :class:`bpy.types.ThemeInfo.info_selected_text` +* :class:`bpy.types.ThemeInfo.info_warning` +* :class:`bpy.types.ThemeInfo.info_warning_text` + +bpy.types.ThemeNLAEditor +------------------------ + +Added +^^^^^ + +* :class:`bpy.types.ThemeNLAEditor.keyframe_border` +* :class:`bpy.types.ThemeNLAEditor.keyframe_border_selected` + +bpy.types.ThemeNodeEditor +------------------------- + +Removed +^^^^^^^ + +* **in_out_node** + +Renamed +^^^^^^^ + +* **operator_node** -> :class:`bpy.types.ThemeNodeEditor.color_node` +* **operator_node** -> :class:`bpy.types.ThemeNodeEditor.filter_node` +* **operator_node** -> :class:`bpy.types.ThemeNodeEditor.input_node` +* **operator_node** -> :class:`bpy.types.ThemeNodeEditor.layout_node` +* **operator_node** -> :class:`bpy.types.ThemeNodeEditor.output_node` +* **operator_node** -> :class:`bpy.types.ThemeNodeEditor.pattern_node` +* **operator_node** -> :class:`bpy.types.ThemeNodeEditor.script_node` +* **operator_node** -> :class:`bpy.types.ThemeNodeEditor.shader_node` +* **operator_node** -> :class:`bpy.types.ThemeNodeEditor.texture_node` +* **operator_node** -> :class:`bpy.types.ThemeNodeEditor.vector_node` + +bpy.types.ThemeSpaceGeneric +--------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeSpaceGeneric.tab_active` +* :class:`bpy.types.ThemeSpaceGeneric.tab_back` +* :class:`bpy.types.ThemeSpaceGeneric.tab_inactive` +* :class:`bpy.types.ThemeSpaceGeneric.tab_outline` + +bpy.types.ThemeSpaceGradient +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeSpaceGradient.tab_active` +* :class:`bpy.types.ThemeSpaceGradient.tab_back` +* :class:`bpy.types.ThemeSpaceGradient.tab_inactive` +* :class:`bpy.types.ThemeSpaceGradient.tab_outline` + +bpy.types.TimelineMarkers +------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.TimelineMarkers.new` (name, frame), *was (name)* + +bpy.types.UILayout +------------------ + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.UILayout.prop` (data, property, text, text_ctxt, translate, icon, expand, slider, toggle, icon_only, event, full_event, emboss, index, icon_value), *was (data, property, text, text_ctxt, translate, icon, expand, slider, toggle, icon_only, event, full_event, emboss, index)* +* :class:`bpy.types.UILayout.template_header` (), *was (menus)* + +bpy.types.UserPreferencesEdit +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.UserPreferencesEdit.grease_pencil_default_color` + +bpy.types.UserPreferencesInput +------------------------------ + +Added +^^^^^ + +* :class:`bpy.types.UserPreferencesInput.navigation_mode` +* :class:`bpy.types.UserPreferencesInput.ndof_pan_yz_swap_axis` +* :class:`bpy.types.UserPreferencesInput.ndof_rotx_invert_axis` +* :class:`bpy.types.UserPreferencesInput.ndof_roty_invert_axis` +* :class:`bpy.types.UserPreferencesInput.ndof_rotz_invert_axis` +* :class:`bpy.types.UserPreferencesInput.ndof_view_navigate_method` +* :class:`bpy.types.UserPreferencesInput.walk_navigation` + +Removed +^^^^^^^ + +* **ndof_roll_invert_axis** +* **ndof_rotate_invert_axis** +* **ndof_tilt_invert_axis** +* **ndof_zoom_updown** + +2.70 to 2.71 +============ + +bpy.types.Actuator +------------------ + +Added +^^^^^ + +* :class:`bpy.types.Actuator.active` + +bpy.types.BlendDataLineStyles +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.BlendDataLineStyles.is_updated` + +bpy.types.TransformConstraint +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.TransformConstraint.from_max_x_rot` +* :class:`bpy.types.TransformConstraint.from_max_x_scale` +* :class:`bpy.types.TransformConstraint.from_max_y_rot` +* :class:`bpy.types.TransformConstraint.from_max_y_scale` +* :class:`bpy.types.TransformConstraint.from_max_z_rot` +* :class:`bpy.types.TransformConstraint.from_max_z_scale` +* :class:`bpy.types.TransformConstraint.from_min_x_rot` +* :class:`bpy.types.TransformConstraint.from_min_x_scale` +* :class:`bpy.types.TransformConstraint.from_min_y_rot` +* :class:`bpy.types.TransformConstraint.from_min_y_scale` +* :class:`bpy.types.TransformConstraint.from_min_z_rot` +* :class:`bpy.types.TransformConstraint.from_min_z_scale` +* :class:`bpy.types.TransformConstraint.to_max_x_rot` +* :class:`bpy.types.TransformConstraint.to_max_x_scale` +* :class:`bpy.types.TransformConstraint.to_max_y_rot` +* :class:`bpy.types.TransformConstraint.to_max_y_scale` +* :class:`bpy.types.TransformConstraint.to_max_z_rot` +* :class:`bpy.types.TransformConstraint.to_max_z_scale` +* :class:`bpy.types.TransformConstraint.to_min_x_rot` +* :class:`bpy.types.TransformConstraint.to_min_x_scale` +* :class:`bpy.types.TransformConstraint.to_min_y_rot` +* :class:`bpy.types.TransformConstraint.to_min_y_scale` +* :class:`bpy.types.TransformConstraint.to_min_z_rot` +* :class:`bpy.types.TransformConstraint.to_min_z_scale` + +bpy.types.Controller +-------------------- + +Added +^^^^^ + +* :class:`bpy.types.Controller.active` + +bpy.types.FCurve +---------------- + +Added +^^^^^ + +* :class:`bpy.types.FCurve.update` + +bpy.types.Brush +--------------- + +Removed +^^^^^^^ + +* **sculpt_stroke_method** + +bpy.types.Curve +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Curve.bevel_factor_mapping_end` +* :class:`bpy.types.Curve.bevel_factor_mapping_start` + +bpy.types.FreestyleLineStyle +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.FreestyleLineStyle.active_texture` +* :class:`bpy.types.FreestyleLineStyle.active_texture_index` +* :class:`bpy.types.FreestyleLineStyle.integration_type` +* :class:`bpy.types.FreestyleLineStyle.node_tree` +* :class:`bpy.types.FreestyleLineStyle.sort_key` +* :class:`bpy.types.FreestyleLineStyle.sort_order` +* :class:`bpy.types.FreestyleLineStyle.texture_slots` +* :class:`bpy.types.FreestyleLineStyle.texture_spacing` +* :class:`bpy.types.FreestyleLineStyle.use_nodes` +* :class:`bpy.types.FreestyleLineStyle.use_sorting` +* :class:`bpy.types.FreestyleLineStyle.use_texture` + +bpy.types.Material +------------------ + +Added +^^^^^ + +* :class:`bpy.types.Material.use_cast_shadows` + +bpy.types.Mesh +-------------- + +Added +^^^^^ + +* :class:`bpy.types.Mesh.show_normal_loop` + +bpy.types.Object +---------------- + +Added +^^^^^ + +* :class:`bpy.types.Object.cycles` + +bpy.types.Scene +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Scene.show_keys_from_selected_only` + +bpy.types.Speaker +----------------- + +Added +^^^^^ + +* :class:`bpy.types.Speaker.relative` + +bpy.types.Keyframe +------------------ + +Added +^^^^^ + +* :class:`bpy.types.Keyframe.amplitude` +* :class:`bpy.types.Keyframe.back` +* :class:`bpy.types.Keyframe.easing` +* :class:`bpy.types.Keyframe.period` + +bpy.types.Linesets +------------------ + +Added +^^^^^ + +* :class:`bpy.types.Linesets.new` +* :class:`bpy.types.Linesets.remove` + +bpy.types.MaskSplinePoint +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.MaskSplinePoint.handle_left_type` +* :class:`bpy.types.MaskSplinePoint.handle_right_type` +* :class:`bpy.types.MaskSplinePoint.weight` + +bpy.types.MeshEdge +------------------ + +Added +^^^^^ + +* :class:`bpy.types.MeshEdge.use_freestyle_mark` + +bpy.types.MeshPolygon +--------------------- + +Added +^^^^^ + +* :class:`bpy.types.MeshPolygon.use_freestyle_mark` + +bpy.types.MeshTessFace +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.MeshTessFace.split_normals` + +bpy.types.MovieTrackingCamera +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.MovieTrackingCamera.distortion_model` +* :class:`bpy.types.MovieTrackingCamera.division_k1` +* :class:`bpy.types.MovieTrackingCamera.division_k2` + +bpy.types.ShaderNodeTexImage +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ShaderNodeTexImage.interpolation` + +bpy.types.PackedFile +-------------------- + +Added +^^^^^ + +* :class:`bpy.types.PackedFile.data` + +bpy.types.Sculpt +---------------- + +Added +^^^^^ + +* :class:`bpy.types.Sculpt.constant_detail` +* :class:`bpy.types.Sculpt.detail_type_method` + +bpy.types.CyclesRenderSettings +------------------------------ + +Added +^^^^^ + +* :class:`bpy.types.CyclesRenderSettings.bake_type` +* :class:`bpy.types.CyclesRenderSettings.sample_all_lights_direct` +* :class:`bpy.types.CyclesRenderSettings.sample_all_lights_indirect` + +bpy.types.RenderEngine +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.RenderEngine.bake` +* :class:`bpy.types.RenderEngine.frame_set` + +bpy.types.CYCLES +---------------- + +Added +^^^^^ + +* :class:`bpy.types.CYCLES.bake` + +bpy.types.RenderSettings +------------------------ + +Added +^^^^^ + +* :class:`bpy.types.RenderSettings.bake` + +bpy.types.Sensor +---------------- + +Added +^^^^^ + +* :class:`bpy.types.Sensor.active` + +bpy.types.SequenceElements +-------------------------- + +Renamed +^^^^^^^ + +* **push** -> :class:`bpy.types.SequenceElements.append` + +bpy.types.SmokeDomainSettings +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SmokeDomainSettings.color_grid` +* :class:`bpy.types.SmokeDomainSettings.density_grid` +* :class:`bpy.types.SmokeDomainSettings.flame_grid` + +Removed +^^^^^^^ + +* **density** + +bpy.types.Space +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Space.show_locked_time` + +bpy.types.SpaceTimeline +----------------------- + +Removed +^^^^^^^ + +* **show_only_selected** + +bpy.types.SpaceView3D +--------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceView3D.region_quadviews` + +Removed +^^^^^^^ + +* **region_quadview** + +bpy.types.SpaceNodeEditorPath +----------------------------- + +Renamed +^^^^^^^ + +* **push** -> :class:`bpy.types.SpaceNodeEditorPath.append` + +bpy.types.ThemeClipEditor +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeClipEditor.handle_align` +* :class:`bpy.types.ThemeClipEditor.handle_auto` +* :class:`bpy.types.ThemeClipEditor.handle_auto_clamped` +* :class:`bpy.types.ThemeClipEditor.handle_free` +* :class:`bpy.types.ThemeClipEditor.handle_sel_align` +* :class:`bpy.types.ThemeClipEditor.handle_sel_auto` +* :class:`bpy.types.ThemeClipEditor.handle_sel_auto_clamped` +* :class:`bpy.types.ThemeClipEditor.handle_sel_free` + +bpy.types.ThemeImageEditor +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeImageEditor.frame_current` +* :class:`bpy.types.ThemeImageEditor.handle_align` +* :class:`bpy.types.ThemeImageEditor.handle_auto` +* :class:`bpy.types.ThemeImageEditor.handle_auto_clamped` +* :class:`bpy.types.ThemeImageEditor.handle_free` +* :class:`bpy.types.ThemeImageEditor.handle_sel_align` +* :class:`bpy.types.ThemeImageEditor.handle_sel_auto` +* :class:`bpy.types.ThemeImageEditor.handle_sel_auto_clamped` +* :class:`bpy.types.ThemeImageEditor.handle_sel_free` + +bpy.types.ThemeView3D +--------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeView3D.view_overlay` + +bpy.types.UILayout +------------------ + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.UILayout.template_preview` (id, show_buttons, parent, slot, preview_id), *was (id, show_buttons, parent, slot)* + +2.71 to 2.72 +============ + +bpy.types.EditObjectActuator +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.EditObjectActuator.track_axis` +* :class:`bpy.types.EditObjectActuator.up_axis` + +bpy.types.BlendData +------------------- + +Added +^^^^^ + +* :class:`bpy.types.BlendData.version` + +bpy.types.BoneGroups +-------------------- + +Added +^^^^^ + +* :class:`bpy.types.BoneGroups.new` +* :class:`bpy.types.BoneGroups.remove` + +bpy.types.BrushCapabilities +--------------------------- + +Added +^^^^^ + +* :class:`bpy.types.BrushCapabilities.has_smooth_stroke` + +bpy.types.ColorRamp +------------------- + +Added +^^^^^ + +* :class:`bpy.types.ColorRamp.color_mode` +* :class:`bpy.types.ColorRamp.hue_interpolation` + +bpy.types.ColorRampElement +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ColorRampElement.alpha` + +bpy.types.FollowTrackConstraint +------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.FollowTrackConstraint.use_undistorted_position` + +bpy.types.Event +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Event.is_tablet` +* :class:`bpy.types.Event.pressure` +* :class:`bpy.types.Event.tilt` + +bpy.types.Brush +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Brush.blur_kernel_radius` +* :class:`bpy.types.Brush.blur_mode` +* :class:`bpy.types.Brush.fill_threshold` +* :class:`bpy.types.Brush.grad_spacing` +* :class:`bpy.types.Brush.gradient` +* :class:`bpy.types.Brush.gradient_fill_mode` +* :class:`bpy.types.Brush.gradient_stroke_mode` +* :class:`bpy.types.Brush.image_paint_capabilities` +* :class:`bpy.types.Brush.paint_curve` +* :class:`bpy.types.Brush.secondary_color` +* :class:`bpy.types.Brush.sharp_threshold` +* :class:`bpy.types.Brush.use_curve` +* :class:`bpy.types.Brush.use_gradient` +* :class:`bpy.types.Brush.use_line` +* :class:`bpy.types.Brush.use_pressure_masking` + +Renamed +^^^^^^^ + +* **use_drag_dot** -> :class:`bpy.types.Brush.use_restore_mesh` + +bpy.types.Curve +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Curve.validate_material_indices` + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.Curve.transform` (matrix, shape_keys), *was (matrix)* + +bpy.types.Lattice +----------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.Lattice.transform` (matrix, shape_keys), *was (matrix)* + +bpy.types.Library +----------------- + +Added +^^^^^ + +* :class:`bpy.types.Library.packed_file` + +bpy.types.Material +------------------ + +Added +^^^^^ + +* :class:`bpy.types.Material.line_color` +* :class:`bpy.types.Material.line_priority` +* :class:`bpy.types.Material.paint_active_slot` +* :class:`bpy.types.Material.paint_clone_slot` +* :class:`bpy.types.Material.texture_paint_images` +* :class:`bpy.types.Material.texture_paint_slots` + +bpy.types.Mesh +-------------- + +Added +^^^^^ + +* :class:`bpy.types.Mesh.validate_material_indices` + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.Mesh.transform` (matrix, shape_keys), *was (matrix)* + +bpy.types.WindowManager +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.WindowManager.piemenu_begin__internal` +* :class:`bpy.types.WindowManager.piemenu_end__internal` +* :class:`bpy.types.WindowManager.popup_menu_pie` + +bpy.types.BevelModifier +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.BevelModifier.material` + +bpy.types.HookModifier +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.HookModifier.center` + +bpy.types.SolidifyModifier +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SolidifyModifier.use_rim_only` + +bpy.types.ShaderNodeBsdfAnisotropic +----------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ShaderNodeBsdfAnisotropic.distribution` + +bpy.types.Paint +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Paint.palette` + +bpy.types.ImagePaint +-------------------- + +Added +^^^^^ + +* :class:`bpy.types.ImagePaint.canvas` +* :class:`bpy.types.ImagePaint.clone_image` +* :class:`bpy.types.ImagePaint.detect_data` +* :class:`bpy.types.ImagePaint.missing_materials` +* :class:`bpy.types.ImagePaint.missing_stencil` +* :class:`bpy.types.ImagePaint.missing_texture` +* :class:`bpy.types.ImagePaint.missing_uvs` +* :class:`bpy.types.ImagePaint.mode` +* :class:`bpy.types.ImagePaint.stencil_color` +* :class:`bpy.types.ImagePaint.stencil_image` + +bpy.types.IMAGE_UV_sculpt +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.IMAGE_UV_sculpt.prop_unified_color` +* :class:`bpy.types.IMAGE_UV_sculpt.prop_unified_color_picker` + +bpy.types.CyclesCameraSettings +------------------------------ + +Added +^^^^^ + +* :class:`bpy.types.CyclesCameraSettings.aperture_ratio` + +bpy.types.CyclesMaterialSettings +-------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.CyclesMaterialSettings.volume_sampling` + +bpy.types.CyclesRenderSettings +------------------------------ + +Added +^^^^^ + +* :class:`bpy.types.CyclesRenderSettings.caustics_reflective` +* :class:`bpy.types.CyclesRenderSettings.caustics_refractive` + +Removed +^^^^^^^ + +* **no_caustics** +* **volume_homogeneous_sampling** + +bpy.types.CyclesVisibilitySettings +---------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.CyclesVisibilitySettings.scatter` + +bpy.types.CyclesWorldSettings +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.CyclesWorldSettings.volume_sampling` + +bpy.types.OperatorStrokeElement +------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.OperatorStrokeElement.size` + +bpy.types.RenderEngine +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.RenderEngine.bl_use_texture_preview` +* :class:`bpy.types.RenderEngine.layer_override` + +bpy.types.RenderSettings +------------------------ + +Added +^^^^^ + +* :class:`bpy.types.RenderSettings.preview_start_resolution` +* :class:`bpy.types.RenderSettings.use_render_cache` + +bpy.types.MouseSensor +--------------------- + +Added +^^^^^ + +* :class:`bpy.types.MouseSensor.material` +* :class:`bpy.types.MouseSensor.property` +* :class:`bpy.types.MouseSensor.use_material` +* :class:`bpy.types.MouseSensor.use_x_ray` + +bpy.types.SpaceUVEditor +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceUVEditor.show_texpaint` + +bpy.types.ThemeImageEditor +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeImageEditor.handle_vertex` +* :class:`bpy.types.ThemeImageEditor.handle_vertex_select` +* :class:`bpy.types.ThemeImageEditor.handle_vertex_size` +* :class:`bpy.types.ThemeImageEditor.paint_curve_handle` +* :class:`bpy.types.ThemeImageEditor.paint_curve_pivot` + +bpy.types.ThemeUserInterface +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeUserInterface.wcol_pie_menu` + +bpy.types.ThemeView3D +--------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeView3D.paint_curve_handle` +* :class:`bpy.types.ThemeView3D.paint_curve_pivot` +* :class:`bpy.types.ThemeView3D.split_normal` + +bpy.types.UILayout +------------------ + +Added +^^^^^ + +* :class:`bpy.types.UILayout.menu_pie` +* :class:`bpy.types.UILayout.template_palette` + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.UILayout.template_curve_mapping` (data, property, type, levels, brush, use_negative_slope), *was (data, property, type, levels, brush)* + +bpy.types.UnifiedPaintSettings +------------------------------ + +Added +^^^^^ + +* :class:`bpy.types.UnifiedPaintSettings.color` +* :class:`bpy.types.UnifiedPaintSettings.secondary_color` +* :class:`bpy.types.UnifiedPaintSettings.use_unified_color` + +bpy.types.UserPreferencesFilePaths +---------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.UserPreferencesFilePaths.render_cache_directory` + +bpy.types.UserPreferencesSystem +------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.UserPreferencesSystem.font_path_ui` +* :class:`bpy.types.UserPreferencesSystem.is_occlusion_query_supported` +* :class:`bpy.types.UserPreferencesSystem.select_method` + +bpy.types.UserPreferencesView +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.UserPreferencesView.pie_animation_timeout` +* :class:`bpy.types.UserPreferencesView.pie_initial_timeout` +* :class:`bpy.types.UserPreferencesView.pie_menu_radius` +* :class:`bpy.types.UserPreferencesView.pie_menu_threshold` + +2.72 to 2.73 +============ + +bpy.types.ActionGroup +--------------------- + +Added +^^^^^ + +* :class:`bpy.types.ActionGroup.is_custom_color_set` + +bpy.types.BoneGroup +------------------- + +Added +^^^^^ + +* :class:`bpy.types.BoneGroup.is_custom_color_set` + +bpy.types.StretchToConstraint +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.StretchToConstraint.bulge_max` +* :class:`bpy.types.StretchToConstraint.bulge_min` +* :class:`bpy.types.StretchToConstraint.bulge_smooth` +* :class:`bpy.types.StretchToConstraint.use_bulge_max` +* :class:`bpy.types.StretchToConstraint.use_bulge_min` + +bpy.types.DopeSheet +------------------- + +Added +^^^^^ + +* :class:`bpy.types.DopeSheet.show_gpencil` + +bpy.types.FreestyleSettings +--------------------------- + +Added +^^^^^ + +* :class:`bpy.types.FreestyleSettings.use_view_map_cache` + +bpy.types.GPencilLayer +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.GPencilLayer.after_color` +* :class:`bpy.types.GPencilLayer.before_color` +* :class:`bpy.types.GPencilLayer.fill_alpha` +* :class:`bpy.types.GPencilLayer.fill_color` +* :class:`bpy.types.GPencilLayer.ghost_after_range` +* :class:`bpy.types.GPencilLayer.ghost_before_range` +* :class:`bpy.types.GPencilLayer.use_ghost_custom_colors` +* :class:`bpy.types.GPencilLayer.use_volumetric_strokes` + +Removed +^^^^^^^ + +* **ghost_range_max** + +bpy.types.GPencilStroke +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.GPencilStroke.select` + +bpy.types.GPencilStrokePoint +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.GPencilStrokePoint.select` + +bpy.types.GreasePencilLayers +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.GreasePencilLayers.active_index` + +bpy.types.FreestyleLineStyle +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.FreestyleLineStyle.chain_count` +* :class:`bpy.types.FreestyleLineStyle.use_chain_count` + +bpy.types.GreasePencil +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.GreasePencil.animation_data` +* :class:`bpy.types.GreasePencil.use_stroke_edit_mode` + +bpy.types.Image +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Image.generated_color` +* :class:`bpy.types.Image.render_slots` + +Removed +^^^^^^^ + +* **render_slot** + +bpy.types.Scene +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Scene.uvedit_aspect` + +bpy.types.CyclesLampSettings +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.CyclesLampSettings.max_bounces` + +bpy.types.CyclesMaterialSettings +-------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.CyclesMaterialSettings.volume_interpolation` + +bpy.types.CyclesWorldSettings +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.CyclesWorldSettings.volume_interpolation` + +bpy.types.RenderEngine +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.RenderEngine.error_set` + +bpy.types.RenderPass +-------------------- + +Added +^^^^^ + +* :class:`bpy.types.RenderPass.debug_type` + +bpy.types.SculptToolCapabilities +-------------------------------- + +Renamed +^^^^^^^ + +* **has_strength** -> :class:`bpy.types.SculptToolCapabilities.has_strength_pressure` + +bpy.types.SceneSequence +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.SceneSequence.use_grease_pencil` + +bpy.types.SpaceSequenceEditor +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceSequenceEditor.show_backdrop` +* :class:`bpy.types.SpaceSequenceEditor.show_strip_offset` +* :class:`bpy.types.SpaceSequenceEditor.waveform_draw_type` + +bpy.types.SpaceView3D +--------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceView3D.show_world` + +bpy.types.ThemeClipEditor +------------------------- + +Removed +^^^^^^^ + +* **grid** + +bpy.types.ThemeNodeEditor +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeNodeEditor.wire_inner` + +bpy.types.ThemeUserInterface +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeUserInterface.widget_emboss` + +bpy.types.ToolSettings +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.ToolSettings.grease_pencil_source` + +bpy.types.UILayout +------------------ + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.UILayout.operator` (operator, text, text_ctxt, translate, icon, emboss, icon_value), *was (operator, text, text_ctxt, translate, icon, emboss)* + +bpy.types.UserPreferencesSystem +------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.UserPreferencesSystem.virtual_pixel_mode` + +bpy.types.UserPreferencesView +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.UserPreferencesView.pie_menu_confirm` + +2.73 to 2.74 +============ + +bpy.types.SteeringActuator +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SteeringActuator.lock_z_velocity` + +bpy.types.BackgroundImage +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.BackgroundImage.rotation` +* :class:`bpy.types.BackgroundImage.use_flip_x` +* :class:`bpy.types.BackgroundImage.use_flip_y` + +bpy.types.BrushCapabilities +--------------------------- + +Removed +^^^^^^^ + +* **has_texture_angle** +* **has_texture_angle_source** + +bpy.types.ClothCollisionSettings +-------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ClothCollisionSettings.damping` + +bpy.types.ClothSettings +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.ClothSettings.bending_damping` +* :class:`bpy.types.ClothSettings.density_strength` +* :class:`bpy.types.ClothSettings.density_target` +* :class:`bpy.types.ClothSettings.voxel_cell_size` + +Removed +^^^^^^^ + +* **pre_roll** + +bpy.types.SplineIKConstraint +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SplineIKConstraint.bulge` +* :class:`bpy.types.SplineIKConstraint.bulge_max` +* :class:`bpy.types.SplineIKConstraint.bulge_min` +* :class:`bpy.types.SplineIKConstraint.bulge_smooth` +* :class:`bpy.types.SplineIKConstraint.use_bulge_max` +* :class:`bpy.types.SplineIKConstraint.use_bulge_min` + +bpy.types.FCurve +---------------- + +Added +^^^^^ + +* :class:`bpy.types.FCurve.convert_to_keyframes` +* :class:`bpy.types.FCurve.convert_to_samples` + +bpy.types.FileSelectParams +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.FileSelectParams.filter_search` + +bpy.types.GPencilLayer +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.GPencilLayer.is_fill_visible` +* :class:`bpy.types.GPencilLayer.is_stroke_visible` + +bpy.types.Brush +--------------- + +Removed +^^^^^^^ + +* **texture_angle_source_no_random** +* **texture_angle_source_random** +* **use_rake** +* **use_random_rotation** + +bpy.types.Camera +---------------- + +Added +^^^^^ + +* :class:`bpy.types.Camera.gpu_dof` +* :class:`bpy.types.Camera.show_safe_center` + +Renamed +^^^^^^^ + +* **show_title_safe** -> :class:`bpy.types.Camera.show_safe_areas` + +bpy.types.Image +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Image.use_deinterlace` + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.Image.pack` (as_png, data, data_len), *was (as_png)* + +bpy.types.Key +------------- + +Removed +^^^^^^^ + +* **slurph** + +bpy.types.Mesh +-------------- + +Added +^^^^^ + +* :class:`bpy.types.Mesh.create_normals_split` +* :class:`bpy.types.Mesh.has_custom_normals` +* :class:`bpy.types.Mesh.normals_split_custom_set` +* :class:`bpy.types.Mesh.normals_split_custom_set_from_vertices` +* :class:`bpy.types.Mesh.vertex_layers_float` +* :class:`bpy.types.Mesh.vertex_layers_int` +* :class:`bpy.types.Mesh.vertex_layers_string` + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.Mesh.calc_normals_split` (), *was (split_angle)* +* :class:`bpy.types.Mesh.validate` (verbose, clean_customdata), *was (verbose)* + +bpy.types.Object +---------------- + +Added +^^^^^ + +* :class:`bpy.types.Object.calc_matrix_camera` +* :class:`bpy.types.Object.camera_fit_coords` + +bpy.types.ParticleSettings +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ParticleSettings.bending_random` +* :class:`bpy.types.ParticleSettings.clump_curve` +* :class:`bpy.types.ParticleSettings.clump_noise_size` +* :class:`bpy.types.ParticleSettings.kink_amplitude_random` +* :class:`bpy.types.ParticleSettings.kink_axis_random` +* :class:`bpy.types.ParticleSettings.kink_extra_steps` +* :class:`bpy.types.ParticleSettings.roughness_curve` +* :class:`bpy.types.ParticleSettings.show_guide_hairs` +* :class:`bpy.types.ParticleSettings.show_hair_grid` +* :class:`bpy.types.ParticleSettings.use_clump_curve` +* :class:`bpy.types.ParticleSettings.use_clump_noise` +* :class:`bpy.types.ParticleSettings.use_roughness_curve` + +bpy.types.Scene +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Scene.safe_areas` + +bpy.types.Screen +---------------- + +Added +^^^^^ + +* :class:`bpy.types.Screen.use_follow` + +bpy.types.Sound +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Sound.pack` +* :class:`bpy.types.Sound.unpack` + +bpy.types.VectorFont +-------------------- + +Added +^^^^^ + +* :class:`bpy.types.VectorFont.pack` +* :class:`bpy.types.VectorFont.unpack` + +bpy.types.KeyingSet +------------------- + +Added +^^^^^ + +* :class:`bpy.types.KeyingSet.use_insertkey_needed` +* :class:`bpy.types.KeyingSet.use_insertkey_override_needed` +* :class:`bpy.types.KeyingSet.use_insertkey_override_visual` +* :class:`bpy.types.KeyingSet.use_insertkey_override_xyz_to_rgb` +* :class:`bpy.types.KeyingSet.use_insertkey_visual` +* :class:`bpy.types.KeyingSet.use_insertkey_xyz_to_rgb` + +Removed +^^^^^^^ + +* **bl_options** + +bpy.types.KeyingSetPath +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.KeyingSetPath.use_insertkey_needed` +* :class:`bpy.types.KeyingSetPath.use_insertkey_override_needed` +* :class:`bpy.types.KeyingSetPath.use_insertkey_override_visual` +* :class:`bpy.types.KeyingSetPath.use_insertkey_override_xyz_to_rgb` +* :class:`bpy.types.KeyingSetPath.use_insertkey_visual` +* :class:`bpy.types.KeyingSetPath.use_insertkey_xyz_to_rgb` + +Removed +^^^^^^^ + +* **bl_options** + +bpy.types.ClothModifier +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.ClothModifier.hair_grid_max` +* :class:`bpy.types.ClothModifier.hair_grid_min` +* :class:`bpy.types.ClothModifier.hair_grid_resolution` +* :class:`bpy.types.ClothModifier.solver_result` + +bpy.types.HookModifier +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.HookModifier.falloff_curve` +* :class:`bpy.types.HookModifier.falloff_type` +* :class:`bpy.types.HookModifier.use_falloff_uniform` + +Renamed +^^^^^^^ + +* **falloff** -> :class:`bpy.types.HookModifier.falloff_radius` +* **force** -> :class:`bpy.types.HookModifier.strength` + +bpy.types.Node +-------------- + +Added +^^^^^ + +* :class:`bpy.types.Node.shading_compatibility` + +bpy.types.CompositorNodePlaneTrackDeform +---------------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.CompositorNodePlaneTrackDeform.motion_blur_samples` +* :class:`bpy.types.CompositorNodePlaneTrackDeform.motion_blur_shutter` +* :class:`bpy.types.CompositorNodePlaneTrackDeform.use_motion_blur` + +bpy.types.NodeFrame +------------------- + +Added +^^^^^ + +* :class:`bpy.types.NodeFrame.text` + +bpy.types.ShaderNodeTexCoord +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ShaderNodeTexCoord.object` + +bpy.types.Paint +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Paint.cavity_curve` +* :class:`bpy.types.Paint.use_cavity` + +bpy.types.ImagePaint +-------------------- + +Added +^^^^^ + +* :class:`bpy.types.ImagePaint.dither` + +bpy.types.ParticleEdit +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.ParticleEdit.shape_object` + +bpy.types.CyclesCameraSettings +------------------------------ + +Added +^^^^^ + +* :class:`bpy.types.CyclesCameraSettings.latitude_max` +* :class:`bpy.types.CyclesCameraSettings.latitude_min` +* :class:`bpy.types.CyclesCameraSettings.longitude_max` +* :class:`bpy.types.CyclesCameraSettings.longitude_min` + +bpy.types.RegionView3D +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.RegionView3D.window_matrix` + +bpy.types.SequenceProxy +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.SequenceProxy.use_overwrite` + +bpy.types.SpaceFileBrowser +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceFileBrowser.bookmarks` +* :class:`bpy.types.SpaceFileBrowser.bookmarks_active` +* :class:`bpy.types.SpaceFileBrowser.recent_folders` +* :class:`bpy.types.SpaceFileBrowser.recent_folders_active` +* :class:`bpy.types.SpaceFileBrowser.system_bookmarks` +* :class:`bpy.types.SpaceFileBrowser.system_bookmarks_active` +* :class:`bpy.types.SpaceFileBrowser.system_folders` +* :class:`bpy.types.SpaceFileBrowser.system_folders_active` + +bpy.types.SpaceOutliner +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceOutliner.use_sort_alpha` + +bpy.types.SpaceSequenceEditor +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceSequenceEditor.show_safe_areas` +* :class:`bpy.types.SpaceSequenceEditor.show_safe_center` + +Removed +^^^^^^^ + +* **show_safe_margin** + +bpy.types.SpaceTextEditor +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceTextEditor.region_location_from_cursor` + +bpy.types.SpaceView3D +--------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceView3D.fx_settings` + +bpy.types.BrushTextureSlot +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.BrushTextureSlot.has_random_texture_angle` +* :class:`bpy.types.BrushTextureSlot.has_texture_angle` +* :class:`bpy.types.BrushTextureSlot.has_texture_angle_source` +* :class:`bpy.types.BrushTextureSlot.random_angle` +* :class:`bpy.types.BrushTextureSlot.use_rake` +* :class:`bpy.types.BrushTextureSlot.use_random` + +bpy.types.ParticleSettingsTextureSlot +------------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ParticleSettingsTextureSlot.kink_amp_factor` +* :class:`bpy.types.ParticleSettingsTextureSlot.kink_freq_factor` +* :class:`bpy.types.ParticleSettingsTextureSlot.use_map_kink_amp` +* :class:`bpy.types.ParticleSettingsTextureSlot.use_map_kink_freq` + +Removed +^^^^^^^ + +* **kink_factor** +* **use_map_kink** + +bpy.types.ThemeClipEditor +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeClipEditor.gp_vertex` +* :class:`bpy.types.ThemeClipEditor.gp_vertex_select` +* :class:`bpy.types.ThemeClipEditor.gp_vertex_size` + +bpy.types.ThemeImageEditor +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeImageEditor.gp_vertex` +* :class:`bpy.types.ThemeImageEditor.gp_vertex_select` +* :class:`bpy.types.ThemeImageEditor.gp_vertex_size` + +bpy.types.ThemeNodeEditor +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeNodeEditor.gp_vertex` +* :class:`bpy.types.ThemeNodeEditor.gp_vertex_select` +* :class:`bpy.types.ThemeNodeEditor.gp_vertex_size` + +bpy.types.ThemeSequenceEditor +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeSequenceEditor.gp_vertex` +* :class:`bpy.types.ThemeSequenceEditor.gp_vertex_select` +* :class:`bpy.types.ThemeSequenceEditor.gp_vertex_size` + +bpy.types.ThemeTimeline +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeTimeline.time_grease_pencil` +* :class:`bpy.types.ThemeTimeline.time_keyframe` + +bpy.types.ThemeView3D +--------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeView3D.clipping_border_3d` +* :class:`bpy.types.ThemeView3D.gp_vertex` +* :class:`bpy.types.ThemeView3D.gp_vertex_select` +* :class:`bpy.types.ThemeView3D.gp_vertex_size` + +bpy.types.UILayout +------------------ + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.UILayout.template_list` (listtype_name, list_id, dataptr, propname, active_dataptr, active_propname, item_dyntip_propname, rows, maxrows, type, columns), *was (listtype_name, list_id, dataptr, propname, active_dataptr, active_propname, rows, maxrows, type, columns)* + +bpy.types.UserPreferencesSystem +------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.UserPreferencesSystem.pixel_size` + +bpy.types.UserPreferencesView +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.UserPreferencesView.use_gl_warn_support` + +bpy.types.VoxelData +------------------- + +Added +^^^^^ + +* :class:`bpy.types.VoxelData.hair_data_type` + +2.74 to 2.75 +============ + +bpy.types.BakePixel +------------------- + +Added +^^^^^ + +* :class:`bpy.types.BakePixel.object_id` + +bpy.types.BlendData +------------------- + +Added +^^^^^ + +* :class:`bpy.types.BlendData.palettes` + +bpy.types.BlendDataImages +------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataImages.new` (name, width, height, alpha, float_buffer, stereo3d), *was (name, width, height, alpha, float_buffer)* + +bpy.types.BlendDataSounds +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.BlendDataSounds.load` +* :class:`bpy.types.BlendDataSounds.remove` + +bpy.types.DopeSheet +------------------- + +Added +^^^^^ + +* :class:`bpy.types.DopeSheet.filter_text` +* :class:`bpy.types.DopeSheet.use_filter_text` + +bpy.types.FileSelectParams +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.FileSelectParams.thumbnail_size` + +bpy.types.GPUDOFSettings +------------------------ + +Added +^^^^^ + +* :class:`bpy.types.GPUDOFSettings.blades` +* :class:`bpy.types.GPUDOFSettings.is_hq_supported` +* :class:`bpy.types.GPUDOFSettings.use_high_quality` + +bpy.types.Camera +---------------- + +Added +^^^^^ + +* :class:`bpy.types.Camera.stereo` + +bpy.types.Image +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Image.buffers_free` +* :class:`bpy.types.Image.is_multiview` +* :class:`bpy.types.Image.is_stereo_3d` +* :class:`bpy.types.Image.packed_files` +* :class:`bpy.types.Image.stereo_3d_format` +* :class:`bpy.types.Image.use_multiview` +* :class:`bpy.types.Image.views_format` + +bpy.types.SunLamp +----------------- + +Added +^^^^^ + +* :class:`bpy.types.SunLamp.show_shadow_box` + +bpy.types.Mesh +-------------- + +Added +^^^^^ + +* :class:`bpy.types.Mesh.vertex_paint_masks` + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.Mesh.calc_tessface` (free_mpoly), *was ()* + +bpy.types.Object +---------------- + +Added +^^^^^ + +* :class:`bpy.types.Object.cache_release` +* :class:`bpy.types.Object.shape_key_remove` + +bpy.types.Scene +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Scene.depsgraph` + +bpy.types.ImageFormatSettings +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ImageFormatSettings.stereo_3d_format` +* :class:`bpy.types.ImageFormatSettings.views_format` + +bpy.types.ImageUser +------------------- + +Added +^^^^^ + +* :class:`bpy.types.ImageUser.multilayer_view` + +Removed +^^^^^^^ + +* **multilayer_pass** + +bpy.types.LodLevel +------------------ + +Added +^^^^^ + +* :class:`bpy.types.LodLevel.object_hysteresis_percentage` +* :class:`bpy.types.LodLevel.use_object_hysteresis` + +bpy.types.DecimateModifier +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.DecimateModifier.vertex_group_factor` + +bpy.types.CompositorNodeImage +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.CompositorNodeImage.has_layers` +* :class:`bpy.types.CompositorNodeImage.has_views` +* :class:`bpy.types.CompositorNodeImage.view` + +bpy.types.TextureNodeImage +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.TextureNodeImage.image_user` + +bpy.types.Operator +------------------ + +Added +^^^^^ + +* :class:`bpy.types.Operator.macros` +* :class:`bpy.types.Operator.options` + +bpy.types.Sculpt +---------------- + +Added +^^^^^ + +* :class:`bpy.types.Sculpt.detail_percent` + +bpy.types.PointCache +-------------------- + +Renamed +^^^^^^^ + +* **frames_skipped** -> :class:`bpy.types.PointCache.is_frame_skip` + +bpy.types.CyclesLampSettings +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.CyclesLampSettings.is_portal` + +bpy.types.CyclesRenderSettings +------------------------------ + +Added +^^^^^ + +* :class:`bpy.types.CyclesRenderSettings.use_animated_seed` + +bpy.types.Region +---------------- + +Removed +^^^^^^^ + +* **callback_add** + +bpy.types.RenderEngine +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.RenderEngine.active_view_set` +* :class:`bpy.types.RenderEngine.bl_use_shading_nodes_custom` +* :class:`bpy.types.RenderEngine.camera_model_matrix` +* :class:`bpy.types.RenderEngine.camera_shift_x` + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.RenderEngine.bake` (scene, object, pass_type, object_id, pixel_array, num_pixels, depth, result), *was (scene, object, pass_type, pixel_array, num_pixels, depth, result)* +* :class:`bpy.types.RenderEngine.begin_result` (x, y, w, h, layer, view), *was (x, y, w, h, layer)* + +bpy.types.CYCLES +---------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.CYCLES.bake` (self, scene, obj, pass_type, object_id, pixel_array, num_pixels, depth, result), *was (self, scene, obj, pass_type, pixel_array, num_pixels, depth, result)* + +bpy.types.RenderLayer +--------------------- + +Removed +^^^^^^^ + +* **rect** + +bpy.types.RenderPass +-------------------- + +Added +^^^^^ + +* :class:`bpy.types.RenderPass.view_id` + +bpy.types.RenderResult +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.RenderResult.views` + +bpy.types.RenderSettings +------------------------ + +Added +^^^^^ + +* :class:`bpy.types.RenderSettings.simplify_child_particles_render` +* :class:`bpy.types.RenderSettings.simplify_subdivision_render` +* :class:`bpy.types.RenderSettings.stereo_views` +* :class:`bpy.types.RenderSettings.use_multiview` +* :class:`bpy.types.RenderSettings.views` +* :class:`bpy.types.RenderSettings.views_format` + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.RenderSettings.frame_path` (frame, preview, view), *was (frame)* + +bpy.types.SceneGameData +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.SceneGameData.scene_hysteresis_percentage` +* :class:`bpy.types.SceneGameData.use_scene_hysteresis` + +bpy.types.Sensor +---------------- + +Added +^^^^^ + +* :class:`bpy.types.Sensor.tick_skip` + +Removed +^^^^^^^ + +* **frequency** + +bpy.types.EffectSequence +------------------------ + +Removed +^^^^^^^ + +* **use_proxy_custom_directory** +* **use_proxy_custom_file** + +bpy.types.ImageSequence +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.ImageSequence.stereo_3d_format` +* :class:`bpy.types.ImageSequence.use_multiview` +* :class:`bpy.types.ImageSequence.views_format` + +Removed +^^^^^^^ + +* **use_proxy_custom_directory** +* **use_proxy_custom_file** + +bpy.types.MetaSequence +---------------------- + +Removed +^^^^^^^ + +* **use_proxy_custom_directory** +* **use_proxy_custom_file** + +bpy.types.MovieSequence +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.MovieSequence.stereo_3d_format` +* :class:`bpy.types.MovieSequence.use_multiview` +* :class:`bpy.types.MovieSequence.views_format` + +Removed +^^^^^^^ + +* **use_proxy_custom_directory** +* **use_proxy_custom_file** + +bpy.types.SceneSequence +----------------------- + +Removed +^^^^^^^ + +* **use_proxy_custom_directory** +* **use_proxy_custom_file** + +bpy.types.SequenceEditor +------------------------ + +Added +^^^^^ + +* :class:`bpy.types.SequenceEditor.proxy_dir` +* :class:`bpy.types.SequenceEditor.proxy_storage` + +bpy.types.SequenceProxy +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.SequenceProxy.use_proxy_custom_directory` +* :class:`bpy.types.SequenceProxy.use_proxy_custom_file` + +bpy.types.SpaceImageEditor +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceImageEditor.show_stereo_3d` + +bpy.types.SpaceSequenceEditor +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceSequenceEditor.show_metadata` + +bpy.types.SpaceView3D +--------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceView3D.show_stereo_3d_cameras` +* :class:`bpy.types.SpaceView3D.show_stereo_3d_convergence_plane` +* :class:`bpy.types.SpaceView3D.show_stereo_3d_volume` +* :class:`bpy.types.SpaceView3D.stereo_3d_camera` +* :class:`bpy.types.SpaceView3D.stereo_3d_convergence_plane_alpha` +* :class:`bpy.types.SpaceView3D.stereo_3d_eye` +* :class:`bpy.types.SpaceView3D.stereo_3d_volume_alpha` + +bpy.types.SpaceUVEditor +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceUVEditor.show_metadata` + +bpy.types.ThemeImageEditor +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeImageEditor.metadatabg` +* :class:`bpy.types.ThemeImageEditor.metadatatext` + +bpy.types.ThemeSequenceEditor +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeSequenceEditor.metadatabg` +* :class:`bpy.types.ThemeSequenceEditor.metadatatext` + +bpy.types.ToolSettings +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.ToolSettings.lock_markers` +* :class:`bpy.types.ToolSettings.use_proportional_action` +* :class:`bpy.types.ToolSettings.use_proportional_fcurve` + +bpy.types.UILayout +------------------ + +Added +^^^^^ + +* :class:`bpy.types.UILayout.template_image_stereo_3d` +* :class:`bpy.types.UILayout.template_image_views` + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.UILayout.menu` (menu, text, text_ctxt, translate, icon, icon_value), *was (menu, text, text_ctxt, translate, icon)* +* :class:`bpy.types.UILayout.template_icon_view` (data, property, show_labels), *was (data, property)* +* :class:`bpy.types.UILayout.template_image` (data, property, image_user, compact, multiview), *was (data, property, image_user, compact)* + +bpy.types.UserPreferencesView +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.UserPreferencesView.view_frame_keyframes` +* :class:`bpy.types.UserPreferencesView.view_frame_seconds` +* :class:`bpy.types.UserPreferencesView.view_frame_type` + +bpy.types.Window +---------------- + +Added +^^^^^ + +* :class:`bpy.types.Window.stereo_3d_display` + +2.75 to 2.76 +============ + +bpy.types.ActionFCurves +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.ActionFCurves.find` + +bpy.types.BlendDataBrushes +-------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataBrushes.new` (name, mode), *was (name)* + +bpy.types.FileSelectParams +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.FileSelectParams.filter_id` +* :class:`bpy.types.FileSelectParams.filter_id_category` +* :class:`bpy.types.FileSelectParams.recursion_level` +* :class:`bpy.types.FileSelectParams.use_filter_blendid` +* :class:`bpy.types.FileSelectParams.use_library_browsing` + +bpy.types.GameObjectSettings +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.GameObjectSettings.angular_velocity_max` +* :class:`bpy.types.GameObjectSettings.angular_velocity_min` + +bpy.types.ID +------------ + +Added +^^^^^ + +* :class:`bpy.types.ID.preview` + +bpy.types.Brush +--------------- + +Removed +^^^^^^^ + +* **use_wrap** + +bpy.types.ImagePreview +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.ImagePreview.icon_pixels_float` +* :class:`bpy.types.ImagePreview.image_pixels_float` + +bpy.types.ImageUser +------------------- + +Added +^^^^^ + +* :class:`bpy.types.ImageUser.multilayer_pass` + +bpy.types.BevelModifier +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.BevelModifier.loop_slide` + +bpy.types.SubsurfModifier +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SubsurfModifier.use_opensubdiv` + +bpy.types.ShaderNodeTexImage +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ShaderNodeTexImage.extension` + +bpy.types.Paint +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Paint.tile_offset` +* :class:`bpy.types.Paint.tile_x` +* :class:`bpy.types.Paint.tile_y` +* :class:`bpy.types.Paint.tile_z` + +bpy.types.CyclesObjectBlurSettings +---------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.CyclesObjectBlurSettings.use_camera_cull` + +bpy.types.CyclesRenderSettings +------------------------------ + +Added +^^^^^ + +* :class:`bpy.types.CyclesRenderSettings.camera_cull_margin` +* :class:`bpy.types.CyclesRenderSettings.use_camera_cull` + +bpy.types.CyclesWorldSettings +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.CyclesWorldSettings.max_bounces` + +bpy.types.RenderSettings +------------------------ + +Added +^^^^^ + +* :class:`bpy.types.RenderSettings.use_stamp_strip_meta` + +bpy.types.SmokeDomainSettings +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SmokeDomainSettings.velocity_grid` + +bpy.types.SpaceClipEditor +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceClipEditor.show_metadata` + +bpy.types.SpaceNodeEditor +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceNodeEditor.insert_offset_direction` +* :class:`bpy.types.SpaceNodeEditor.use_insert_offset` + +bpy.types.ToolSettings +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.ToolSettings.use_snap_grid_absolute` + +bpy.types.UILayout +------------------ + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.UILayout.template_icon_view` (data, property, show_labels, scale), *was (data, property, show_labels)* + +bpy.types.UserPreferencesEdit +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.UserPreferencesEdit.node_margin` + +bpy.types.UserPreferencesInput +------------------------------ + +Added +^^^^^ + +* :class:`bpy.types.UserPreferencesInput.ndof_deadzone` + +bpy.types.UserPreferencesSystem +------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.UserPreferencesSystem.opensubdiv_compute_type` + +2.76 to 2.77 +============ + +bpy.types.AnimDataDrivers +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.AnimDataDrivers.find` + +bpy.types.BakeSettings +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.BakeSettings.pass_filter` +* :class:`bpy.types.BakeSettings.use_pass_ambient_occlusion` +* :class:`bpy.types.BakeSettings.use_pass_color` +* :class:`bpy.types.BakeSettings.use_pass_diffuse` +* :class:`bpy.types.BakeSettings.use_pass_direct` +* :class:`bpy.types.BakeSettings.use_pass_emit` +* :class:`bpy.types.BakeSettings.use_pass_glossy` +* :class:`bpy.types.BakeSettings.use_pass_indirect` +* :class:`bpy.types.BakeSettings.use_pass_subsurface` +* :class:`bpy.types.BakeSettings.use_pass_transmission` + +bpy.types.BlendData +------------------- + +Removed +^^^^^^^ + +* **scripts** + +bpy.types.BlendDataFonts +------------------------ + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataFonts.load` (filepath, check_existing), *was (filepath)* + +bpy.types.BlendDataImages +------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataImages.load` (filepath, check_existing), *was (filepath)* + +bpy.types.BlendDataMasks +------------------------ + +Added +^^^^^ + +* :class:`bpy.types.BlendDataMasks.is_updated` + +bpy.types.BlendDataMovieClips +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.BlendDataMovieClips.is_updated` + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataMovieClips.load` (filepath, check_existing), *was (filepath)* + +bpy.types.BlendDataSounds +------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataSounds.load` (filepath, check_existing), *was (filepath)* + +bpy.types.DopeSheet +------------------- + +Added +^^^^^ + +* :class:`bpy.types.DopeSheet.show_gpencil_3d_only` + +bpy.types.FileSelectParams +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.FileSelectParams.display_size` + +Removed +^^^^^^^ + +* **thumbnail_size** + +bpy.types.GameObjectSettings +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.GameObjectSettings.jump_max` + +bpy.types.ID +------------ + +Added +^^^^^ + +* :class:`bpy.types.ID.user_of_id` + +bpy.types.Brush +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Brush.rake_factor` + +bpy.types.FreestyleLineStyle +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.FreestyleLineStyle.animation_data` + +bpy.types.GreasePencil +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.GreasePencil.use_onion_skinning` + +Removed +^^^^^^^ + +* **draw_mode** +* **use_stroke_endpoints** + +bpy.types.Object +---------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.Object.closest_point_on_mesh` (origin, distance), *was (point, max_dist)* +* :class:`bpy.types.Object.ray_cast` (origin, direction, distance), *was (start, end)* + +bpy.types.Scene +--------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.Scene.ray_cast` (origin, direction, distance), *was (start, end)* + +bpy.types.ImageFormatSettings +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ImageFormatSettings.tiff_codec` + +bpy.types.ImagePackedFile +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ImagePackedFile.save` + +bpy.types.DataTransferModifier +------------------------------ + +Removed +^^^^^^^ + +* **data_types_loops_uv** +* **data_types_loops_vcol** +* **data_types_verts_vgroup** + +bpy.types.DecimateModifier +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.DecimateModifier.symmetry_axis` +* :class:`bpy.types.DecimateModifier.use_symmetry` + +bpy.types.Node +-------------- + +Added +^^^^^ + +* :class:`bpy.types.Node.insert_link` + +bpy.types.CompositorNodeBlur +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.CompositorNodeBlur.use_extended_bounds` + +bpy.types.CompositorNodeBokehBlur +--------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.CompositorNodeBokehBlur.use_extended_bounds` + +bpy.types.CompositorNodeStabilize +--------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.CompositorNodeStabilize.invert` + +bpy.types.ShaderNodeTexEnvironment +---------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ShaderNodeTexEnvironment.interpolation` + +bpy.types.ShaderNodeTexPointDensity +----------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ShaderNodeTexPointDensity.cache_point_density` +* :class:`bpy.types.ShaderNodeTexPointDensity.calc_point_density_minmax` + +bpy.types.ShaderNodeTexWave +--------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ShaderNodeTexWave.wave_profile` + +bpy.types.PoseBone +------------------ + +Added +^^^^^ + +* :class:`bpy.types.PoseBone.custom_shape_scale` +* :class:`bpy.types.PoseBone.use_custom_shape_bone_size` + +bpy.types.EnumProperty +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.EnumProperty.enum_items_static` + +bpy.types.CyclesRenderSettings +------------------------------ + +Added +^^^^^ + +* :class:`bpy.types.CyclesRenderSettings.debug_opencl_device_type` +* :class:`bpy.types.CyclesRenderSettings.debug_opencl_kernel_type` +* :class:`bpy.types.CyclesRenderSettings.debug_use_cpu_avx` +* :class:`bpy.types.CyclesRenderSettings.debug_use_cpu_avx2` +* :class:`bpy.types.CyclesRenderSettings.debug_use_cpu_sse2` +* :class:`bpy.types.CyclesRenderSettings.debug_use_cpu_sse3` +* :class:`bpy.types.CyclesRenderSettings.debug_use_cpu_sse41` +* :class:`bpy.types.CyclesRenderSettings.debug_use_opencl_debug` +* :class:`bpy.types.CyclesRenderSettings.debug_use_qbvh` +* :class:`bpy.types.CyclesRenderSettings.motion_blur_position` +* :class:`bpy.types.CyclesRenderSettings.pixel_filter_type` +* :class:`bpy.types.CyclesRenderSettings.rolling_shutter_duration` +* :class:`bpy.types.CyclesRenderSettings.rolling_shutter_type` + +Removed +^^^^^^^ + +* **use_cache** + +bpy.types.RenderEngine +---------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.RenderEngine.bake` (scene, object, pass_type, pass_filter, object_id, pixel_array, num_pixels, depth, result), *was (scene, object, pass_type, object_id, pixel_array, num_pixels, depth, result)* + +bpy.types.CYCLES +---------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.CYCLES.bake` (self, scene, obj, pass_type, pass_filter, object_id, pixel_array, num_pixels, depth, result), *was (self, scene, obj, pass_type, object_id, pixel_array, num_pixels, depth, result)* + +bpy.types.RenderLayer +--------------------- + +Added +^^^^^ + +* :class:`bpy.types.RenderLayer.use_ao` + +bpy.types.RenderSettings +------------------------ + +Added +^^^^^ + +* :class:`bpy.types.RenderSettings.motion_blur_shutter_curve` + +Removed +^^^^^^^ + +* **use_free_unused_nodes** + +bpy.types.SceneRenderLayer +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SceneRenderLayer.use_ao` + +bpy.types.SculptToolCapabilities +-------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SculptToolCapabilities.has_rake_factor` + +bpy.types.TextSequence +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.TextSequence.align_y` +* :class:`bpy.types.TextSequence.wrap_width` + +Renamed +^^^^^^^ + +* **align** -> :class:`bpy.types.TextSequence.align_x` + +bpy.types.WipeSequence +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.WipeSequence.input_2` + +bpy.types.SceneSequence +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.SceneSequence.use_sequence` + +bpy.types.SoundSequence +----------------------- + +Removed +^^^^^^^ + +* **filepath** + +bpy.types.SequenceModifier +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SequenceModifier.mask_time` + +bpy.types.ShapeKey +------------------ + +Added +^^^^^ + +* :class:`bpy.types.ShapeKey.normals_polygon_get` +* :class:`bpy.types.ShapeKey.normals_split_get` +* :class:`bpy.types.ShapeKey.normals_vertex_get` + +bpy.types.SmokeDomainSettings +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SmokeDomainSettings.cache_file_format` +* :class:`bpy.types.SmokeDomainSettings.data_depth` +* :class:`bpy.types.SmokeDomainSettings.openvdb_cache_compress_type` + +bpy.types.SpaceGraphEditor +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceGraphEditor.cursor_position_x` + +bpy.types.ThemeSequenceEditor +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeSequenceEditor.text_strip` + +bpy.types.ThemeView3D +--------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeView3D.text_grease_pencil` +* :class:`bpy.types.ThemeView3D.text_keyframe` + +bpy.types.ToolSettings +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.ToolSettings.gpencil_sculpt` +* :class:`bpy.types.ToolSettings.gpencil_stroke_placement_image_editor` +* :class:`bpy.types.ToolSettings.gpencil_stroke_placement_sequencer_preview` +* :class:`bpy.types.ToolSettings.gpencil_stroke_placement_view2d` +* :class:`bpy.types.ToolSettings.gpencil_stroke_placement_view3d` +* :class:`bpy.types.ToolSettings.use_gpencil_additive_drawing` +* :class:`bpy.types.ToolSettings.use_gpencil_stroke_endpoints` + +Renamed +^^^^^^^ + +* **use_grease_pencil_sessions** -> :class:`bpy.types.ToolSettings.use_gpencil_continuous_drawing` + +bpy.types.UserPreferencesSystem +------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.UserPreferencesSystem.font_path_ui_mono` + +Removed +^^^^^^^ + +* **is_occlusion_query_supported** +* **use_vertex_buffer_objects** + +bpy.types.UserPreferencesView +----------------------------- + +Removed +^^^^^^^ + +* **use_gl_warn_support** + +2.77 to 2.78 +============ + +bpy.types.AnimData +------------------ + +Added +^^^^^ + +* :class:`bpy.types.AnimData.use_tweak_mode` + +bpy.types.BlendData +------------------- + +Added +^^^^^ + +* :class:`bpy.types.BlendData.cache_files` +* :class:`bpy.types.BlendData.paint_curves` + +bpy.types.BlendDataActions +-------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataActions.remove` (action, do_unlink), *was (action)* + +bpy.types.BlendDataArmatures +---------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataArmatures.remove` (armature, do_unlink), *was (armature)* + +bpy.types.BlendDataBrushes +-------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataBrushes.remove` (brush, do_unlink), *was (brush)* + +bpy.types.BlendDataCameras +-------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataCameras.remove` (camera, do_unlink), *was (camera)* + +bpy.types.BlendDataCurves +------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataCurves.remove` (curve, do_unlink), *was (curve)* + +bpy.types.BlendDataFonts +------------------------ + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataFonts.remove` (vfont, do_unlink), *was (vfont)* + +bpy.types.BlendDataGreasePencils +-------------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataGreasePencils.remove` (grease_pencil, do_unlink), *was (grease_pencil)* + +bpy.types.BlendDataGroups +------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataGroups.remove` (group, do_unlink), *was (group)* + +bpy.types.BlendDataImages +------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataImages.remove` (image, do_unlink), *was (image)* + +bpy.types.BlendDataLamps +------------------------ + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataLamps.remove` (lamp, do_unlink), *was (lamp)* + +bpy.types.BlendDataLattices +--------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataLattices.remove` (lattice, do_unlink), *was (lattice)* + +bpy.types.BlendDataLineStyles +----------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataLineStyles.remove` (linestyle, do_unlink), *was (linestyle)* + +bpy.types.BlendDataMasks +------------------------ + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataMasks.remove` (mask, do_unlink), *was (mask)* + +bpy.types.BlendDataMaterials +---------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataMaterials.remove` (material, do_unlink), *was (material)* + +bpy.types.BlendDataMeshes +------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataMeshes.remove` (mesh, do_unlink), *was (mesh)* + +bpy.types.BlendDataMetaBalls +---------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataMetaBalls.remove` (metaball, do_unlink), *was (metaball)* + +bpy.types.BlendDataMovieClips +----------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataMovieClips.remove` (clip, do_unlink), *was (clip)* + +bpy.types.BlendDataNodeTrees +---------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataNodeTrees.remove` (tree, do_unlink), *was (tree)* + +bpy.types.BlendDataObjects +-------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataObjects.remove` (object, do_unlink), *was (object)* + +bpy.types.BlendDataPalettes +--------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataPalettes.remove` (palette, do_unlink), *was (palette)* + +bpy.types.BlendDataParticles +---------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataParticles.remove` (particle, do_unlink), *was (particle)* + +bpy.types.BlendDataScenes +------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataScenes.remove` (scene, do_unlink), *was (scene)* + +bpy.types.BlendDataSounds +------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataSounds.remove` (sound, do_unlink), *was (sound)* + +bpy.types.BlendDataSpeakers +--------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataSpeakers.remove` (speaker, do_unlink), *was (speaker)* + +bpy.types.BlendDataTexts +------------------------ + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataTexts.remove` (text, do_unlink), *was (text)* + +bpy.types.BlendDataTextures +--------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataTextures.remove` (texture, do_unlink), *was (texture)* + +bpy.types.BlendDataWorlds +------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.BlendDataWorlds.remove` (world, do_unlink), *was (world)* + +bpy.types.Bone +-------------- + +Added +^^^^^ + +* :class:`bpy.types.Bone.bbone_curveinx` +* :class:`bpy.types.Bone.bbone_curveiny` +* :class:`bpy.types.Bone.bbone_curveoutx` +* :class:`bpy.types.Bone.bbone_curveouty` +* :class:`bpy.types.Bone.bbone_rollin` +* :class:`bpy.types.Bone.bbone_rollout` +* :class:`bpy.types.Bone.bbone_scalein` +* :class:`bpy.types.Bone.bbone_scaleout` +* :class:`bpy.types.Bone.use_endroll_as_inroll` + +bpy.types.CameraStereoData +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.CameraStereoData.pole_merge_angle_from` +* :class:`bpy.types.CameraStereoData.pole_merge_angle_to` +* :class:`bpy.types.CameraStereoData.use_pole_merge` +* :class:`bpy.types.CameraStereoData.use_spherical_stereo` + +bpy.types.ClothSettings +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.ClothSettings.time_scale` +* :class:`bpy.types.ClothSettings.use_dynamic_mesh` + +bpy.types.CopyLocationConstraint +-------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.CopyLocationConstraint.use_bbone_shape` + +bpy.types.CopyTransformsConstraint +---------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.CopyTransformsConstraint.use_bbone_shape` + +bpy.types.DampedTrackConstraint +------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.DampedTrackConstraint.use_bbone_shape` + +bpy.types.LimitDistanceConstraint +--------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.LimitDistanceConstraint.use_bbone_shape` + +bpy.types.LockedTrackConstraint +------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.LockedTrackConstraint.use_bbone_shape` + +bpy.types.PivotConstraint +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.PivotConstraint.use_bbone_shape` + +bpy.types.StretchToConstraint +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.StretchToConstraint.use_bbone_shape` + +bpy.types.TrackToConstraint +--------------------------- + +Added +^^^^^ + +* :class:`bpy.types.TrackToConstraint.use_bbone_shape` + +bpy.types.DopeSheet +------------------- + +Added +^^^^^ + +* :class:`bpy.types.DopeSheet.use_datablock_sort` +* :class:`bpy.types.DopeSheet.use_multi_word_filter` + +bpy.types.Driver +---------------- + +Added +^^^^^ + +* :class:`bpy.types.Driver.use_self` + +bpy.types.DriverVariable +------------------------ + +Added +^^^^^ + +* :class:`bpy.types.DriverVariable.is_name_valid` + +bpy.types.EditBone +------------------ + +Added +^^^^^ + +* :class:`bpy.types.EditBone.bbone_curveinx` +* :class:`bpy.types.EditBone.bbone_curveiny` +* :class:`bpy.types.EditBone.bbone_curveoutx` +* :class:`bpy.types.EditBone.bbone_curveouty` +* :class:`bpy.types.EditBone.bbone_rollin` +* :class:`bpy.types.EditBone.bbone_rollout` +* :class:`bpy.types.EditBone.bbone_scalein` +* :class:`bpy.types.EditBone.bbone_scaleout` +* :class:`bpy.types.EditBone.use_endroll_as_inroll` + +bpy.types.FCurveKeyframePoints +------------------------------ + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.FCurveKeyframePoints.insert` (frame, value, options, keyframe_type), *was (frame, value, options)* + +bpy.types.GPencilLayer +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.GPencilLayer.is_parented` +* :class:`bpy.types.GPencilLayer.matrix_inverse` +* :class:`bpy.types.GPencilLayer.parent` +* :class:`bpy.types.GPencilLayer.parent_bone` +* :class:`bpy.types.GPencilLayer.parent_type` +* :class:`bpy.types.GPencilLayer.tint_color` +* :class:`bpy.types.GPencilLayer.tint_factor` +* :class:`bpy.types.GPencilLayer.unlock_color` + +Removed +^^^^^^^ + +* **color** +* **fill_alpha** +* **fill_color** +* **is_fill_visible** +* **is_stroke_visible** + +Renamed +^^^^^^^ + +* **alpha** -> :class:`bpy.types.GPencilLayer.opacity` +* **line_width** -> :class:`bpy.types.GPencilLayer.line_change` + +bpy.types.GPencilSculptSettings +------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.GPencilSculptSettings.affect_position` +* :class:`bpy.types.GPencilSculptSettings.affect_strength` +* :class:`bpy.types.GPencilSculptSettings.affect_thickness` +* :class:`bpy.types.GPencilSculptSettings.selection_alpha` + +bpy.types.GPencilStroke +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.GPencilStroke.color` +* :class:`bpy.types.GPencilStroke.colorname` +* :class:`bpy.types.GPencilStroke.draw_cyclic` +* :class:`bpy.types.GPencilStroke.line_width` +* :class:`bpy.types.GPencilStroke.triangles` + +bpy.types.GPencilStrokePoint +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.GPencilStrokePoint.strength` + +bpy.types.GPencilStrokePoints +----------------------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.GPencilStrokePoints.add` (count, pressure, strength), *was (count)* + +bpy.types.GPencilStrokes +------------------------ + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.GPencilStrokes.new` (colorname), *was ()* + +bpy.types.ID +------------ + +Added +^^^^^ + +* :class:`bpy.types.ID.user_remap` + +bpy.types.TextCurve +------------------- + +Added +^^^^^ + +* :class:`bpy.types.TextCurve.align_x` +* :class:`bpy.types.TextCurve.align_y` + +Removed +^^^^^^^ + +* **align** + +bpy.types.GreasePencil +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.GreasePencil.palettes` +* :class:`bpy.types.GreasePencil.show_stroke_direction` + +bpy.types.PointLamp +------------------- + +Added +^^^^^ + +* :class:`bpy.types.PointLamp.constant_coefficient` +* :class:`bpy.types.PointLamp.linear_coefficient` +* :class:`bpy.types.PointLamp.quadratic_coefficient` + +bpy.types.SpotLamp +------------------ + +Added +^^^^^ + +* :class:`bpy.types.SpotLamp.constant_coefficient` +* :class:`bpy.types.SpotLamp.linear_coefficient` +* :class:`bpy.types.SpotLamp.quadratic_coefficient` + +bpy.types.Library +----------------- + +Added +^^^^^ + +* :class:`bpy.types.Library.reload` + +bpy.types.Mesh +-------------- + +Added +^^^^^ + +* :class:`bpy.types.Mesh.flip_normals` +* :class:`bpy.types.Mesh.split_faces` + +bpy.types.MovieClip +------------------- + +Added +^^^^^ + +* :class:`bpy.types.MovieClip.animation_data` + +bpy.types.ParticleSettings +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ParticleSettings.collision_group` + +bpy.types.Scene +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Scene.alembic_export` + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.Scene.collada_export` (filepath, apply_modifiers, export_mesh_type, selected, include_children, include_armatures, include_shapekeys, deform_bones_only, active_uv_only, include_uv_textures, include_material_textures, use_texture_copies, use_ngons, use_object_instantiation, use_blender_profile, sort_by_name, open_sim, export_transformation_type), *was (filepath, apply_modifiers, export_mesh_type, selected, include_children, include_armatures, include_shapekeys, deform_bones_only, active_uv_only, include_uv_textures, include_material_textures, use_texture_copies, use_ngons, use_object_instantiation, sort_by_name, open_sim, export_transformation_type)* + +bpy.types.WholeCharacter +------------------------ + +Added +^^^^^ + +* :class:`bpy.types.WholeCharacter.doBBone` + +bpy.types.MeshPolygon +--------------------- + +Added +^^^^^ + +* :class:`bpy.types.MeshPolygon.flip` + +bpy.types.BooleanModifier +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.BooleanModifier.double_threshold` +* :class:`bpy.types.BooleanModifier.solver` + +bpy.types.HookModifier +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.HookModifier.matrix_inverse` + +bpy.types.NormalEditModifier +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.NormalEditModifier.mix_limit` + +bpy.types.ShrinkwrapModifier +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ShrinkwrapModifier.invert_vertex_group` + +bpy.types.SimpleDeformModifier +------------------------------ + +Added +^^^^^ + +* :class:`bpy.types.SimpleDeformModifier.invert_vertex_group` + +bpy.types.MovieTrackingStabilization +------------------------------------ + +Added +^^^^^ + +* :class:`bpy.types.MovieTrackingStabilization.active_rotation_track_index` +* :class:`bpy.types.MovieTrackingStabilization.anchor_frame` +* :class:`bpy.types.MovieTrackingStabilization.rotation_tracks` +* :class:`bpy.types.MovieTrackingStabilization.show_tracks_expanded` +* :class:`bpy.types.MovieTrackingStabilization.target_position` +* :class:`bpy.types.MovieTrackingStabilization.target_rotation` +* :class:`bpy.types.MovieTrackingStabilization.target_scale` +* :class:`bpy.types.MovieTrackingStabilization.use_stabilize_scale` + +Removed +^^^^^^^ + +* **rotation_track** + +bpy.types.MovieTrackingTrack +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.MovieTrackingTrack.weight_stab` + +bpy.types.CompositorNodeColorBalance +------------------------------------ + +Added +^^^^^ + +* :class:`bpy.types.CompositorNodeColorBalance.offset_basis` + +bpy.types.ShaderNodeTexPointDensity +----------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ShaderNodeTexPointDensity.vertex_attribute_name` + +Renamed +^^^^^^^ + +* **color_source** -> :class:`bpy.types.ShaderNodeTexPointDensity.particle_color_source` +* **color_source** -> :class:`bpy.types.ShaderNodeTexPointDensity.vertex_color_source` + +bpy.types.PointDensity +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.PointDensity.vertex_attribute_name` + +Renamed +^^^^^^^ + +* **color_source** -> :class:`bpy.types.PointDensity.particle_color_source` +* **color_source** -> :class:`bpy.types.PointDensity.vertex_color_source` + +bpy.types.PoseBone +------------------ + +Added +^^^^^ + +* :class:`bpy.types.PoseBone.bbone_curveinx` +* :class:`bpy.types.PoseBone.bbone_curveiny` +* :class:`bpy.types.PoseBone.bbone_curveoutx` +* :class:`bpy.types.PoseBone.bbone_curveouty` +* :class:`bpy.types.PoseBone.bbone_custom_handle_end` +* :class:`bpy.types.PoseBone.bbone_custom_handle_start` +* :class:`bpy.types.PoseBone.bbone_rollin` +* :class:`bpy.types.PoseBone.bbone_rollout` +* :class:`bpy.types.PoseBone.bbone_scalein` +* :class:`bpy.types.PoseBone.bbone_scaleout` +* :class:`bpy.types.PoseBone.use_bbone_custom_handles` +* :class:`bpy.types.PoseBone.use_bbone_relative_end_handle` +* :class:`bpy.types.PoseBone.use_bbone_relative_start_handle` + +bpy.types.BoolProperty +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.BoolProperty.is_array` + +bpy.types.FloatProperty +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.FloatProperty.is_array` + +bpy.types.IntProperty +--------------------- + +Added +^^^^^ + +* :class:`bpy.types.IntProperty.is_array` + +bpy.types.CyclesMaterialSettings +-------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.CyclesMaterialSettings.displacement_method` + +bpy.types.CyclesMeshSettings +---------------------------- + +Removed +^^^^^^^ + +* **dicing_rate** +* **displacement_method** +* **use_subdivision** + +bpy.types.CyclesRenderSettings +------------------------------ + +Added +^^^^^ + +* :class:`bpy.types.CyclesRenderSettings.debug_bvh_time_steps` +* :class:`bpy.types.CyclesRenderSettings.debug_use_cuda_adaptive_compile` +* :class:`bpy.types.CyclesRenderSettings.debug_use_hair_bvh` +* :class:`bpy.types.CyclesRenderSettings.dicing_rate` +* :class:`bpy.types.CyclesRenderSettings.distance_cull_margin` +* :class:`bpy.types.CyclesRenderSettings.light_sampling_threshold` +* :class:`bpy.types.CyclesRenderSettings.max_subdivisions` +* :class:`bpy.types.CyclesRenderSettings.preview_dicing_rate` +* :class:`bpy.types.CyclesRenderSettings.texture_limit` +* :class:`bpy.types.CyclesRenderSettings.texture_limit_render` +* :class:`bpy.types.CyclesRenderSettings.use_distance_cull` + +bpy.types.RenderEngine +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.RenderEngine.active_view_get` +* :class:`bpy.types.RenderEngine.bl_use_spherical_stereo` +* :class:`bpy.types.RenderEngine.use_spherical_stereo` + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.RenderEngine.camera_model_matrix` (camera, use_spherical_stereo, r_model_matrix), *was (camera, r_model_matrix)* +* :class:`bpy.types.RenderEngine.camera_shift_x` (camera, use_spherical_stereo), *was (camera)* + +bpy.types.RenderSettings +------------------------ + +Added +^^^^^ + +* :class:`bpy.types.RenderSettings.use_spherical_stereo` +* :class:`bpy.types.RenderSettings.use_stamp_labels` +* :class:`bpy.types.RenderSettings.use_stamp_memory` +* :class:`bpy.types.RenderSettings.use_world_space_shading` + +bpy.types.SceneGameData +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.SceneGameData.use_glsl_environment_lighting` + +bpy.types.SceneGameRecastData +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SceneGameRecastData.partitioning` + +bpy.types.TextSequence +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.TextSequence.color` +* :class:`bpy.types.TextSequence.shadow_color` + +bpy.types.SmokeDomainSettings +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SmokeDomainSettings.heat_grid` + +bpy.types.SoftBodySettings +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SoftBodySettings.collision_group` + +bpy.types.SpaceNLA +------------------ + +Added +^^^^^ + +* :class:`bpy.types.SpaceNLA.show_local_markers` + +bpy.types.ThemeDopeSheet +------------------------ + +Added +^^^^^ + +* :class:`bpy.types.ThemeDopeSheet.keyframe_scale_factor` + +bpy.types.ThemeFileBrowser +-------------------------- + +Removed +^^^^^^^ + +* **active_file** +* **active_file_text** +* **scroll_handle** +* **scrollbar** +* **space_list** + +bpy.types.ToolSettings +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.ToolSettings.curve_paint_settings` +* :class:`bpy.types.ToolSettings.gpencil_brushes` +* :class:`bpy.types.ToolSettings.keyframe_type` +* :class:`bpy.types.ToolSettings.use_gpencil_draw_onback` + +bpy.types.UILayout +------------------ + +Added +^^^^^ + +* :class:`bpy.types.UILayout.template_cache_file` + +bpy.types.UserPreferences +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.UserPreferences.version` + +bpy.types.UserPreferencesEdit +----------------------------- + +Removed +^^^^^^^ + +* **use_grease_pencil_smooth_stroke** + +bpy.types.UserPreferencesInput +------------------------------ + +Added +^^^^^ + +* :class:`bpy.types.UserPreferencesInput.use_ndof` + +bpy.types.UserPreferencesSystem +------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.UserPreferencesSystem.legacy_compute_device_type` + +Removed +^^^^^^^ + +* **compute_device** +* **compute_device_type** + +2.78 to 2.79 +============ + +bpy.types.DupliObject +--------------------- + +Added +^^^^^ + +* :class:`bpy.types.DupliObject.random_id` + +bpy.types.FFmpegSettings +------------------------ + +Added +^^^^^ + +* :class:`bpy.types.FFmpegSettings.constant_rate_factor` +* :class:`bpy.types.FFmpegSettings.ffmpeg_preset` +* :class:`bpy.types.FFmpegSettings.max_b_frames` +* :class:`bpy.types.FFmpegSettings.use_max_b_frames` + +bpy.types.FieldSettings +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.FieldSettings.use_gravity_falloff` + +bpy.types.GPencilLayer +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.GPencilLayer.use_ghosts_always` + +bpy.types.GPencilSculptSettings +------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.GPencilSculptSettings.lockaxis` + +bpy.types.Header +---------------- + +Added +^^^^^ + +* :class:`bpy.types.Header.is_extended` + +bpy.types.ID +------------ + +Added +^^^^^ + +* :class:`bpy.types.ID.make_local` + +bpy.types.Mesh +-------------- + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.Mesh.split_faces` (free_loop_normals), *was ()* + +bpy.types.Scene +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Scene.frame_float` +* :class:`bpy.types.Scene.show_subframe` + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.Scene.alembic_export` (filepath, frame_start, frame_end, xform_samples, geom_samples, shutter_open, shutter_close, selected_only, uvs, normals, vcolors, apply_subdiv, flatten, visible_layers_only, renderable_only, face_sets, subdiv_schema, export_hair, export_particles, compression_type, packuv, scale, triangulate, quad_method, ngon_method), *was (filepath, frame_start, frame_end, xform_samples, geom_samples, shutter_open, shutter_close, selected_only, uvs, normals, vcolors, apply_subdiv, flatten, visible_layers_only, renderable_only, face_sets, subdiv_schema, compression_type, packuv, scale)* +* :class:`bpy.types.Scene.collada_export` (filepath, apply_modifiers, export_mesh_type, selected, include_children, include_armatures, include_shapekeys, deform_bones_only, active_uv_only, export_texture_type, use_texture_copies, triangulate, use_object_instantiation, use_blender_profile, sort_by_name, export_transformation_type, open_sim, limit_precision, keep_bind_info), *was (filepath, apply_modifiers, export_mesh_type, selected, include_children, include_armatures, include_shapekeys, deform_bones_only, active_uv_only, include_uv_textures, include_material_textures, use_texture_copies, use_ngons, use_object_instantiation, use_blender_profile, sort_by_name, open_sim, export_transformation_type)* + +bpy.types.Macro +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Macro.bl_undo_group` + +bpy.types.Menu +-------------- + +Added +^^^^^ + +* :class:`bpy.types.Menu.is_extended` + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.Menu.path_menu` (self, searchpaths, operator), *was (self, searchpaths, operator, props_default, filter_ext)* + +bpy.types.GPENCIL_PIE_sculpt +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.GPENCIL_PIE_sculpt.is_extended` + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.GPENCIL_PIE_sculpt.path_menu` (self, searchpaths, operator), *was (self, searchpaths, operator, props_default, filter_ext)* + +bpy.types.GPENCIL_PIE_settings_palette +-------------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.GPENCIL_PIE_settings_palette.is_extended` + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.GPENCIL_PIE_settings_palette.path_menu` (self, searchpaths, operator), *was (self, searchpaths, operator, props_default, filter_ext)* + +bpy.types.GPENCIL_PIE_tool_palette +---------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.GPENCIL_PIE_tool_palette.is_extended` + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.GPENCIL_PIE_tool_palette.path_menu` (self, searchpaths, operator), *was (self, searchpaths, operator, props_default, filter_ext)* + +bpy.types.GPENCIL_PIE_tools_more +-------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.GPENCIL_PIE_tools_more.is_extended` + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.GPENCIL_PIE_tools_more.path_menu` (self, searchpaths, operator), *was (self, searchpaths, operator, props_default, filter_ext)* + +bpy.types.DisplaceModifier +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.DisplaceModifier.space` + +bpy.types.MirrorModifier +------------------------ + +Added +^^^^^ + +* :class:`bpy.types.MirrorModifier.mirror_offset_u` +* :class:`bpy.types.MirrorModifier.mirror_offset_v` + +bpy.types.ScrewModifier +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.ScrewModifier.merge_threshold` +* :class:`bpy.types.ScrewModifier.use_merge_vertices` + +bpy.types.MotionPath +-------------------- + +Added +^^^^^ + +* :class:`bpy.types.MotionPath.color` +* :class:`bpy.types.MotionPath.line_thickness` +* :class:`bpy.types.MotionPath.lines` +* :class:`bpy.types.MotionPath.use_custom_color` + +bpy.types.CompositorNodeBrightContrast +-------------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.CompositorNodeBrightContrast.use_premultiply` + +bpy.types.CompositorNodeHueSat +------------------------------ + +Removed +^^^^^^^ + +* **color_hue** +* **color_saturation** +* **color_value** + +bpy.types.CompositorNodeSwitchView +---------------------------------- + +Removed +^^^^^^^ + +* **check** + +bpy.types.Operator +------------------ + +Added +^^^^^ + +* :class:`bpy.types.Operator.bl_undo_group` +* :class:`bpy.types.Operator.is_repeat` + +bpy.types.Sculpt +---------------- + +Added +^^^^^ + +* :class:`bpy.types.Sculpt.constant_detail_resolution` + +Removed +^^^^^^^ + +* **constant_detail** + +bpy.types.Panel +--------------- + +Added +^^^^^ + +* :class:`bpy.types.Panel.is_extended` + +bpy.types.IMAGE_UV_sculpt +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.IMAGE_UV_sculpt.is_extended` + +bpy.types.IMAGE_UV_sculpt_curve +------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.IMAGE_UV_sculpt_curve.is_extended` + +bpy.types.CyclesObjectSettings +------------------------------ + +Added +^^^^^ + +* :class:`bpy.types.CyclesObjectSettings.is_shadow_catcher` + +bpy.types.CyclesRenderSettings +------------------------------ + +Added +^^^^^ + +* :class:`bpy.types.CyclesRenderSettings.ao_bounces` +* :class:`bpy.types.CyclesRenderSettings.ao_bounces_render` +* :class:`bpy.types.CyclesRenderSettings.debug_opencl_kernel_single_program` +* :class:`bpy.types.CyclesRenderSettings.debug_opencl_mem_limit` +* :class:`bpy.types.CyclesRenderSettings.debug_use_cpu_split_kernel` +* :class:`bpy.types.CyclesRenderSettings.debug_use_cuda_split_kernel` + +bpy.types.PropertyGroupItem +--------------------------- + +Added +^^^^^ + +* :class:`bpy.types.PropertyGroupItem.id` + +bpy.types.RenderEngine +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.RenderEngine.add_pass` +* :class:`bpy.types.RenderEngine.register_pass` +* :class:`bpy.types.RenderEngine.update_render_passes` + +Function Arguments +^^^^^^^^^^^^^^^^^^ + +* :class:`bpy.types.RenderEngine.end_result` (result, cancel, highlight, do_merge_results), *was (result, cancel, do_merge_results)* + +bpy.types.CYCLES +---------------- + +Added +^^^^^ + +* :class:`bpy.types.CYCLES.update_render_passes` + +bpy.types.RenderPass +-------------------- + +Added +^^^^^ + +* :class:`bpy.types.RenderPass.fullname` + +Removed +^^^^^^^ + +* **debug_type** +* **type** + +bpy.types.RenderPasses +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.RenderPasses.find_by_name` + +bpy.types.RenderSettings +------------------------ + +Removed +^^^^^^^ + +* **sequencer_gl_render** +* **use_sequencer_gl_preview** + +bpy.types.RigidBodyConstraint +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.RigidBodyConstraint.spring_damping_ang_x` +* :class:`bpy.types.RigidBodyConstraint.spring_damping_ang_y` +* :class:`bpy.types.RigidBodyConstraint.spring_damping_ang_z` +* :class:`bpy.types.RigidBodyConstraint.spring_stiffness_ang_x` +* :class:`bpy.types.RigidBodyConstraint.spring_stiffness_ang_y` +* :class:`bpy.types.RigidBodyConstraint.spring_stiffness_ang_z` +* :class:`bpy.types.RigidBodyConstraint.use_spring_ang_x` +* :class:`bpy.types.RigidBodyConstraint.use_spring_ang_y` +* :class:`bpy.types.RigidBodyConstraint.use_spring_ang_z` + +bpy.types.SceneRenderLayer +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SceneRenderLayer.cycles` +* :class:`bpy.types.SceneRenderLayer.update_render_passes` + +bpy.types.SmokeDomainSettings +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SmokeDomainSettings.axis_slice_method` +* :class:`bpy.types.SmokeDomainSettings.coba_field` +* :class:`bpy.types.SmokeDomainSettings.color_ramp` +* :class:`bpy.types.SmokeDomainSettings.display_thickness` +* :class:`bpy.types.SmokeDomainSettings.draw_velocity` +* :class:`bpy.types.SmokeDomainSettings.slice_axis` +* :class:`bpy.types.SmokeDomainSettings.slice_depth` +* :class:`bpy.types.SmokeDomainSettings.slice_method` +* :class:`bpy.types.SmokeDomainSettings.slice_per_voxel` +* :class:`bpy.types.SmokeDomainSettings.use_color_ramp` +* :class:`bpy.types.SmokeDomainSettings.vector_draw_type` +* :class:`bpy.types.SmokeDomainSettings.vector_scale` + +bpy.types.SpaceNodeEditor +------------------------- + +Removed +^^^^^^^ + +* **show_highlight** + +bpy.types.SpaceView3D +--------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceView3D.active_layer` + +bpy.types.SpaceUVEditor +----------------------- + +Added +^^^^^ + +* :class:`bpy.types.SpaceUVEditor.other_uv_filter` + +bpy.types.ThemeGraphEditor +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeGraphEditor.vertex_bevel` + +bpy.types.ThemeImageEditor +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeImageEditor.vertex_bevel` + +bpy.types.ThemeView3D +--------------------- + +Added +^^^^^ + +* :class:`bpy.types.ThemeView3D.edge_bevel` +* :class:`bpy.types.ThemeView3D.vertex_bevel` + +bpy.types.ToolSettings +---------------------- + +Added +^^^^^ + +* :class:`bpy.types.ToolSettings.gpencil_interpolate` + +bpy.types.UIList +---------------- + +Added +^^^^^ + +* :class:`bpy.types.UIList.is_extended` + +bpy.types.CLIP_UL_tracking_objects +---------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.CLIP_UL_tracking_objects.is_extended` + +bpy.types.FILEBROWSER_UL_dir +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.FILEBROWSER_UL_dir.is_extended` + +bpy.types.GPENCIL_UL_brush +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.GPENCIL_UL_brush.is_extended` + +bpy.types.GPENCIL_UL_layer +-------------------------- + +Added +^^^^^ + +* :class:`bpy.types.GPENCIL_UL_layer.is_extended` + +bpy.types.GPENCIL_UL_palettecolor +--------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.GPENCIL_UL_palettecolor.is_extended` + +bpy.types.MASK_UL_layers +------------------------ + +Added +^^^^^ + +* :class:`bpy.types.MASK_UL_layers.is_extended` + +bpy.types.MATERIAL_UL_matslots +------------------------------ + +Added +^^^^^ + +* :class:`bpy.types.MATERIAL_UL_matslots.is_extended` + +bpy.types.MESH_UL_shape_keys +---------------------------- + +Added +^^^^^ + +* :class:`bpy.types.MESH_UL_shape_keys.is_extended` + +bpy.types.MESH_UL_uvmaps_vcols +------------------------------ + +Added +^^^^^ + +* :class:`bpy.types.MESH_UL_uvmaps_vcols.is_extended` + +bpy.types.MESH_UL_vgroups +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.MESH_UL_vgroups.is_extended` + +bpy.types.NODE_UL_interface_sockets +----------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.NODE_UL_interface_sockets.is_extended` + +bpy.types.PARTICLE_UL_particle_systems +-------------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.PARTICLE_UL_particle_systems.is_extended` + +bpy.types.PHYSICS_UL_dynapaint_surfaces +--------------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.PHYSICS_UL_dynapaint_surfaces.is_extended` + +bpy.types.RENDERLAYER_UL_linesets +--------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.RENDERLAYER_UL_linesets.is_extended` + +bpy.types.RENDERLAYER_UL_renderlayers +------------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.RENDERLAYER_UL_renderlayers.is_extended` + +bpy.types.RENDERLAYER_UL_renderviews +------------------------------------ + +Added +^^^^^ + +* :class:`bpy.types.RENDERLAYER_UL_renderviews.is_extended` + +bpy.types.SCENE_UL_keying_set_paths +----------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.SCENE_UL_keying_set_paths.is_extended` + +bpy.types.TEXTURE_UL_texpaintslots +---------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.TEXTURE_UL_texpaintslots.is_extended` + +bpy.types.TEXTURE_UL_texslots +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.TEXTURE_UL_texslots.is_extended` + +bpy.types.UI_UL_list +-------------------- + +Added +^^^^^ + +* :class:`bpy.types.UI_UL_list.is_extended` + +bpy.types.UserPreferences +------------------------- + +Added +^^^^^ + +* :class:`bpy.types.UserPreferences.app_template` + +bpy.types.UserPreferencesSystem +------------------------------- + +Added +^^^^^ + +* :class:`bpy.types.UserPreferencesSystem.use_select_pick_depth` + +Removed +^^^^^^^ + +* **use_textured_fonts** +* **virtual_pixel_mode** + +bpy.types.UserPreferencesView +----------------------------- + +Added +^^^^^ + +* :class:`bpy.types.UserPreferencesView.ui_line_width` +* :class:`bpy.types.UserPreferencesView.ui_scale` +* :class:`bpy.types.UserPreferencesView.use_cursor_lock_adjust` diff --git a/doc/python_api/rst/gpu.rst b/doc/python_api/rst/gpu.rst index 6c38122a573..cf639357a31 100644 --- a/doc/python_api/rst/gpu.rst +++ b/doc/python_api/rst/gpu.rst @@ -6,6 +6,13 @@ GPU functions (gpu) This module provides access to materials GLSL shaders. +Submodules: + +.. toctree:: + :maxdepth: 1 + + gpu.offscreen.rst + Intro ===== @@ -24,7 +31,6 @@ and in the game engine. Constants ========= - GLSL Data Type -------------- diff --git a/doc/python_api/rst/include__bmesh.rst b/doc/python_api/rst/include__bmesh.rst index 83e3e73cea4..bed374bf7b6 100644 --- a/doc/python_api/rst/include__bmesh.rst +++ b/doc/python_api/rst/include__bmesh.rst @@ -7,14 +7,17 @@ Submodules: -* :mod:`bmesh.ops` -* :mod:`bmesh.types` -* :mod:`bmesh.utils` -* :mod:`bmesh.geometry` +.. toctree:: + :maxdepth: 1 + bmesh.ops.rst + bmesh.types.rst + bmesh.utils.rst + bmesh.geometry.rst -Intro ------ + +Introduction +------------ This API gives access the blenders internal mesh editing api, featuring geometry connectivity data and access to editing operations such as split, separate, collapse and dissolve. diff --git a/doc/python_api/rst/info_api_reference.rst b/doc/python_api/rst/info_api_reference.rst index 43469fc0cb7..5ef5866c44a 100644 --- a/doc/python_api/rst/info_api_reference.rst +++ b/doc/python_api/rst/info_api_reference.rst @@ -204,7 +204,7 @@ Lets say we want to access the texture of a brush via Python, to adjust its ``co - Start in the default scene and enable 'Sculpt' mode from the 3D-View header. - From the toolbar expand the **Texture** panel and add a new texture. - *Notice the texture button its self doesn't have very useful links (you can check the tool-tips).* + *Notice the texture button its self doesn't have very useful links (you can check the tooltips).* - The contrast setting isn't exposed in the sculpt toolbar, so view the texture in the properties panel... - In the properties button select the Texture context. diff --git a/doc/python_api/rst/info_overview.rst b/doc/python_api/rst/info_overview.rst index b4ae906277d..721374cd472 100644 --- a/doc/python_api/rst/info_overview.rst +++ b/doc/python_api/rst/info_overview.rst @@ -5,23 +5,25 @@ Python API Overview ******************* -This document is to give an understanding of how Python and Blender fit together, -covering some of the functionality that isn't obvious from reading the API reference and example scripts. +The purpose of this document is to explain how Python and Blender fit together, +covering some of the functionality that may not be obvious from reading the API +references and example scripts. Python in Blender ================= -Blender embeds a Python interpreter which is started with Blender and stays active. -This interpreter runs scripts to draw the user interface and is used for some of Blender's internal tools too. +Blender has an embedded Python interpreter which is loaded when Blender is started and stays +active while Blender is running. This interpreter runs scripts to draw the user interface +and is used for some of Blender’s internal tools as well. -This is a typical Python environment so tutorials on how to write Python scripts -will work running the scripts in Blender too. -Blender provides the :mod:`bpy` module to the Python interpreter. -This module can be imported in a script and gives access to Blender data, classes, and functions. -Scripts that deal with Blender data will need to import this module. +Blender's embedded interpreter provides a typical Python environment, so code from tutorials +on how to write Python scripts can also be run with Blender’s interpreter. Blender provides its +Python modules, such as :mod:`bpy` and :mod:`mathutils`, to the embedded interpreter so they can +be imported into a script and give access to Blender's data, classes, and functions. Scripts that +deal with Blender data will need to import the modules to work. -Here is a simple example of moving a vertex of the object named **Cube**: +Here is a simple example which moves a vertex attached to an object named **Cube**: .. code-block:: python @@ -49,15 +51,17 @@ See the :ref:`directory layout docs <blender_manual:getting-started_installing-c Script Loading ============== -This may seem obvious but it's important to note the difference -between executing a script directly or importing it as a module. +This may seem obvious, but it is important to note the difference between +executing a script directly and importing a script as a module. -Scripts that extend Blender - define classes that exist beyond the scripts execution, -this makes future access to these classes (to unregister for example) -more difficult than importing as a module where class instance is kept -in the module and can be accessed by importing that module later on. +Extending Blender by executing a script directly means the classes that the script +defines remain available inside Blender after the script finishes execution. +Using scripts this way makes future access to their classes +(to unregister them for example) more difficult compared to importing the scripts as modules. +When a script is imported as a module, its class instances will remain +inside the module and can be accessed later on by importing that module again. -For this reason it's preferable to only use directly execute scripts that don't extend Blender by registering classes. +For this reason it is preferable to avoid directly executing scripts that extend Blender by registering classes. Here are some ways to run scripts directly in Blender. @@ -80,7 +84,7 @@ To run as modules: Add-ons ------- +------- Some of Blenders functionality is best kept optional, alongside scripts loaded at startup we have add-ons which are kept in their own directory ``scripts/addons``, @@ -213,7 +217,7 @@ A simple Blender/Python module can look like this: bpy.utils.register_class(SimpleOperator) def unregister(): - bpy.utils.unregister_class(SimpleOperator) + bpy.utils.unregister_class(SimpleOperator) if __name__ == "__main__": register() @@ -327,7 +331,7 @@ Say you want to store material settings for a custom engine. .. note:: *The class must be registered before being used in a property, failing to do so will raise an error:* - + ``ValueError: bpy_struct "Material" registration error: my_custom_props could not register`` @@ -396,8 +400,8 @@ This works just as well for PropertyGroup subclasses you define yourself. Dynamic Defined-Classes (Advanced) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -In some cases the specifier for data may not be in Blender, -renderman shader definitions for example and it may be useful to define types and remove them on the fly. +In some cases the specifier for data may not be in Blender, renderman shader definitions +for example, and it may be useful to define them as types and remove them on the fly. .. code-block:: python @@ -420,7 +424,7 @@ renderman shader definitions for example and it may be useful to define types an This is an alternative syntax for class creation in Python, better suited to constructing classes dynamically. -Calling these operators: +To call the operators from the previous example: >>> bpy.ops.object.operator_1() Hello World OBJECT_OT_operator_1 @@ -429,4 +433,3 @@ Calling these operators: >>> bpy.ops.object.operator_2() Hello World OBJECT_OT_operator_2 {'FINISHED'} - diff --git a/doc/python_api/rst/info_tutorial_addon.rst b/doc/python_api/rst/info_tutorial_addon.rst deleted file mode 100644 index 92fbf9b8787..00000000000 --- a/doc/python_api/rst/info_tutorial_addon.rst +++ /dev/null @@ -1,635 +0,0 @@ - -Add-on Tutorial -############### - -************ -Introduction -************ - - -Intended Audience -================= - -This tutorial is designed to help technical artists or developers learn to extend Blender. -An understanding of the basics of Python is expected for those working through this tutorial. - - -Prerequisites -------------- - -Before going through the tutorial you should... - -- Familiarity with the basics of working in Blender. -- Know how to run a script in Blender's text editor (as documented in the quick-start) -- Have an understanding of Python primitive types (int, boolean, string, list, tuple, dictionary, and set). -- Be familiar with the concept of Python modules. -- Basic understanding of classes (object orientation) in Python. - - -Suggested reading before starting this tutorial. - -- `Dive Into Python <http://getpython3.com/diveintopython3/index.html>`_ sections (1, 2, 3, 4, and 7). -- :ref:`Blender API Quickstart <info_quickstart>` - to help become familiar with Blender/Python basics. - - -To best troubleshoot any error message Python prints while writing scripts you run blender with from a terminal, -see :ref:`Use The Terminal <use_the_terminal>`. - - -Documentation Links -=================== - -While going through the tutorial you may want to look into our reference documentation. - -- :ref:`Blender API Overview <info_overview>`. - - *This document is rather detailed but helpful if you want to know more on a topic.* -- :mod:`bpy.context` api reference. - - *Handy to have a list of available items your script may operate on.* -- :class:`bpy.types.Operator`. - - *The following add-ons define operators, these docs give details and more examples of operators.* - - -******* -Add-ons -******* - -What is an Add-on? -================== - -An add-on is simply a Python module with some additional requirements so Blender can display it in a list with useful -information. - -To give an example, here is the simplest possible add-on. - -.. code-block:: python - - bl_info = {"name": "My Test Add-on", "category": "Object"} - def register(): - print("Hello World") - def unregister(): - print("Goodbye World") - - -- ``bl_info`` is a dictionary containing add-on metadata such as the title, - version and author to be displayed in the user preferences add-on list. -- ``register`` is a function which only runs when enabling the add-on, - this means the module can be loaded without activating the add-on. -- ``unregister`` is a function to unload anything setup by ``register``, this is called when the add-on is disabled. - - -Notice this add-on does not do anything related to Blender, (the :mod:`bpy` module is not imported for example). - -This is a contrived example of an add-on that serves to illustrate the point -that the base requirements of an add-on are simple. - -An add-on will typically register operators, panels, menu items etc, but its worth noting that _any_ script can do this, -when executed from the text editor or even the interactive console - there is nothing inherently different about an -add-on that allows it to integrate with Blender, such functionality is just provided by the :mod:`bpy` module for any -script to access. - -So an add-on is just a way to encapsulate a Python module in a way a user can easily utilize. - -.. note:: - - Running this script within the text editor won't print anything, - to see the output it must be installed through the user preferences. - Messages will be printed when enabling and disabling. - - -Your First Add-on -================= - -The simplest possible add-on above is useful as an example but not much else. -This next add-on is simple but shows how to integrate a script into Blender using an ``Operator`` -which is the typical way to define a tool accessed from menus, buttons and keyboard shortcuts. - -For the first example we will make a script that simply moves all objects in a scene. - - -Write The Script ----------------- - -Add the following script to the text editor in Blender. - -.. code-block:: python - - import bpy - - scene = bpy.context.scene - for obj in scene.objects: - obj.location.x += 1.0 - - -Click the :ref:`Run Script button <blender_manual:editors-text-run-script>`, -all objects in the active scene are moved by 1.0 Blender unit. - - -Write the Add-on (Simple) -------------------------- - -This add-on takes the body of the script above, and adds them to an operator's ``execute()`` function. - - -.. code-block:: python - - bl_info = { - "name": "Move X Axis", - "category": "Object", - } - - import bpy - - - class ObjectMoveX(bpy.types.Operator): - """My Object Moving Script""" # blender will use this as a tooltip for menu items and buttons. - bl_idname = "object.move_x" # unique identifier for buttons and menu items to reference. - bl_label = "Move X by One" # display name in the interface. - bl_options = {'REGISTER', 'UNDO'} # enable undo for the operator. - - def execute(self, context): # execute() is called by blender when running the operator. - - # The original script - scene = context.scene - for obj in scene.objects: - obj.location.x += 1.0 - - return {'FINISHED'} # this lets blender know the operator finished successfully. - - def register(): - bpy.utils.register_class(ObjectMoveX) - - - def unregister(): - bpy.utils.unregister_class(ObjectMoveX) - - - # This allows you to run the script directly from blenders text editor - # to test the add-on without having to install it. - if __name__ == "__main__": - register() - - -.. note:: - - ``bl_info`` is split across multiple lines, this is just a style convention used to more easily add items. - -.. note:: - - Rather than using ``bpy.context.scene``, we use the ``context.scene`` argument passed to ``execute()``. - In most cases these will be the same however in some cases operators will be passed a custom context - so script authors should prefer the ``context`` argument passed to operators. - -To test the script you can copy and paste this into Blender text editor and run it, this will execute the script -directly and call register immediately. - -However running the script wont move any objects, for this you need to execute the newly registered operator. - -.. image:: spacebar.png - :width: 924px - :align: center - :height: 574px - :alt: Spacebar - -Do this by pressing :kbd:`Spacebar` to bring up the operator search dialog and type in -"Move X by One" (the ``bl_label``), then :kbd:`Enter`. - - - -The objects should move as before. - -*Keep this add-on open in Blender for the next step - Installing.* - - -Install The Add-on ------------------- - -Once you have your add-on within in Blender's text editor, -you will want to be able to install it so it can be enabled in the user preferences to load on startup. - -Even though the add-on above is a test, lets go through the steps anyway so you know how to do it for later. - -To install the Blender text as an add-on you will first have to save it to disk, take care to obey the naming -restrictions that apply to Python modules and end with a ``.py`` extension. - -Once the file is on disk, you can install it as you would for an add-on downloaded online. - -Open the user :menuselection:`File --> User Preferences`, -Select the *Add-on* section, press *Install Add-on...* and select the file. - -Now the add-on will be listed and you can enable it by pressing the check-box, -if you want it to be enabled on restart, press *Save as Default*. - -.. note:: - - The destination of the add-on depends on your Blender configuration. - When installing an add-on the source and destination path are printed in the console. - You can also find add-on path locations by running this in the Python console. - - .. code-block:: python - - import addon_utils - print(addon_utils.paths()) - - More is written on this topic here: - :ref:`Directory Layout <blender_manual:getting-started_installing-config-directories>`. - - -Your Second Add-on -================== - -For our second add-on, we will focus on object instancing - this is - to make linked copies of an object in a -similar way to what you may have seen with the array modifier. - - -Write The Script ----------------- - -As before, first we will start with a script, develop it, then convert into an add-on. - -.. code-block:: python - - import bpy - from bpy import context - - # Get the current scene - scene = context.scene - - # Get the 3D cursor - cursor = scene.cursor_location - - # Get the active object (assume we have one) - obj = scene.objects.active - - # Now make a copy of the object - obj_new = obj.copy() - - # The object won't automatically get into a new scene - scene.objects.link(obj_new) - - # Now we can place the object - obj_new.location = cursor - - -Now try copy this script into Blender and run it on the default cube. -Make sure you click to move the 3D cursor before running as the duplicate will appear at the cursor's location. - - -... go off and test ... - - -After running, notice that when you go into edit-mode to change the cube - all of the copies change, -in Blender this is known as *Linked-Duplicates*. - - -Next, we're going to do this in a loop, to make an array of objects between the active object and the cursor. - - -.. code-block:: python - - import bpy - from bpy import context - - scene = context.scene - cursor = scene.cursor_location - obj = scene.objects.active - - # Use a fixed value for now, eventually make this user adjustable - total = 10 - - # Add 'total' objects into the scene - for i in range(total): - obj_new = obj.copy() - scene.objects.link(obj_new) - - # Now place the object in between the cursor - # and the active object based on 'i' - factor = i / total - obj_new.location = (obj.location * factor) + (cursor * (1.0 - factor)) - - -Try run this script with with the active object and the cursor spaced apart to see the result. - -With this script you'll notice we're doing some math with the object location and cursor, this works because both are -3D :class:`mathutils.Vector` instances, a convenient class provided by the :mod:`mathutils` module and -allows vectors to be multiplied by numbers and matrices. - -If you are interested in this area, read into :class:`mathutils.Vector` - there are many handy utility functions -such as getting the angle between vectors, cross product, dot products -as well as more advanced functions in :mod:`mathutils.geometry` such as Bézier Spline interpolation and -ray-triangle intersection. - -For now we will focus on making this script an add-on, but its good to know that this 3D math module is available and -can help you with more advanced functionality later on. - - -Write the Add-on ----------------- - -The first step is to convert the script as-is into an add-on. - - -.. code-block:: python - - bl_info = { - "name": "Cursor Array", - "category": "Object", - } - - import bpy - - - class ObjectCursorArray(bpy.types.Operator): - """Object Cursor Array""" - bl_idname = "object.cursor_array" - bl_label = "Cursor Array" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - scene = context.scene - cursor = scene.cursor_location - obj = scene.objects.active - - total = 10 - - for i in range(total): - obj_new = obj.copy() - scene.objects.link(obj_new) - - factor = i / total - obj_new.location = (obj.location * factor) + (cursor * (1.0 - factor)) - - return {'FINISHED'} - - def register(): - bpy.utils.register_class(ObjectCursorArray) - - - def unregister(): - bpy.utils.unregister_class(ObjectCursorArray) - - - if __name__ == "__main__": - register() - - -Everything here has been covered in the previous steps, you may want to try run the add-on still -and consider what could be done to make it more useful. - - -... go off and test ... - - -The two of the most obvious missing things are - having the total fixed at 10, and having to access the operator from -space-bar is not very convenient. - -Both these additions are explained next, with the final script afterwards. - - -Operator Property -^^^^^^^^^^^^^^^^^ - -There are a variety of property types that are used for tool settings, common property types include: -int, float, vector, color, boolean and string. - -These properties are handled differently to typical Python class attributes -because Blender needs to be display them in the interface, -store their settings in key-maps and keep settings for re-use. - -While this is handled in a fairly Pythonic way, be mindful that you are in fact defining tool settings that -are loaded into Blender and accessed by other parts of Blender, outside of Python. - - -To get rid of the literal 10 for `total`, we'll us an operator property. -Operator properties are defined via bpy.props module, this is added to the class body. - -.. code-block:: python - - # moved assignment from execute() to the body of the class... - total = bpy.props.IntProperty(name="Steps", default=2, min=1, max=100) - - # and this is accessed on the class - # instance within the execute() function as... - self.total - - -These properties from :mod:`bpy.props` are handled specially by Blender when the class is registered -so they display as buttons in the user interface. -There are many arguments you can pass to properties to set limits, change the default and display a tooltip. - -.. seealso:: :mod:`bpy.props.IntProperty` - -This document doesn't go into details about using other property types, -however the link above includes examples of more advanced property usage. - - -Menu Item -^^^^^^^^^ - -Add-ons can add to the user interface of existing panels, headers and menus defined in Python. - -For this example we'll add to an existing menu. - -.. image:: menu_id.png - :width: 334px - :align: center - :height: 128px - :alt: Menu Identifier - -To find the identifier of a menu you can hover your mouse over the menu item and the identifier is displayed. - -The method used for adding a menu item is to append a draw function into an existing class. - - -.. code-block:: python - - def menu_func(self, context): - self.layout.operator(ObjectCursorArray.bl_idname) - - def register(): - bpy.types.VIEW3D_MT_object.append(menu_func) - - -For docs on extending menus see: :doc:`bpy.types.Menu`. - - -Keymap -^^^^^^ - -In Blender, add-ons have their own keymaps so as not to interfere with Blenders built in key-maps. - -In the example below, a new object-mode :class:`bpy.types.KeyMap` is added, -then a :class:`bpy.types.KeyMapItem` is added to the key-map which references our newly added operator, -using :kbd:`Ctrl-Shift-Space` as the key shortcut to activate it. - - -.. code-block:: python - - # store keymaps here to access after registration - addon_keymaps = [] - - def register(): - - # handle the keymap - wm = bpy.context.window_manager - km = wm.keyconfigs.addon.keymaps.new(name='Object Mode', space_type='EMPTY') - - kmi = km.keymap_items.new(ObjectCursorArray.bl_idname, 'SPACE', 'PRESS', ctrl=True, shift=True) - kmi.properties.total = 4 - - addon_keymaps.append((km, kmi)) - - - def unregister(): - - # handle the keymap - for km, kmi in addon_keymaps: - km.keymap_items.remove(kmi) - addon_keymaps.clear() - - -Notice how the key-map item can have a different ``total`` setting then the default set by the operator, -this allows you to have multiple keys accessing the same operator with different settings. - - -.. note:: - - While :kbd:`Ctrl-Shift-Space` isn't a default Blender key shortcut, its hard to make sure add-ons won't - overwrite each others keymaps, At least take care when assigning keys that they don't - conflict with important functionality within Blender. - -For API documentation on the functions listed above, see: -:class:`bpy.types.KeyMaps.new`, -:class:`bpy.types.KeyMap`, -:class:`bpy.types.KeyMapItems.new`, -:class:`bpy.types.KeyMapItem`. - - -Bringing it all together -^^^^^^^^^^^^^^^^^^^^^^^^ - -.. code-block:: python - - bl_info = { - "name": "Cursor Array", - "category": "Object", - } - - import bpy - - - class ObjectCursorArray(bpy.types.Operator): - """Object Cursor Array""" - bl_idname = "object.cursor_array" - bl_label = "Cursor Array" - bl_options = {'REGISTER', 'UNDO'} - - total = bpy.props.IntProperty(name="Steps", default=2, min=1, max=100) - - def execute(self, context): - scene = context.scene - cursor = scene.cursor_location - obj = scene.objects.active - - for i in range(self.total): - obj_new = obj.copy() - scene.objects.link(obj_new) - - factor = i / self.total - obj_new.location = (obj.location * factor) + (cursor * (1.0 - factor)) - - return {'FINISHED'} - - - def menu_func(self, context): - self.layout.operator(ObjectCursorArray.bl_idname) - - # store keymaps here to access after registration - addon_keymaps = [] - - - def register(): - bpy.utils.register_class(ObjectCursorArray) - bpy.types.VIEW3D_MT_object.append(menu_func) - - # handle the keymap - wm = bpy.context.window_manager - # Note that in background mode (no GUI available), keyconfigs are not available either, so we have to check this - # to avoid nasty errors in background case. - kc = wm.keyconfigs.addon - if kc: - km = wm.keyconfigs.addon.keymaps.new(name='Object Mode', space_type='EMPTY') - kmi = km.keymap_items.new(ObjectCursorArray.bl_idname, 'SPACE', 'PRESS', ctrl=True, shift=True) - kmi.properties.total = 4 - addon_keymaps.append((km, kmi)) - - def unregister(): - # Note: when unregistering, it's usually good practice to do it in reverse order you registered. - # Can avoid strange issues like keymap still referring to operators already unregistered... - # handle the keymap - for km, kmi in addon_keymaps: - km.keymap_items.remove(kmi) - addon_keymaps.clear() - - bpy.utils.unregister_class(ObjectCursorArray) - bpy.types.VIEW3D_MT_object.remove(menu_func) - - - if __name__ == "__main__": - register() - -.. image:: in_menu.png - :width: 591px - :align: center - :height: 649px - :alt: In the menu - -Run the script (or save it and add it through the Preferences like before) and it will appear in the menu. - -.. image:: op_prop.png - :width: 669px - :align: center - :height: 644px - :alt: Operator Property - -After selecting it from the menu, you can choose how many instance of the cube you want created. - - -.. note:: - - Directly executing the script multiple times will add the menu each time too. - While not useful behavior, theres nothing to worry about since add-ons won't register them selves multiple - times when enabled through the user preferences. - - -Conclusions -=========== - -Add-ons can encapsulate certain functionality neatly for writing tools to improve your work-flow or for writing utilities -for others to use. - -While there are limits to what Python can do within Blender, there is certainly a lot that can be achieved without -having to dive into Blender's C/C++ code. - -The example given in the tutorial is limited, but shows the Blender API used for common tasks that you can expand on -to write your own tools. - - -Further Reading ---------------- - -Blender comes commented templates which are accessible from the text editor header, if you have specific areas -you want to see example code for, this is a good place to start. - - -Here are some sites you might like to check on after completing this tutorial. - -- :ref:`Blender/Python API Overview <info_overview>` - - *For more background details on Blender/Python integration.* -- `How to Think Like a Computer Scientist <http://interactivepython.org/courselib/static/thinkcspy/index.html>`_ - - *Great info for those who are still learning Python.* -- `Blender Development (Wiki) <https://wiki.blender.org/index.php/Dev:Contents>`_ - - *Blender Development, general information and helpful links.* -- `Blender Artists (Coding Section) <https://blenderartists.org/forum/forumdisplay.php?47-Coding>`_ - - *forum where people ask Python development questions* - |