diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-01-16 03:17:45 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-01-16 03:17:45 +0400 |
commit | 769ab3eed81e8b14dff46af7ca28e2b70a7aac41 (patch) | |
tree | 5c8949a5fddfc7a287375c2d0913cdf2150feff7 | |
parent | 97d62f018397d279f6f1654c76d1e6b414c9d343 (diff) |
code cleanup:
- cycles ui used 'cscene' for scene.cycles and scene.cycles_curves
- style cleanup
23 files changed, 207 insertions, 185 deletions
diff --git a/build_files/buildbot/master.cfg b/build_files/buildbot/master.cfg index 9d0839bd0d7..3cfea2a3abd 100644 --- a/build_files/buildbot/master.cfg +++ b/build_files/buildbot/master.cfg @@ -28,8 +28,8 @@ c['slavePortnum'] = 9989 from buildbot.changes.svnpoller import SVNPoller c['change_source'] = SVNPoller( - 'https://svn.blender.org/svnroot/bf-blender/trunk/', - pollinterval=1200) + 'https://svn.blender.org/svnroot/bf-blender/trunk/', + pollinterval=1200) # BUILDERS # @@ -74,9 +74,11 @@ def svn_step(branch=''): else: return SVN(baseURL='https://svn.blender.org/svnroot/bf-blender/%%BRANCH%%/blender', mode='update', defaultBranch='trunk', workdir='blender') + def lib_svn_step(dir): return SVN(name='lib svn', baseURL='https://svn.blender.org/svnroot/bf-blender/%%BRANCH%%/lib/' + dir, mode='update', defaultBranch='trunk', workdir='lib/' + dir) + def rsync_step(id, branch, rsync_script): return ShellCommand(name='rsync', command=['python', rsync_script, id, branch], description='uploading', descriptionDone='uploaded', workdir='install') @@ -155,9 +157,9 @@ for i in range(0, schedule_cycle): print(names) c['schedulers'].append(timed.Nightly(name='nightly' + str(i), - builderNames=names, - hour=3+i, - minute=0)) + builderNames=names, + hour=3 + i, + minute=0)) # STATUS TARGETS # diff --git a/build_files/buildbot/slave_rsync.py b/build_files/buildbot/slave_rsync.py index aea1b65e333..6936232a495 100644 --- a/build_files/buildbot/slave_rsync.py +++ b/build_files/buildbot/slave_rsync.py @@ -41,5 +41,3 @@ print(command) ret = os.system(command) sys.exit(ret) - - diff --git a/build_files/cmake/cmake_static_check_clang_array.py b/build_files/cmake/cmake_static_check_clang_array.py index 7f45cc6aadc..448454c2177 100644 --- a/build_files/cmake/cmake_static_check_clang_array.py +++ b/build_files/cmake/cmake_static_check_clang_array.py @@ -50,7 +50,7 @@ def main(): check_commands = [] for c, inc_dirs, defs in source_info: cmd = ([CHECKER_BIN] + - CHECKER_ARGS + + CHECKER_ARGS + [c] + [("-I%s" % i) for i in inc_dirs] + [("-D%s" % d) for d in defs] diff --git a/build_files/cmake/cmake_static_check_cppcheck.py b/build_files/cmake/cmake_static_check_cppcheck.py index d79145f8586..2f7ffa5c240 100644 --- a/build_files/cmake/cmake_static_check_cppcheck.py +++ b/build_files/cmake/cmake_static_check_cppcheck.py @@ -56,7 +56,7 @@ def main(): check_commands = [] for c, inc_dirs, defs in source_info: cmd = ([CHECKER_BIN] + - CHECKER_ARGS + + CHECKER_ARGS + [c] + [("-I%s" % i) for i in inc_dirs] + [("-D%s" % d) for d in defs] diff --git a/build_files/cmake/cmake_static_check_smatch.py b/build_files/cmake/cmake_static_check_smatch.py index 7535f1cc55a..2cf07b093fb 100644 --- a/build_files/cmake/cmake_static_check_smatch.py +++ b/build_files/cmake/cmake_static_check_smatch.py @@ -41,6 +41,7 @@ import os USE_QUIET = (os.environ.get("QUIET", None) is not None) + def main(): source_info = project_source_info.build_info(use_cxx=False, ignore_prefix_list=CHECKER_IGNORE_PREFIX) @@ -48,7 +49,7 @@ def main(): for c, inc_dirs, defs in source_info: cmd = ([CHECKER_BIN] + - CHECKER_ARGS + + CHECKER_ARGS + [c] + [("-I%s" % i) for i in inc_dirs] + [("-D%s" % d) for d in defs] diff --git a/build_files/cmake/cmake_static_check_sparse.py b/build_files/cmake/cmake_static_check_sparse.py index 06bef1a1327..8a3fb477239 100644 --- a/build_files/cmake/cmake_static_check_sparse.py +++ b/build_files/cmake/cmake_static_check_sparse.py @@ -47,7 +47,7 @@ def main(): for c, inc_dirs, defs in source_info: cmd = ([CHECKER_BIN] + - CHECKER_ARGS + + CHECKER_ARGS + [c] + [("-I%s" % i) for i in inc_dirs] + [("-D%s" % d) for d in defs] diff --git a/build_files/cmake/cmake_static_check_splint.py b/build_files/cmake/cmake_static_check_splint.py index 5b1207543f5..6ad03f2bdca 100644 --- a/build_files/cmake/cmake_static_check_splint.py +++ b/build_files/cmake/cmake_static_check_splint.py @@ -79,7 +79,7 @@ def main(): check_commands = [] for c, inc_dirs, defs in source_info: cmd = ([CHECKER_BIN] + - CHECKER_ARGS + + CHECKER_ARGS + [c] + [("-I%s" % i) for i in inc_dirs] + [("-D%s" % d) for d in defs] diff --git a/build_files/cmake/project_info.py b/build_files/cmake/project_info.py index e73b94a7051..99c6ad09ce5 100755 --- a/build_files/cmake/project_info.py +++ b/build_files/cmake/project_info.py @@ -150,7 +150,6 @@ def cmake_advanced_info(): os.system(cmd) return join(CMAKE_DIR, ".cproject") - includes = [] defines = [] diff --git a/build_files/cmake/project_source_info.py b/build_files/cmake/project_source_info.py index 69d09b05ac7..1adc4689eae 100644 --- a/build_files/cmake/project_source_info.py +++ b/build_files/cmake/project_source_info.py @@ -89,12 +89,12 @@ def makefile_log(): if make_exe_basename.startswith("make"): print("running 'make' with --dry-run ...") process = subprocess.Popen([make_exe, "--always-make", "--dry-run", "--keep-going", "VERBOSE=1"], - stdout=subprocess.PIPE, + stdout=subprocess.PIPE, ) elif make_exe_basename.startswith("ninja"): print("running 'ninja' with -t commands ...") process = subprocess.Popen([make_exe, "-t", "commands"], - stdout=subprocess.PIPE, + stdout=subprocess.PIPE, ) while process.poll(): diff --git a/doc/python_api/examples/bpy.props.5.py b/doc/python_api/examples/bpy.props.5.py index e49d0f2a0a0..1f61e33c30f 100644 --- a/doc/python_api/examples/bpy.props.5.py +++ b/doc/python_api/examples/bpy.props.5.py @@ -16,6 +16,7 @@ import bpy def get_float(self): return self["testprop"] + def set_float(self, value): self["testprop"] = value @@ -36,6 +37,7 @@ bpy.types.Scene.test_date = bpy.props.StringProperty(get=get_date) def get_array(self): return (True, self["somebool"]) + def set_array(self, values): self["somebool"] = values[0] and values[1] @@ -51,10 +53,12 @@ test_items = [ ("YELLOW", "Red", "", 4), ] + def get_enum(self): import random return random.randint(1, 4) + def set_enum(self, value): print("setting value", value) @@ -66,16 +70,16 @@ bpy.types.Scene.test_enum = bpy.props.EnumProperty(items=test_items, get=get_enu scene = bpy.context.scene scene.test_float = 12.34 -print (scene.test_float) +print(scene.test_float) scene.test_array = (True, False) -print ([x for x in scene.test_array]) +print([x for x in scene.test_array]) #scene.test_date = "blah" # this would fail, property is read-only -print (scene.test_date) +print(scene.test_date) scene.test_enum = 'BLUE' -print (scene.test_enum) +print(scene.test_enum) # >>> 12.34000015258789 diff --git a/doc/python_api/examples/bpy.types.UIList.py b/doc/python_api/examples/bpy.types.UIList.py index f2017e3883d..a37bbff726a 100644 --- a/doc/python_api/examples/bpy.types.UIList.py +++ b/doc/python_api/examples/bpy.types.UIList.py @@ -86,4 +86,4 @@ def unregister(): if __name__ == "__main__": - register()
\ No newline at end of file + register() diff --git a/doc/python_api/rst_from_bmesh_opdefines.py b/doc/python_api/rst_from_bmesh_opdefines.py index c1b6643389d..3776ef7ce56 100644 --- a/doc/python_api/rst_from_bmesh_opdefines.py +++ b/doc/python_api/rst_from_bmesh_opdefines.py @@ -65,10 +65,10 @@ def main(): fsrc = open(FILE_OP_DEFINES_C, 'r', encoding="utf-8") blocks = [] - + is_block = False is_comment = False # /* global comments only */ - + comment_ctx = None block_ctx = None @@ -82,7 +82,7 @@ def main(): elif l.strip().startswith("/*"): is_comment = True comment_ctx = [] - + if is_block: if l.strip().startswith("//"): pass @@ -93,11 +93,11 @@ def main(): l = l[:cpp_comment] block_ctx.append(l) - + if l.strip() == "};": is_block = False comment_ctx = None - + if is_comment: c_comment_start = l.find("/*") if c_comment_start != -1: @@ -113,7 +113,6 @@ def main(): fsrc.close() del fsrc - # namespace hack vars = ( "BMO_OP_SLOT_ELEMENT_BUF", @@ -124,7 +123,7 @@ def main(): "BMO_OP_SLOT_VEC", "BMO_OP_SLOT_PTR", "BMO_OP_SLOT_MAPPING", - + "BMO_OP_SLOT_SUBTYPE_MAP_ELEM", "BMO_OP_SLOT_SUBTYPE_MAP_BOOL", "BMO_OP_SLOT_SUBTYPE_MAP_INT", @@ -157,23 +156,23 @@ def main(): for comment, b in blocks: # magic, translate into python b[0] = b[0].replace("static BMOpDefine ", "") - + for i, l in enumerate(b): l = l.strip() l = l.replace("{", "(") l = l.replace("}", ")") - + if l.startswith("/*"): l = l.replace("/*", "'''own <") else: l = l.replace("/*", "'''inline <") l = l.replace("*/", ">''',") - + # exec func. eg: bmo_rotate_edges_exec, if l.startswith("bmo_") and l.endswith("_exec,"): l = "None," b[i] = l - + #for l in b: # print(l) @@ -182,7 +181,7 @@ def main(): "__file__": "generated", "__name__": "__main__", } - + global_namespace.update(vars_dict) text_a, text_b = text.split("=", 1) @@ -191,7 +190,6 @@ def main(): # print(global_namespace["result"]) blocks_py.append((comment, global_namespace["result"])) - # --------------------- # Now convert into rst. fout = open(OUT_RST, 'w', encoding="utf-8") @@ -217,7 +215,7 @@ def main(): args_out_index[:] = [i for (i, a) in enumerate(args_out) if type(a) == tuple] fw(".. function:: %s(bm, %s)\n\n" % (b[0], ", ".join([args_in[i][0] for i in args_in_index]))) - + # -- wash the comment comment_washed = [] for i, l in enumerate(comment): @@ -236,7 +234,6 @@ def main(): fw("\n") # -- done - # get the args def get_args_wash(args, args_index, is_ret): args_wash = [] @@ -268,7 +265,7 @@ def main(): comment_next = comment_next[8:-1] # strip inline <...> else: comment_next = "" - + comment = "" if comment_prev: comment += comment_prev.strip() @@ -304,18 +301,21 @@ def main(): elif tp == BMO_OP_SLOT_ELEMENT_BUF: assert(tp_sub is not None) - + ls = [] - if tp_sub & BM_VERT: ls.append(":class:`bmesh.types.BMVert`") - if tp_sub & BM_EDGE: ls.append(":class:`bmesh.types.BMEdge`") - if tp_sub & BM_FACE: ls.append(":class:`bmesh.types.BMFace`") + if tp_sub & BM_VERT: + ls.append(":class:`bmesh.types.BMVert`") + if tp_sub & BM_EDGE: + ls.append(":class:`bmesh.types.BMEdge`") + if tp_sub & BM_FACE: + ls.append(":class:`bmesh.types.BMFace`") assert(ls) # must be at least one if tp_sub & BMO_OP_SLOT_SUBTYPE_ELEM_IS_SINGLE: tp_str = "/".join(ls) else: tp_str = ("list of (%s)" % ", ".join(ls)) - + del ls elif tp == BMO_OP_SLOT_MAPPING: if tp_sub & BMO_OP_SLOT_SUBTYPE_MAP_EMPTY: @@ -356,21 +356,21 @@ def main(): fw(" :arg %s: %s\n" % (name, comment)) fw(" :type %s: %s\n" % (name, tp)) - + if args_out_wash: fw(" :return:\n\n") - + for (name, tp, comment) in args_out_wash: assert(name.endswith(".out")) name = name[:-4] fw(" - ``%s``: %s\n\n" % (name, comment)) fw(" **type** %s\n" % tp) - + fw("\n") fw(" :rtype: dict with string keys\n") fw("\n\n") - + fout.close() del fout print(OUT_RST) diff --git a/doc/python_api/sphinx_doc_gen.py b/doc/python_api/sphinx_doc_gen.py index af6ddac937e..7457ae02d6c 100644 --- a/doc/python_api/sphinx_doc_gen.py +++ b/doc/python_api/sphinx_doc_gen.py @@ -612,10 +612,10 @@ def pyfunc2sphinx(ident, fw, identifier, py_func, is_class=True): ''' function or class method to sphinx ''' - + if type(py_func) == type(bpy.types.Space.draw_handler_add): return - + arg_str = inspect.formatargspec(*inspect.getargspec(py_func)) if not is_class: @@ -984,6 +984,7 @@ context_type_map = { "world": ("World", False), } + def pycontext2sphinx(basepath): # Only use once. very irregular @@ -1011,7 +1012,6 @@ def pycontext2sphinx(basepath): "sequencer_context_dir", ) - unique = set() blend_cdll = ctypes.CDLL("") for ctx_str in context_strings: diff --git a/intern/cycles/blender/addon/__init__.py b/intern/cycles/blender/addon/__init__.py index 39871bc2289..36fb5c0418d 100644 --- a/intern/cycles/blender/addon/__init__.py +++ b/intern/cycles/blender/addon/__init__.py @@ -34,6 +34,7 @@ import bpy from . import engine + class CyclesRender(bpy.types.RenderEngine): bl_idname = 'CYCLES' bl_label = "Cycles Render" @@ -68,7 +69,7 @@ class CyclesRender(bpy.types.RenderEngine): def view_update(self, context): if not self.session: engine.create(self, context.blend_data, context.scene, - context.region, context.space_data, context.region_data) + context.region, context.space_data, context.region_data) engine.update(self, context.blend_data, context.scene) def view_draw(self, context): @@ -104,4 +105,3 @@ def unregister(): properties.unregister() presets.unregister() bpy.utils.unregister_module(__name__) - diff --git a/intern/cycles/blender/addon/engine.py b/intern/cycles/blender/addon/engine.py index 9641128d994..ef700ba26f1 100644 --- a/intern/cycles/blender/addon/engine.py +++ b/intern/cycles/blender/addon/engine.py @@ -18,6 +18,7 @@ # <pep8 compliant> + def init(): import bpy import _cycles @@ -89,4 +90,3 @@ def available_devices(): def with_osl(): import _cycles return _cycles.with_osl - diff --git a/intern/cycles/blender/addon/osl.py b/intern/cycles/blender/addon/osl.py index 79ce3df20c3..0a67edac1e3 100644 --- a/intern/cycles/blender/addon/osl.py +++ b/intern/cycles/blender/addon/osl.py @@ -18,10 +18,13 @@ # <pep8 compliant> -import bpy, _cycles, os, tempfile +import bpy +import _cycles + -# compile .osl file with given filepath to temporary .oso file def osl_compile(input_path, report): + """compile .osl file with given filepath to temporary .oso file""" + import tempfile output_file = tempfile.NamedTemporaryFile(mode='w', suffix=".oso", delete=False) output_path = output_file.name output_file.close() @@ -33,9 +36,12 @@ def osl_compile(input_path, report): return ok, output_path -# compile and update shader script node + def update_script_node(node, report): - import os, shutil + """compile and update shader script node""" + import os + import shutil + import tempfile if node.mode == 'EXTERNAL': # compile external script file @@ -103,7 +109,7 @@ def update_script_node(node, report): report({'ERROR'}, "Can't read OSO bytecode to store in node at %r" % oso_path) ok = False - + else: report({'WARNING'}, "No text or file specified in node, nothing to compile") return @@ -125,4 +131,3 @@ def update_script_node(node, report): pass return ok - diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py index 9dfacf19c81..18a829a9ef0 100644 --- a/intern/cycles/blender/addon/properties.py +++ b/intern/cycles/blender/addon/properties.py @@ -96,7 +96,7 @@ enum_curves_interpolation = ( ('CARDINAL', "Cardinal interpolation", "Use cardinal interpolation between segments"), ('BSPLINE', "B-spline interpolation", "Use b-spline interpolation between segments"), ) - + enum_tile_order = ( ('CENTER', "Center", "Render from center to the edges"), ('RIGHT_TO_LEFT', "Right to Left", "Render from right to left"), @@ -105,6 +105,7 @@ enum_tile_order = ( ('BOTTOM_TO_TOP', "Bottom to Top", "Render from bottom to top"), ) + class CyclesRenderSettings(bpy.types.PropertyGroup): @classmethod def register(cls): @@ -620,6 +621,7 @@ class CyclesMeshSettings(bpy.types.PropertyGroup): del bpy.types.Curve.cycles del bpy.types.MetaBall.cycles + class CyclesCurveRenderSettings(bpy.types.PropertyGroup): @classmethod def register(cls): @@ -706,7 +708,7 @@ class CyclesCurveRenderSettings(bpy.types.PropertyGroup): name="Use Cycles Hair Rendering", description="Activate Cycles hair rendering for particle system", default=True, - ) + ) cls.segments = IntProperty( name="Segments", description="Number of segments between path keys (note that this combines with the 'draw step' value)", @@ -742,6 +744,7 @@ class CyclesCurveRenderSettings(bpy.types.PropertyGroup): def unregister(cls): del bpy.types.Scene.cycles_curves + class CyclesCurveSettings(bpy.types.PropertyGroup): @classmethod def register(cls): @@ -778,6 +781,7 @@ class CyclesCurveSettings(bpy.types.PropertyGroup): def unregister(cls): del bpy.types.ParticleSettings.cycles + def register(): bpy.utils.register_class(CyclesRenderSettings) bpy.utils.register_class(CyclesCameraSettings) diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index 9767bd70f46..6b79404e9ab 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -946,91 +946,98 @@ class CyclesParticle_PT_textures(CyclesButtonsPanel, Panel): slot = part.texture_slots[part.active_texture_index] layout.template_ID(slot, "texture", new="texture.new") + class CyclesRender_PT_CurveRendering(CyclesButtonsPanel, Panel): bl_label = "Cycles Hair Rendering" bl_context = "particle" - + @classmethod def poll(cls, context): + scene = context.scene + cscene = scene.cycles psys = context.particle_system device_type = context.user_preferences.system.compute_device_type - experimental = context.scene.cycles.feature_set == 'EXPERIMENTAL' and (context.scene.cycles.device == 'CPU' or device_type == 'NONE') + experimental = ((cscene.feature_set == 'EXPERIMENTAL') and (cscene.device == 'CPU' or device_type == 'NONE')) return CyclesButtonsPanel.poll(context) and experimental and psys - + def draw_header(self, context): - cscene = context.scene.cycles_curves - self.layout.prop(cscene, "use_curves", text="") - + ccscene = context.scene.cycles_curves + self.layout.prop(ccscene, "use_curves", text="") + def draw(self, context): layout = self.layout - + scene = context.scene - cscene = scene.cycles_curves - - layout.active = cscene.use_curves - - layout.prop(cscene, "preset", text="Mode") - - if cscene.preset == 'CUSTOM': - layout.prop(cscene, "primitive", text="Primitive") - - if cscene.primitive == 'TRIANGLES': - layout.prop(cscene, "triangle_method", text="Method") - if cscene.triangle_method == 'TESSELLATED_TRIANGLES': - layout.prop(cscene, "resolution", text="Resolution") - layout.prop(cscene, "use_smooth", text="Smooth") - elif cscene.primitive == 'LINE_SEGMENTS': - layout.prop(cscene, "use_backfacing", text="Check back-faces") - + ccscene = scene.cycles_curves + + layout.active = ccscene.use_curves + + layout.prop(ccscene, "preset", text="Mode") + + if ccscene.preset == 'CUSTOM': + layout.prop(ccscene, "primitive", text="Primitive") + + if ccscene.primitive == 'TRIANGLES': + layout.prop(ccscene, "triangle_method", text="Method") + if ccscene.triangle_method == 'TESSELLATED_TRIANGLES': + layout.prop(ccscene, "resolution", text="Resolution") + layout.prop(ccscene, "use_smooth", text="Smooth") + elif ccscene.primitive == 'LINE_SEGMENTS': + layout.prop(ccscene, "use_backfacing", text="Check back-faces") + row = layout.row() - row.prop(cscene, "use_encasing", text="Exclude encasing") + row.prop(ccscene, "use_encasing", text="Exclude encasing") sub = row.row() - sub.active = cscene.use_encasing - sub.prop(cscene, "encasing_ratio", text="Ratio for encasing") - - layout.prop(cscene, "line_method", text="Method") - layout.prop(cscene, "use_tangent_normal", text="Use tangent normal as default") - layout.prop(cscene, "use_tangent_normal_geometry", text="Use tangent normal geometry") - layout.prop(cscene, "use_tangent_normal_correction", text="Correct tangent normal for slope") - layout.prop(cscene, "interpolation", text="Interpolation") - + sub.active = ccscene.use_encasing + sub.prop(ccscene, "encasing_ratio", text="Ratio for encasing") + + layout.prop(ccscene, "line_method", text="Method") + layout.prop(ccscene, "use_tangent_normal", text="Use tangent normal as default") + layout.prop(ccscene, "use_tangent_normal_geometry", text="Use tangent normal geometry") + layout.prop(ccscene, "use_tangent_normal_correction", text="Correct tangent normal for slope") + layout.prop(ccscene, "interpolation", text="Interpolation") + row = layout.row() - row.prop(cscene, "segments", text="Segments") - row.prop(cscene, "normalmix", text="Ray Mix") - elif cscene.primitive == 'CURVE_SEGMENTS' or cscene.primitive == 'CURVE_RIBBONS': - layout.prop(cscene, "subdivisions", text="Curve subdivisions") - layout.prop(cscene, "use_backfacing", text="Check back-faces") - - layout.prop(cscene, "interpolation", text="Interpolation") + row.prop(ccscene, "segments", text="Segments") + row.prop(ccscene, "normalmix", text="Ray Mix") + elif ccscene.primitive in {'CURVE_SEGMENTS', 'CURVE_RIBBONS'}: + layout.prop(ccscene, "subdivisions", text="Curve subdivisions") + layout.prop(ccscene, "use_backfacing", text="Check back-faces") + + layout.prop(ccscene, "interpolation", text="Interpolation") row = layout.row() - row.prop(cscene, "segments", text="Segments") - + row.prop(ccscene, "segments", text="Segments") + row = layout.row() - row.prop(cscene, "use_cache", text="Export cache with children") - if cscene.use_cache: - row.prop(cscene, "use_parents", text="Include parents") - + row.prop(ccscene, "use_cache", text="Export cache with children") + if ccscene.use_cache: + row.prop(ccscene, "use_parents", text="Include parents") + + class CyclesParticle_PT_CurveSettings(CyclesButtonsPanel, Panel): bl_label = "Cycles Hair Settings" bl_context = "particle" - + @classmethod def poll(cls, context): - use_curves = context.scene.cycles_curves.use_curves and context.particle_system + scene = context.scene + cscene = scene.cycles + ccscene = scene.cycles_curves + use_curves = ccscene.use_curves and context.particle_system device_type = context.user_preferences.system.compute_device_type - experimental = context.scene.cycles.feature_set == 'EXPERIMENTAL' and (context.scene.cycles.device == 'CPU' or device_type == 'NONE') + experimental = cscene.feature_set == 'EXPERIMENTAL' and (cscene.device == 'CPU' or device_type == 'NONE') return CyclesButtonsPanel.poll(context) and experimental and use_curves def draw(self, context): layout = self.layout - + psys = context.particle_settings cpsys = psys.cycles - + row = layout.row() row.prop(cpsys, "shape", text="Shape") row.prop(cpsys, "use_closetip", text="Close tip") - + layout.label(text="Width multiplier:") row = layout.row() row.prop(cpsys, "root_width", text="Root") @@ -1097,74 +1104,75 @@ def draw_pause(self, context): def get_panels(): + types = bpy.types return ( - bpy.types.RENDER_PT_render, - bpy.types.RENDER_PT_output, - bpy.types.RENDER_PT_encoding, - bpy.types.RENDER_PT_dimensions, - bpy.types.RENDER_PT_stamp, - bpy.types.SCENE_PT_scene, - bpy.types.SCENE_PT_audio, - bpy.types.SCENE_PT_unit, - bpy.types.SCENE_PT_keying_sets, - bpy.types.SCENE_PT_keying_set_paths, - bpy.types.SCENE_PT_physics, - bpy.types.WORLD_PT_context_world, - bpy.types.DATA_PT_context_mesh, - bpy.types.DATA_PT_context_camera, - bpy.types.DATA_PT_context_lamp, - bpy.types.DATA_PT_context_speaker, - bpy.types.DATA_PT_texture_space, - bpy.types.DATA_PT_curve_texture_space, - bpy.types.DATA_PT_mball_texture_space, - bpy.types.DATA_PT_vertex_groups, - bpy.types.DATA_PT_shape_keys, - bpy.types.DATA_PT_uv_texture, - bpy.types.DATA_PT_vertex_colors, - bpy.types.DATA_PT_camera, - bpy.types.DATA_PT_camera_display, - bpy.types.DATA_PT_lens, - bpy.types.DATA_PT_speaker, - bpy.types.DATA_PT_distance, - bpy.types.DATA_PT_cone, - bpy.types.DATA_PT_customdata, - bpy.types.DATA_PT_custom_props_mesh, - bpy.types.DATA_PT_custom_props_camera, - bpy.types.DATA_PT_custom_props_lamp, - bpy.types.DATA_PT_custom_props_speaker, - bpy.types.TEXTURE_PT_clouds, - bpy.types.TEXTURE_PT_wood, - bpy.types.TEXTURE_PT_marble, - bpy.types.TEXTURE_PT_magic, - bpy.types.TEXTURE_PT_blend, - bpy.types.TEXTURE_PT_stucci, - bpy.types.TEXTURE_PT_image, - bpy.types.TEXTURE_PT_image_sampling, - bpy.types.TEXTURE_PT_image_mapping, - bpy.types.TEXTURE_PT_musgrave, - bpy.types.TEXTURE_PT_voronoi, - bpy.types.TEXTURE_PT_distortednoise, - bpy.types.TEXTURE_PT_voxeldata, - bpy.types.TEXTURE_PT_pointdensity, - bpy.types.TEXTURE_PT_pointdensity_turbulence, - bpy.types.TEXTURE_PT_mapping, - bpy.types.TEXTURE_PT_influence, - bpy.types.TEXTURE_PT_colors, - bpy.types.PARTICLE_PT_context_particles, - bpy.types.PARTICLE_PT_emission, - bpy.types.PARTICLE_PT_hair_dynamics, - bpy.types.PARTICLE_PT_cache, - bpy.types.PARTICLE_PT_velocity, - bpy.types.PARTICLE_PT_rotation, - bpy.types.PARTICLE_PT_physics, - bpy.types.PARTICLE_PT_boidbrain, - bpy.types.PARTICLE_PT_render, - bpy.types.PARTICLE_PT_draw, - bpy.types.PARTICLE_PT_children, - bpy.types.PARTICLE_PT_field_weights, - bpy.types.PARTICLE_PT_force_fields, - bpy.types.PARTICLE_PT_vertexgroups, - bpy.types.PARTICLE_PT_custom_props, + types.RENDER_PT_render, + types.RENDER_PT_output, + types.RENDER_PT_encoding, + types.RENDER_PT_dimensions, + types.RENDER_PT_stamp, + types.SCENE_PT_scene, + types.SCENE_PT_audio, + types.SCENE_PT_unit, + types.SCENE_PT_keying_sets, + types.SCENE_PT_keying_set_paths, + types.SCENE_PT_physics, + types.WORLD_PT_context_world, + types.DATA_PT_context_mesh, + types.DATA_PT_context_camera, + types.DATA_PT_context_lamp, + types.DATA_PT_context_speaker, + types.DATA_PT_texture_space, + types.DATA_PT_curve_texture_space, + types.DATA_PT_mball_texture_space, + types.DATA_PT_vertex_groups, + types.DATA_PT_shape_keys, + types.DATA_PT_uv_texture, + types.DATA_PT_vertex_colors, + types.DATA_PT_camera, + types.DATA_PT_camera_display, + types.DATA_PT_lens, + types.DATA_PT_speaker, + types.DATA_PT_distance, + types.DATA_PT_cone, + types.DATA_PT_customdata, + types.DATA_PT_custom_props_mesh, + types.DATA_PT_custom_props_camera, + types.DATA_PT_custom_props_lamp, + types.DATA_PT_custom_props_speaker, + types.TEXTURE_PT_clouds, + types.TEXTURE_PT_wood, + types.TEXTURE_PT_marble, + types.TEXTURE_PT_magic, + types.TEXTURE_PT_blend, + types.TEXTURE_PT_stucci, + types.TEXTURE_PT_image, + types.TEXTURE_PT_image_sampling, + types.TEXTURE_PT_image_mapping, + types.TEXTURE_PT_musgrave, + types.TEXTURE_PT_voronoi, + types.TEXTURE_PT_distortednoise, + types.TEXTURE_PT_voxeldata, + types.TEXTURE_PT_pointdensity, + types.TEXTURE_PT_pointdensity_turbulence, + types.TEXTURE_PT_mapping, + types.TEXTURE_PT_influence, + types.TEXTURE_PT_colors, + types.PARTICLE_PT_context_particles, + types.PARTICLE_PT_emission, + types.PARTICLE_PT_hair_dynamics, + types.PARTICLE_PT_cache, + types.PARTICLE_PT_velocity, + types.PARTICLE_PT_rotation, + types.PARTICLE_PT_physics, + types.PARTICLE_PT_boidbrain, + types.PARTICLE_PT_render, + types.PARTICLE_PT_draw, + types.PARTICLE_PT_children, + types.PARTICLE_PT_field_weights, + types.PARTICLE_PT_force_fields, + types.PARTICLE_PT_vertexgroups, + types.PARTICLE_PT_custom_props, ) diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c index ca5e2a1926c..e846fc3f078 100644 --- a/source/blender/editors/interface/interface_regions.c +++ b/source/blender/editors/interface/interface_regions.c @@ -651,7 +651,7 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but) ofsx = 0; //(but->block->panel) ? but->block->panel->ofsx : 0; ofsy = 0; //(but->block->panel) ? but->block->panel->ofsy : 0; - rect_fl.xmin = (but->rect.xmin + but->rect.xmax) * 0.5f + ofsx - TIP_BORDER_X; + rect_fl.xmin = BLI_rctf_cent_x(&but->rect) + ofsx - TIP_BORDER_X; rect_fl.xmax = rect_fl.xmin + fontw + TIP_BORDER_X; rect_fl.ymax = but->rect.ymin + ofsy - TIP_BORDER_Y; rect_fl.ymin = rect_fl.ymax - fonth - TIP_BORDER_Y; diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h index 28264a44bcf..083d7b94738 100644 --- a/source/blender/editors/transform/transform.h +++ b/source/blender/editors/transform/transform.h @@ -108,7 +108,7 @@ typedef struct TransCon { void (*applyVec)(struct TransInfo *t, struct TransData *td, const float in[3], float out[3], float pvec[3]); /* Apply function pointer for linear vectorial transformation */ /* The last three parameters are pointers to the in/out/printable vectors */ - void (*applySize)(struct TransInfo *t, struct TransData *td, float [3][3]); + void (*applySize)(struct TransInfo *t, struct TransData *td, float smat[3][3]); /* Apply function pointer for size transformation */ void (*applyRot)(struct TransInfo *t, struct TransData *td, float vec[3], float *angle); /* Apply function pointer for rotation transformation */ diff --git a/source/tests/bl_load_addons.py b/source/tests/bl_load_addons.py index fab2e2ead11..1ed76a1bc02 100644 --- a/source/tests/bl_load_addons.py +++ b/source/tests/bl_load_addons.py @@ -26,6 +26,7 @@ import addon_utils import sys import imp + def disable_addons(): # first disable all addons = bpy.context.user_preferences.addons diff --git a/source/tests/bl_rst_completeness.py b/source/tests/bl_rst_completeness.py index e9e2779bda8..6e67f8d908d 100644 --- a/source/tests/bl_rst_completeness.py +++ b/source/tests/bl_rst_completeness.py @@ -56,6 +56,7 @@ modules = ( ("gpu.rst", "gpu", False), ) + def is_directive_pydata(filepath, directive): if directive.type in {"function", "method", "class", "attribute", "data"}: return True @@ -113,7 +114,6 @@ def module_validate(filepath, mod, mod_name, doctree, partial_ok): print(directive_to_str(filepath, directive_child), end=" ") print("rst contains non existing class member %r" % attr_id) - # MODULE member missing from RST ??? doctree_dict = directive_members_dict(filepath, doctree) for attr in dir(mod): @@ -136,7 +136,7 @@ def module_validate(filepath, mod, mod_name, doctree, partial_ok): def main(): - + if bge is None: print("Skipping BGE modules!") @@ -151,7 +151,7 @@ def main(): doctree = rst_to_doctree_mini.parse_rst_py(filepath) __import__(modname) mod = sys.modules[modname] - + module_validate(filepath, mod, modname, doctree, partial_ok) diff --git a/source/tests/rst_to_doctree_mini.py b/source/tests/rst_to_doctree_mini.py index 181037299cf..cb7b0291296 100644 --- a/source/tests/rst_to_doctree_mini.py +++ b/source/tests/rst_to_doctree_mini.py @@ -45,7 +45,7 @@ def parse_rst_py(filepath): # --> # ("foo", "bar") re_prefix = re.compile(r"^\.\.\s([a-zA-Z09\-]+)::\s*(.*)\s*$") - + tree = collections.defaultdict(list) indent_map = {} indent_prev = 0 |