Commit: 2c4478f553ac56d651256bae8718113578f171a7 Author: Bastien Montagne Date: Sun Jun 28 20:26:14 2015 +0200 Branches: experimental-build https://developer.blender.org/rB2c4478f553ac56d651256bae8718113578f171a7
Revert "Squashed commit of asset-experiments branch." This reverts commit 7ccc641312da613baa48827761f4bd1d718c8886. =================================================================== D release/scripts/modules/bl_previews_utils/bl_previews_render.py M release/scripts/startup/bl_operators/__init__.py D release/scripts/startup/bl_operators/file.py M release/scripts/startup/bl_operators/wm.py M release/scripts/startup/bl_ui/space_filebrowser.py M release/scripts/startup/bl_ui/space_info.py M source/blender/blenkernel/BKE_idcode.h M source/blender/blenkernel/intern/group.c M source/blender/blenkernel/intern/icons.c M source/blender/blenkernel/intern/idcode.c M source/blender/blenkernel/intern/object.c M source/blender/blenkernel/intern/scene.c M source/blender/blenlib/BLI_fileops.h M source/blender/blenlib/BLI_fileops_types.h M source/blender/blenlib/intern/BLI_filelist.c M source/blender/blenloader/BLO_readfile.h M source/blender/blenloader/intern/readblenentry.c M source/blender/blenloader/intern/readfile.c M source/blender/blenloader/intern/writefile.c M source/blender/editors/include/ED_fileselect.h M source/blender/editors/include/UI_interface.h M source/blender/editors/include/UI_interface_icons.h M source/blender/editors/interface/interface.c M source/blender/editors/interface/interface_icons.c M source/blender/editors/interface/interface_intern.h M source/blender/editors/interface/interface_templates.c M source/blender/editors/space_file/CMakeLists.txt M source/blender/editors/space_file/SConscript M source/blender/editors/space_file/file_draw.c M source/blender/editors/space_file/file_intern.h M source/blender/editors/space_file/file_ops.c M source/blender/editors/space_file/filelist.c M source/blender/editors/space_file/filelist.h M source/blender/editors/space_file/filesel.c M source/blender/editors/space_file/space_file.c M source/blender/imbuf/IMB_thumbs.h M source/blender/imbuf/intern/thumbs.c M source/blender/imbuf/intern/thumbs_blend.c M source/blender/makesdna/DNA_ID.h M source/blender/makesdna/DNA_group_types.h M source/blender/makesdna/DNA_object_types.h M source/blender/makesdna/DNA_scene_types.h M source/blender/makesdna/DNA_space_types.h M source/blender/makesrna/intern/rna_ID.c M source/blender/makesrna/intern/rna_space.c M source/blender/python/intern/bpy_app.c M source/blender/windowmanager/WM_api.h M source/blender/windowmanager/WM_types.h M source/blender/windowmanager/intern/wm_operators.c M source/blender/windowmanager/intern/wm_window.c M source/blender/windowmanager/wm_event_types.h =================================================================== diff --git a/release/scripts/modules/bl_previews_utils/bl_previews_render.py b/release/scripts/modules/bl_previews_utils/bl_previews_render.py deleted file mode 100644 index 801dbbf..0000000 --- a/release/scripts/modules/bl_previews_utils/bl_previews_render.py +++ /dev/null @@ -1,486 +0,0 @@ -# ***** BEGIN GPL LICENSE BLOCK ***** -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# -# ***** END GPL LICENSE BLOCK ***** - -# <pep8 compliant> - -# Populate a template file (POT format currently) from Blender RNA/py/C data. -# Note: This script is meant to be used from inside Blender! - -import collections -import os -import sys - -import bpy -from mathutils import Vector, Euler - - -INTERN_PREVIEW_TYPES = {'MATERIAL', 'LAMP', 'WORLD', 'TEXTURE', 'IMAGE'} -OBJECT_TYPES_RENDER = {'MESH', 'CURVE', 'SURFACE', 'META', 'FONT'} - - -def rna_backup_gen(data, include_props=None, exclude_props=None, root=()): - # only writable properties... - for p in data.bl_rna.properties: - pid = p.identifier - if pid in {'rna_type',}: - continue - path = root + (pid,) - if include_props is not None and path not in include_props: - continue - if exclude_props is not None and path in exclude_props: - continue - val = getattr(data, pid) - if val is not None and p.type == 'POINTER': - # recurse! - yield from rna_backup_gen(val, include_props, exclude_props, root=path) - elif data.is_property_readonly(pid): - continue - else: - yield path, val - - -def rna_backup_restore(data, backup): - for path, val in backup: - dt = data - for pid in path[:-1]: - dt = getattr(dt, pid) - setattr(dt, path[-1], val) - - -def do_previews(do_objects, do_groups, do_scenes, do_data_intern): - # Helpers. - RenderContext = collections.namedtuple("RenderContext", ( - "scene", "world", "camera", "lamp", "camera_data", "lamp_data", "image", # All those are names! - "backup_scene", "backup_world", "backup_camera", "backup_lamp", "backup_camera_data", "backup_lamp_data", - )) - - RENDER_PREVIEW_SIZE = bpy.app.render_preview_size - - def render_context_create(engine, objects_ignored): - if engine == '__SCENE': - backup_scene, backup_world, backup_camera, backup_lamp, backup_camera_data, backup_lamp_data = [()] * 6 - scene = bpy.context.screen.scene - exclude_props = {('world',), ('camera',), ('tool_settings',), ('preview',)} - backup_scene = tuple(rna_backup_gen(scene, exclude_props=exclude_props)) - world = scene.world - camera = scene.camera - if camera: - camera_data = camera.data - else: - backup_camera, backup_camera_data = [None] * 2 - camera_data = bpy.data.cameras.new("TEMP_preview_render_camera") - camera = bpy.data.objects.new("TEMP_preview_render_camera", camera_data) - camera.rotation_euler = Euler((1.1635528802871704, 0.0, 0.7853981852531433), 'XYZ') # (66.67, 0.0, 45.0) - scene.camera = camera - scene.objects.link(camera) - # TODO: add lamp if none found in scene? - lamp = None - lamp_data = None - else: - backup_scene, backup_world, backup_camera, backup_lamp, backup_camera_data, backup_lamp_data = [None] * 6 - - scene = bpy.data.scenes.new("TEMP_preview_render_scene") - world = bpy.data.worlds.new("TEMP_preview_render_world") - camera_data = bpy.data.cameras.new("TEMP_preview_render_camera") - camera = bpy.data.objects.new("TEMP_preview_render_camera", camera_data) - lamp_data = bpy.data.lamps.new("TEMP_preview_render_lamp", 'SPOT') - lamp = bpy.data.objects.new("TEMP_preview_render_lamp", lamp_data) - - objects_ignored.add((camera.name, lamp.name)) - - scene.world = world - - camera.rotation_euler = Euler((1.1635528802871704, 0.0, 0.7853981852531433), 'XYZ') # (66.67, 0.0, 45.0) - scene.camera = camera - scene.objects.link(camera) - - lamp.rotation_euler = Euler((0.7853981852531433, 0.0, 1.7453292608261108), 'XYZ') # (45.0, 0.0, 100.0) - lamp_data.falloff_type = 'CONSTANT' - lamp_data.spot_size = 1.0471975803375244 # 60 - scene.objects.link(lamp) - - if engine == 'BLENDER_RENDER': - scene.render.engine = 'BLENDER_RENDER' - scene.render.alpha_mode = 'TRANSPARENT' - - world.use_sky_blend = True - world.horizon_color = 0.9, 0.9, 0.9 - world.zenith_color = 0.5, 0.5, 0.5 - world.ambient_color = 0.1, 0.1, 0.1 - world.light_settings.use_environment_light = True - world.light_settings.environment_energy = 1.0 - world.light_settings.environment_color = 'SKY_COLOR' - elif engine == 'CYCLES': - scene.render.engine = 'CYCLES' - scene.cycles.film_transparent = True - # TODO: define Cycles world? - - scene.render.image_settings.file_format = 'PNG' - scene.render.image_settings.color_depth = '8' - scene.render.image_settings.color_mode = 'RGBA' - scene.render.image_settings.compression = 25 - scene.render.resolution_x = RENDER_PREVIEW_SIZE - scene.render.resolution_y = RENDER_PREVIEW_SIZE - scene.render.resolution_percentage = 100 - scene.render.filepath = os.path.join(bpy.app.tempdir, 'TEMP_preview_render.png') - scene.render.use_overwrite = True - scene.render.use_stamp = False - - image = bpy.data.images.new("TEMP_render_image", RENDER_PREVIEW_SIZE, RENDER_PREVIEW_SIZE, alpha=True) - image.source = 'FILE' - image.filepath = scene.render.filepath - - return RenderContext( - scene.name, world.name if world else None, camera.name, lamp.name if lamp else None, - camera_data.name, lamp_data.name if lamp_data else None, image.name, - backup_scene, backup_world, backup_camera, backup_lamp, backup_camera_data, backup_lamp_data, - ) - - def render_context_delete(render_context): - # We use try/except blocks here to avoid crash, too much things can go wrong, and we want to leave the current - # .blend as clean as possible! - success = True - - scene = bpy.data.scenes[render_context.scene] - try: - if render_context.backup_scene is None: - scene.world = None - scene.camera = None - if render_context.camera: - scene.objects.unlink(bpy.data.objects[render_context.camera]) - if render_context.lamp: - scene.objects.unlink(bpy.data.objects[render_context.lamp]) - bpy.data.scenes.remove(scene) - scene = None - else: - rna_backup_restore(scene, render_context.backup_scene) - except Exception as e: - print("ERROR:", e) - success = False - - if render_context.world is not None: - try: - world = bpy.data.worlds[render_context.world] - if render_context.backup_world is None: - if scene is not None: - scene.world = None - world.user_clear() - bpy.data.worlds.remove(world) - else: - rna_backup_restore(world, render_context.backup_world) - except Exception as e: - print("ERROR:", e) - success = False - - if render_context.camera: - try: - camera = bpy.data.objects[render_context.camera] - if render_context.backup_camera is None: - if scene is not None: - scene.camera = None - camera.user_clear() - bpy.data.objects.remove(camera) - bpy.data.cameras.remove(bpy.data.cameras[render_context.camera_data]) - else: - rna_backup_restore(camera, render_context.backup_camera) - rna_backup_restore(bpy.data.cameras[render_context.camera_data], render_context.backup_camera_data) - except Exception as e: - print("ERROR:", e) - success = False - - if render_context.lamp: - try: - lamp = bpy.data.objects[render_context.lamp] - if render_context.backup_lamp is None: - lamp.user_clear() - bpy.data.objects.remove(lamp) - bpy.data.lamps.remove(bpy.data.lamps[render_context.lamp_data]) - else: - rna_backup_restore(lamp, render_context.backup_lamp) - rna_backup_restore(bpy.data.lamps[render_context.lamp_data], render_context.backup_lamp_data) - except Exception as e: - print("ERROR:", e) - success = False - - try: - image = bpy.data.images[render_context.image] - image.user_clear() - bpy.data.images.remove(image) - except Exception as e: - print("ERROR:", e) - success = False - - return success - - de @@ Diff output truncated at 10240 characters. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs