Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoerg Mueller <nexyon@gmail.com>2011-06-23 11:14:37 +0400
committerJoerg Mueller <nexyon@gmail.com>2011-06-23 11:14:37 +0400
commit2afa7e4944cd9efcf728f58360adc68343320755 (patch)
tree9c3b88a98a54e82ea4a4d902e3c645351ca09a4e
parent5021dd3476012b1c64a5ffaa7986537d1e263245 (diff)
parent53bf66a579789ad32e2e7c4bd15dca9863ba7e2d (diff)
Merge with trunk r 37746.
-rwxr-xr-xbuild_files/cmake/cmake_consistency_check.py133
-rw-r--r--build_files/cmake/cmake_consistency_check_config.py48
-rw-r--r--doc/python_api/rst/change_log.rst196
-rw-r--r--doc/python_api/sphinx_changelog_gen.py6
-rw-r--r--intern/ffmpeg/ffmpeg_compat.h2
-rw-r--r--source/blender/editors/space_file/file_ops.c2
-rw-r--r--source/blender/makesrna/intern/makesrna.c39
-rw-r--r--source/blender/makesrna/intern/rna_access.c4
-rw-r--r--source/blender/makesrna/intern/rna_curve.c2
-rw-r--r--source/blender/makesrna/intern/rna_mesh.c1
-rw-r--r--source/blender/makesrna/intern/rna_modifier.c3
-rw-r--r--source/blender/makesrna/intern/rna_object.c9
-rw-r--r--source/blender/makesrna/intern/rna_space.c2
-rw-r--r--source/creator/CMakeLists.txt10
14 files changed, 371 insertions, 86 deletions
diff --git a/build_files/cmake/cmake_consistency_check.py b/build_files/cmake/cmake_consistency_check.py
index ebcc75ade2b..b0fd242db4a 100755
--- a/build_files/cmake/cmake_consistency_check.py
+++ b/build_files/cmake/cmake_consistency_check.py
@@ -23,61 +23,16 @@
# <pep8 compliant>
-IGNORE = (
- "/test/",
- "/decimate_glut_test/",
- "/BSP_GhostTest/",
- "/release/",
- "/xembed/",
- "/decimation/intern/future/",
- "/TerraplayNetwork/",
- "/ik_glut_test/",
-
- # specific source files
- "extern/Eigen2/Eigen/src/Cholesky/CholeskyInstantiations.cpp",
- "extern/Eigen2/Eigen/src/Core/CoreInstantiations.cpp",
- "extern/Eigen2/Eigen/src/QR/QrInstantiations.cpp",
- "extern/bullet2/src/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.cpp",
- "extern/bullet2/src/BulletCollision/CollisionDispatch/btConvex2dConvex2dAlgorithm.cpp",
- "extern/bullet2/src/BulletCollision/CollisionDispatch/btInternalEdgeUtility.cpp",
- "extern/bullet2/src/BulletCollision/CollisionShapes/btBox2dShape.cpp",
- "extern/bullet2/src/BulletCollision/CollisionShapes/btConvex2dShape.cpp",
- "extern/bullet2/src/BulletDynamics/Character/btKinematicCharacterController.cpp",
- "extern/bullet2/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp",
- "extern/bullet2/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp",
- "extern/eltopo/common/meshes/ObjLoader.cpp",
- "extern/eltopo/common/meshes/meshloader.cpp",
- "extern/eltopo/common/openglutils.cpp",
- "extern/eltopo/eltopo3d/broadphase_blenderbvh.cpp",
- "source/blender/imbuf/intern/imbuf_cocoa.m",
-
- "extern/bullet2/src/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.h",
- "extern/bullet2/src/BulletCollision/CollisionDispatch/btConvex2dConvex2dAlgorithm.h",
- "extern/bullet2/src/BulletCollision/CollisionDispatch/btInternalEdgeUtility.h",
- "extern/bullet2/src/BulletCollision/CollisionShapes/btBox2dShape.h",
- "extern/bullet2/src/BulletCollision/CollisionShapes/btConvex2dShape.h",
- "extern/bullet2/src/BulletDynamics/Character/btKinematicCharacterController.h",
- "extern/bullet2/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h",
- "extern/bullet2/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h",
- "extern/eltopo/common/meshes/Edge.hpp",
- "extern/eltopo/common/meshes/ObjLoader.hpp",
- "extern/eltopo/common/meshes/TriangleIndex.hpp",
- "extern/eltopo/common/meshes/meshloader.h",
- "extern/eltopo/eltopo3d/broadphase_blenderbvh.h"
- )
-
+from cmake_consistency_check_config import IGNORE, UTF8_CHECK, SOURCE_DIR
import os
from os.path import join, dirname, normpath, abspath, splitext
-base = join(os.path.dirname(__file__), "..", "..")
-base = normpath(base)
-base = abspath(base)
-
-print("Scanning:", base)
+print("Scanning:", SOURCE_DIR)
global_h = set()
global_c = set()
+global_refs = {}
def source_list(path, filename_check=None):
@@ -180,11 +135,17 @@ def cmake_get_src(f):
if is_c_header(new_file):
sources_h.append(new_file)
+ global_refs.setdefault(new_file, []).append((f, i))
elif is_c(new_file):
sources_c.append(new_file)
+ global_refs.setdefault(new_file, []).append((f, i))
elif l in ("PARENT_SCOPE", ):
# cmake var, ignore
pass
+ elif new_file.endswith(".list"):
+ pass
+ elif new_file.endswith(".def"):
+ pass
else:
raise Exception("unknown file type - not c or h %s -> %s" % (f, new_file))
@@ -209,7 +170,7 @@ def cmake_get_src(f):
filen.close()
-for cmake in source_list(base, is_cmake):
+for cmake in source_list(SOURCE_DIR, is_cmake):
cmake_get_src(cmake)
@@ -219,39 +180,75 @@ def is_ignore(f):
return True
return False
+
# First do stupid check, do these files exist?
+print("\nChecking for missing references:")
+import sys
+is_err = False
+errs = []
for f in (global_h | global_c):
if f.endswith("dna.c"):
continue
if not os.path.exists(f):
- raise Exception("CMake referenced file missing: " + f)
-
+ refs = global_refs[f]
+ if refs:
+ for cf, i in refs:
+ errs.append((cf, i))
+ else:
+ raise Exception("CMake referenecs missing, internal error, aborting!")
+ is_err = True
+
+errs.sort()
+errs.reverse()
+for cf, i in errs:
+ print("%s:%d" % (cf, i))
+ # Write a 'sed' script, useful if we get a lot of these
+ # print("sed '%dd' '%s' > '%s.tmp' ; mv '%s.tmp' '%s'" % (i, cf, cf, cf, cf))
+
+
+if is_err:
+ raise Exception("CMake referenecs missing files, aborting!")
+del is_err
+del errs
# now check on files not accounted for.
print("\nC/C++ Files CMake doesnt know about...")
-for cf in sorted(source_list(base, is_c)):
+for cf in sorted(source_list(SOURCE_DIR, is_c)):
if not is_ignore(cf):
if cf not in global_c:
print("missing_c: ", cf)
+
+ # check if automake builds a corrasponding .o file.
+ '''
+ if cf in global_c:
+ out1 = os.path.splitext(cf)[0] + ".o"
+ out2 = os.path.splitext(cf)[0] + ".Po"
+ out2_dir, out2_file = out2 = os.path.split(out2)
+ out2 = os.path.join(out2_dir, ".deps", out2_file)
+ if not os.path.exists(out1) and not os.path.exists(out2):
+ print("bad_c: ", cf)
+ '''
+
print("\nC/C++ Headers CMake doesnt know about...")
-for hf in sorted(source_list(base, is_c_header)):
+for hf in sorted(source_list(SOURCE_DIR, is_c_header)):
if not is_ignore(hf):
if hf not in global_h:
print("missing_h: ", hf)
-# test encoding
-import traceback
-for files in (global_c, global_h):
- for f in sorted(files):
- if os.path.exists(f):
- # ignore outside of our source tree
- if "extern" not in f:
- i = 1
- try:
- for l in open(f, "r", encoding="utf8"):
- i += 1
- except:
- print("Non utf8: %s:%d" % (f, i))
- if i > 1:
- traceback.print_exc()
+if UTF8_CHECK:
+ # test encoding
+ import traceback
+ for files in (global_c, global_h):
+ for f in sorted(files):
+ if os.path.exists(f):
+ # ignore outside of our source tree
+ if "extern" not in f:
+ i = 1
+ try:
+ for l in open(f, "r", encoding="utf8"):
+ i += 1
+ except:
+ print("Non utf8: %s:%d" % (f, i))
+ if i > 1:
+ traceback.print_exc()
diff --git a/build_files/cmake/cmake_consistency_check_config.py b/build_files/cmake/cmake_consistency_check_config.py
new file mode 100644
index 00000000000..60a46d3a1dd
--- /dev/null
+++ b/build_files/cmake/cmake_consistency_check_config.py
@@ -0,0 +1,48 @@
+import os
+
+IGNORE = (
+ "/test/",
+ "/decimate_glut_test/",
+ "/BSP_GhostTest/",
+ "/release/",
+ "/xembed/",
+ "/decimation/intern/future/",
+ "/TerraplayNetwork/",
+ "/ik_glut_test/",
+
+ # specific source files
+ "extern/Eigen2/Eigen/src/Cholesky/CholeskyInstantiations.cpp",
+ "extern/Eigen2/Eigen/src/Core/CoreInstantiations.cpp",
+ "extern/Eigen2/Eigen/src/QR/QrInstantiations.cpp",
+ "extern/bullet2/src/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.cpp",
+ "extern/bullet2/src/BulletCollision/CollisionDispatch/btConvex2dConvex2dAlgorithm.cpp",
+ "extern/bullet2/src/BulletCollision/CollisionDispatch/btInternalEdgeUtility.cpp",
+ "extern/bullet2/src/BulletCollision/CollisionShapes/btBox2dShape.cpp",
+ "extern/bullet2/src/BulletCollision/CollisionShapes/btConvex2dShape.cpp",
+ "extern/bullet2/src/BulletDynamics/Character/btKinematicCharacterController.cpp",
+ "extern/bullet2/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp",
+ "extern/bullet2/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp",
+ "extern/eltopo/common/meshes/ObjLoader.cpp",
+ "extern/eltopo/common/meshes/meshloader.cpp",
+ "extern/eltopo/common/openglutils.cpp",
+ "extern/eltopo/eltopo3d/broadphase_blenderbvh.cpp",
+ "source/blender/imbuf/intern/imbuf_cocoa.m",
+
+ "extern/bullet2/src/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.h",
+ "extern/bullet2/src/BulletCollision/CollisionDispatch/btConvex2dConvex2dAlgorithm.h",
+ "extern/bullet2/src/BulletCollision/CollisionDispatch/btInternalEdgeUtility.h",
+ "extern/bullet2/src/BulletCollision/CollisionShapes/btBox2dShape.h",
+ "extern/bullet2/src/BulletCollision/CollisionShapes/btConvex2dShape.h",
+ "extern/bullet2/src/BulletDynamics/Character/btKinematicCharacterController.h",
+ "extern/bullet2/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h",
+ "extern/bullet2/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h",
+ "extern/eltopo/common/meshes/Edge.hpp",
+ "extern/eltopo/common/meshes/ObjLoader.hpp",
+ "extern/eltopo/common/meshes/TriangleIndex.hpp",
+ "extern/eltopo/common/meshes/meshloader.h",
+ "extern/eltopo/eltopo3d/broadphase_blenderbvh.h"
+ )
+
+UTF8_CHECK = True
+
+SOURCE_DIR = os.path.normpath(os.path.abspath(os.path.normpath(os.path.join(os.path.dirname(__file__), "..", ".."))))
diff --git a/doc/python_api/rst/change_log.rst b/doc/python_api/rst/change_log.rst
index 7035ef4311b..ea179bc2130 100644
--- a/doc/python_api/rst/change_log.rst
+++ b/doc/python_api/rst/change_log.rst
@@ -696,3 +696,199 @@ Renamed
* **force** -> :class:`bpy.types.MaterialPhysics.fh_force`
* **use_normal_align** -> :class:`bpy.types.MaterialPhysics.use_fh_normal`
+
+2.57 to 2.58
+============
+
+bpy.types.RenderSettings
+------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.RenderSettings.use_bake_lores_mesh`
+* :class:`bpy.types.RenderSettings.use_bake_multires`
+
+bpy.types.Camera
+----------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.Camera.show_guide`
+
+bpy.types.SpaceImageEditor
+--------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.SpaceImageEditor.zoom`
+
+bpy.types.SpaceView3D
+---------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.SpaceView3D.lock_camera`
+
+bpy.types.RegionView3D
+----------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.RegionView3D.is_perspective`
+
+bpy.types.Scene
+---------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.Scene.frame_subframe`
+
+bpy.types.Area
+--------------
+
+Removed
+^^^^^^^
+
+* **active_space**
+
+bpy.types.DisplaceModifier
+--------------------------
+
+Renamed
+^^^^^^^
+
+* **texture_coordinate_object** -> :class:`bpy.types.DisplaceModifier.texture_coords_object`
+
+bpy.types.UserPreferencesView
+-----------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.UserPreferencesView.use_camera_lock_parent`
+
+bpy.types.DomainFluidSettings
+-----------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.DomainFluidSettings.fluid_mesh_vertices`
+* :class:`bpy.types.DomainFluidSettings.surface_noobs`
+
+bpy.types.Sculpt
+----------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.Sculpt.use_deform_only`
+
+bpy.types.ClothCollisionSettings
+--------------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ClothCollisionSettings.distance_repel`
+* :class:`bpy.types.ClothCollisionSettings.repel_force`
+
+bpy.types.UILayout
+------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.UILayout.template_edit_mode_selection`
+
+bpy.types.ToolSettings
+----------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ToolSettings.use_snap_project_self`
+
+bpy.types.Mesh
+--------------
+
+Removed
+^^^^^^^
+
+* **edge_face_count**
+* **edge_face_count_dict**
+* **edge_loops_from_edges**
+* **edge_loops_from_faces**
+
+bpy.types.PointDensity
+----------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.PointDensity.falloff_curve`
+* :class:`bpy.types.PointDensity.falloff_speed_scale`
+* :class:`bpy.types.PointDensity.use_falloff_curve`
+
+bpy.types.SpaceTextEditor
+-------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.SpaceTextEditor.use_match_case`
+
+bpy.types.CameraActuator
+------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.CameraActuator.damping`
+
+bpy.types.Property
+------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.Property.is_skip_save`
+
+bpy.types.UserPreferencesSystem
+-------------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.UserPreferencesSystem.anisotropic_filter`
+
+bpy.types.Object
+----------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.Object.empty_image_offset`
+
+bpy.types.Image
+---------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.Image.resolution`
+
+bpy.types.SceneGameData
+-----------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.SceneGameData.use_glsl_color_management`
+
diff --git a/doc/python_api/sphinx_changelog_gen.py b/doc/python_api/sphinx_changelog_gen.py
index eb4fc4716e6..7a56e73b7ad 100644
--- a/doc/python_api/sphinx_changelog_gen.py
+++ b/doc/python_api/sphinx_changelog_gen.py
@@ -24,17 +24,17 @@ Dump the python API into a text file so we can generate changelogs.
output from this tool should be added into "doc/python_api/rst/change_log.rst"
# dump api blender_version.py in CWD
-blender --background --python intern/tools/rna_api_dump.py -- --dump
+blender --background --python doc/python_api/sphinx_changelog_gen.py -- --dump
# create changelog
-blender --background --python intern/tools/rna_api_dump.py -- \
+blender --background --python doc/python_api/sphinx_changelog_gen.py -- \
--api_from blender_2_56_1.py \
--api_to blender_2_57_0.py \
--api_out changes.rst
# Api comparison can also run without blender
-python intern/tools/rna_api_dump.py
+python doc/python_api/sphinx_changelog_gen.py \
--api_from blender_api_2_56_6.py \
--api_to blender_api_2_57.py \
--api_out changes.rst
diff --git a/intern/ffmpeg/ffmpeg_compat.h b/intern/ffmpeg/ffmpeg_compat.h
index ab819f41ac3..d8edffbfe0b 100644
--- a/intern/ffmpeg/ffmpeg_compat.h
+++ b/intern/ffmpeg/ffmpeg_compat.h
@@ -40,7 +40,7 @@
#define FFMPEG_HAVE_AVIO 1
#endif
-#if (LIBAVCODEC_VERSION_MAJOR > 53) || ((LIBAVCODEC_VERSION_MAJOR == 53) && (LIBAVCODEC_VERSION_MINOR > 1)) || ((LIBAVCODEC_VERSION_MAJOR == 53) && (LIBAVCODEC_VERSION_MINOR == 1) && (LIBAVCODEC_VERSION_MICRO >= 1))
+#if (LIBAVCODEC_VERSION_MAJOR > 53) || ((LIBAVCODEC_VERSION_MAJOR == 53) && (LIBAVCODEC_VERSION_MINOR > 1)) || ((LIBAVCODEC_VERSION_MAJOR == 53) && (LIBAVCODEC_VERSION_MINOR == 1) && (LIBAVCODEC_VERSION_MICRO >= 1)) || ((LIBAVCODEC_VERSION_MAJOR == 52) && (LIBAVCODEC_VERSION_MINOR >= 122))
#define FFMPEG_HAVE_DEFAULT_VAL_UNION 1
#endif
diff --git a/source/blender/editors/space_file/file_ops.c b/source/blender/editors/space_file/file_ops.c
index 11e7040d4c9..77524c7e117 100644
--- a/source/blender/editors/space_file/file_ops.c
+++ b/source/blender/editors/space_file/file_ops.c
@@ -1279,7 +1279,7 @@ void FILE_OT_filenum(struct wmOperatorType *ot)
ot->poll= ED_operator_file_active; /* <- important, handler is on window level */
/* props */
- RNA_def_int(ot->srna, "increment", 1, 0, 100, "Increment", "", 0,100);
+ RNA_def_int(ot->srna, "increment", 1, -100, 100, "Increment", "", -100,100);
}
static int file_rename_exec(bContext *C, wmOperator *UNUSED(op))
diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c
index f3f539feb99..2c62316780d 100644
--- a/source/blender/makesrna/intern/makesrna.c
+++ b/source/blender/makesrna/intern/makesrna.c
@@ -644,6 +644,25 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr
return func;
}
+/* defined min/max variables to be used by rna_clamp_value() */
+static void rna_clamp_value_range(FILE *f, PropertyRNA *prop)
+{
+ if(prop->type == PROP_FLOAT) {
+ FloatPropertyRNA *fprop= (FloatPropertyRNA*)prop;
+ if(fprop->range) {
+ fprintf(f, " float prop_clamp_min, prop_clamp_max;\n");
+ fprintf(f, " %s(ptr, &prop_clamp_min, &prop_clamp_max);\n", rna_function_string(fprop->range));
+ }
+ }
+ else if(prop->type == PROP_INT) {
+ IntPropertyRNA *iprop= (IntPropertyRNA*)prop;
+ if(iprop->range) {
+ fprintf(f, " int prop_clamp_min, prop_clamp_max;\n");
+ fprintf(f, " %s(ptr, &prop_clamp_min, &prop_clamp_max);\n", rna_function_string(iprop->range));
+ }
+ }
+}
+
static void rna_clamp_value(FILE *f, PropertyRNA *prop, int array)
{
if(prop->type == PROP_INT) {
@@ -652,8 +671,13 @@ static void rna_clamp_value(FILE *f, PropertyRNA *prop, int array)
if(iprop->hardmin != INT_MIN || iprop->hardmax != INT_MAX) {
if(array) fprintf(f, "CLAMPIS(values[i], ");
else fprintf(f, "CLAMPIS(value, ");
- rna_int_print(f, iprop->hardmin); fprintf(f, ", ");
- rna_int_print(f, iprop->hardmax); fprintf(f, ");\n");
+ if(iprop->range) {
+ fprintf(f, "prop_clamp_min, prop_clamp_max);");
+ }
+ else {
+ rna_int_print(f, iprop->hardmin); fprintf(f, ", ");
+ rna_int_print(f, iprop->hardmax); fprintf(f, ");\n");
+ }
return;
}
}
@@ -663,8 +687,13 @@ static void rna_clamp_value(FILE *f, PropertyRNA *prop, int array)
if(fprop->hardmin != -FLT_MAX || fprop->hardmax != FLT_MAX) {
if(array) fprintf(f, "CLAMPIS(values[i], ");
else fprintf(f, "CLAMPIS(value, ");
- rna_float_print(f, fprop->hardmin); fprintf(f, ", ");
- rna_float_print(f, fprop->hardmax); fprintf(f, ");\n");
+ if(fprop->range) {
+ fprintf(f, "prop_clamp_min, prop_clamp_max);");
+ }
+ else {
+ rna_float_print(f, fprop->hardmin); fprintf(f, ", ");
+ rna_float_print(f, fprop->hardmax); fprintf(f, ");\n");
+ }
return;
}
}
@@ -762,6 +791,7 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr
}
else {
rna_print_data_get(f, dp);
+ rna_clamp_value_range(f, prop);
if(prop->flag & PROP_DYNAMIC) {
char *lenfunc= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "set_length");
@@ -833,6 +863,7 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr
fprintf(f, " data->%s |= value;\n", dp->dnaname);
}
else {
+ rna_clamp_value_range(f, prop);
fprintf(f, " data->%s= %s", dp->dnaname, (dp->booleannegative)? "!": "");
rna_clamp_value(f, prop, 0);
}
diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c
index a632c5c646e..d2742f421f3 100644
--- a/source/blender/makesrna/intern/rna_access.c
+++ b/source/blender/makesrna/intern/rna_access.c
@@ -1603,6 +1603,8 @@ void RNA_property_int_set(PointerRNA *ptr, PropertyRNA *prop, int value)
IDProperty *idprop;
BLI_assert(RNA_property_type(prop) == PROP_INT);
+ /* useful to check on bad values but set function should clamp */
+ /* BLI_assert(RNA_property_int_clamp(ptr, prop, &value) == 0); */
if((idprop=rna_idproperty_check(&prop, ptr)))
IDP_Int(idprop)= value;
@@ -1825,6 +1827,8 @@ void RNA_property_float_set(PointerRNA *ptr, PropertyRNA *prop, float value)
IDProperty *idprop;
BLI_assert(RNA_property_type(prop) == PROP_FLOAT);
+ /* useful to check on bad values but set function should clamp */
+ /* BLI_assert(RNA_property_float_clamp(ptr, prop, &value) == 0); */
if((idprop=rna_idproperty_check(&prop, ptr))) {
if(idprop->type == IDP_FLOAT)
diff --git a/source/blender/makesrna/intern/rna_curve.c b/source/blender/makesrna/intern/rna_curve.c
index df9071d7825..594295ba817 100644
--- a/source/blender/makesrna/intern/rna_curve.c
+++ b/source/blender/makesrna/intern/rna_curve.c
@@ -233,6 +233,7 @@ static void rna_Curve_material_index_range(PointerRNA *ptr, int *min, int *max)
Curve *cu= (Curve*)ptr->id.data;
*min= 0;
*max= cu->totcol-1;
+ *max= MAX2(0, *max);
}
static void rna_Curve_active_textbox_index_range(PointerRNA *ptr, int *min, int *max)
@@ -240,6 +241,7 @@ static void rna_Curve_active_textbox_index_range(PointerRNA *ptr, int *min, int
Curve *cu= (Curve*)ptr->id.data;
*min= 0;
*max= cu->totbox-1;
+ *max= MAX2(0, *max);
}
diff --git a/source/blender/makesrna/intern/rna_mesh.c b/source/blender/makesrna/intern/rna_mesh.c
index 479e449958b..80c98e8c428 100644
--- a/source/blender/makesrna/intern/rna_mesh.c
+++ b/source/blender/makesrna/intern/rna_mesh.c
@@ -305,6 +305,7 @@ static void rna_MeshFace_material_index_range(PointerRNA *ptr, int *min, int *ma
Mesh *me= (Mesh*)ptr->id.data;
*min= 0;
*max= me->totcol-1;
+ *max= MAX2(0, *max);
}
static CustomData *rna_mesh_fdata(Mesh *me)
diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c
index ff277b6d9b0..d2c1b862fee 100644
--- a/source/blender/makesrna/intern/rna_modifier.c
+++ b/source/blender/makesrna/intern/rna_modifier.c
@@ -404,7 +404,8 @@ static void rna_MultiresModifier_level_range(PointerRNA *ptr, int *min, int *max
MultiresModifierData *mmd = (MultiresModifierData*)ptr->data;
*min = 0;
- *max = mmd->totlvl;
+ *max = mmd->totlvl; /* intentionally _not_ -1 */
+ *max= MAX2(0, *max);
}
static int rna_MultiresModifier_external_get(PointerRNA *ptr)
diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c
index 8000427cb21..6b925b42e06 100644
--- a/source/blender/makesrna/intern/rna_object.c
+++ b/source/blender/makesrna/intern/rna_object.c
@@ -1024,8 +1024,13 @@ static void rna_Object_active_shape_key_index_range(PointerRNA *ptr, int *min, i
Key *key= ob_get_key(ob);
*min= 0;
- *max= (key)? BLI_countlist(&key->block)-1: 0;
- *max= MAX2(0, *max);
+ if(key) {
+ *max= BLI_countlist(&key->block)-1;
+ if(*max < 0) *max= 0;
+ }
+ else {
+ *max= 0;
+ }
}
static int rna_Object_active_shape_key_index_get(PointerRNA *ptr)
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index 8ab480df425..f4753e2efbe 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -700,7 +700,7 @@ static void rna_ConsoleLine_cursor_index_range(PointerRNA *ptr, int *min, int *m
ConsoleLine *ci= (ConsoleLine*)ptr->data;
*min= 0;
- *max= ci->len;
+ *max= ci->len; /* intentionally _not_ -1 */
}
/* Space Dopesheet */
diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt
index afea07b5076..04f1f359ce6 100644
--- a/source/creator/CMakeLists.txt
+++ b/source/creator/CMakeLists.txt
@@ -340,13 +340,13 @@ if(UNIX AND NOT APPLE)
install(
FILES ${CMAKE_SOURCE_DIR}/release/bin/.blender/.bfont.ttf
- DESTINATION ${TARGETDIR_VER}/config
+ DESTINATION ${TARGETDIR_VER}
)
if(WITH_INTERNATIONAL)
install(
FILES ${CMAKE_SOURCE_DIR}/release/bin/.blender/.Blanguages
- DESTINATION ${TARGETDIR_VER}/config
+ DESTINATION ${TARGETDIR_VER}
)
install(
@@ -416,13 +416,13 @@ elseif(WIN32)
install( # same as linux!, deduplicate
FILES ${CMAKE_SOURCE_DIR}/release/bin/.blender/.bfont.ttf
- DESTINATION ${TARGETDIR_VER}/config
+ DESTINATION ${TARGETDIR_VER}
)
if(WITH_INTERNATIONAL) # same as linux!, deduplicate
install(
FILES ${CMAKE_SOURCE_DIR}/release/bin/.blender/.Blanguages
- DESTINATION ${TARGETDIR_VER}/config
+ DESTINATION ${TARGETDIR_VER}
)
install(
DIRECTORY ${CMAKE_SOURCE_DIR}/release/bin/.blender/locale
@@ -647,7 +647,7 @@ elseif(APPLE)
install(
FILES ${CMAKE_SOURCE_DIR}/release/bin/.blender/.bfont.ttf
- DESTINATION ${TARGETDIR_VER}/datafiles
+ DESTINATION ${TARGETDIR_VER}
)
# localization