forked from bartvdbraak/blender
Freestyle: lazy load 'export_svg'
Loading XML module, registering etree namespaces... etc on startup for everyone on chance someone may want to export an SVG from Freestyle is unacceptable. This shouldn't have got through the review. also disable loading when built without freestyle.
This commit is contained in:
parent
fc7752b53c
commit
c35a649a0a
@ -23,7 +23,6 @@ import bpy
|
||||
import xml.etree.cElementTree as et
|
||||
|
||||
from bpy.path import abspath
|
||||
from bpy.app.handlers import persistent
|
||||
from bpy_extras.object_utils import world_to_camera_view
|
||||
|
||||
from freestyle.types import StrokeShader, BinaryPredicate1D, Interface0DIterator
|
||||
@ -266,12 +265,10 @@ def indent_xml(elem, level=0, indentsize=4):
|
||||
|
||||
|
||||
# - callbacks - #
|
||||
@persistent
|
||||
# called from: bpy.app.handlers.render_init
|
||||
def svg_export_header(scene):
|
||||
render = scene.render
|
||||
if not (render.use_freestyle and render.use_svg_export):
|
||||
return
|
||||
# create new file (overwrite existing)
|
||||
render = scene.render
|
||||
width, height = render.resolution_x, render.resolution_y
|
||||
scale = render.resolution_percentage / 100
|
||||
|
||||
@ -283,16 +280,15 @@ def svg_export_header(scene):
|
||||
print("SVG export: invalid path")
|
||||
|
||||
|
||||
@persistent
|
||||
# called from: bpy.app.handlers.render_complete
|
||||
def svg_export_animation(scene):
|
||||
"""makes an animation of the exported SVG file """
|
||||
# makes an animation of the exported SVG file
|
||||
render = scene.render
|
||||
if render.use_freestyle and render.use_svg_export and render.svg_mode == 'ANIMATION':
|
||||
write_animation(abspath(render.svg_path), scene.frame_start, render.fps)
|
||||
write_animation(abspath(render.svg_path), scene.frame_start, render.fps)
|
||||
|
||||
|
||||
def write_animation(filepath, frame_begin, fps=25):
|
||||
"""Adds animate tags to the specified file."""
|
||||
# Adds animate tags to the specified file.
|
||||
tree = et.parse(filepath)
|
||||
root = tree.getroot()
|
||||
|
||||
|
@ -20,15 +20,39 @@
|
||||
|
||||
import bpy
|
||||
|
||||
from export_svg import svg_export_header, svg_export_animation
|
||||
if bpy.app.build_options.freestyle:
|
||||
from bpy.app.handlers import persistent
|
||||
|
||||
def register():
|
||||
bpy.app.handlers.render_init.append(svg_export_header)
|
||||
bpy.app.handlers.render_complete.append(svg_export_animation)
|
||||
@persistent
|
||||
def freestyle_render_init(scene):
|
||||
render = scene.render
|
||||
if render.use_freestyle:
|
||||
if render.use_svg_export:
|
||||
from export_svg import svg_export_header
|
||||
svg_export_header(scene)
|
||||
|
||||
def unregister():
|
||||
bpy.app.handlers.render_init.remove(svg_export_header)
|
||||
bpy.app.handlers.render_complete.remove(svg_export_animation)
|
||||
@persistent
|
||||
def freestyle_render_complete(scene):
|
||||
render = scene.render
|
||||
if render.use_freestyle:
|
||||
if render.use_svg_export and render.svg_mode == 'ANIMATION':
|
||||
from export_svg import svg_export_animation
|
||||
svg_export_animation(scene)
|
||||
|
||||
def register():
|
||||
bpy.app.handlers.render_init.append(freestyle_render_init)
|
||||
bpy.app.handlers.render_complete.append(freestyle_render_complete)
|
||||
|
||||
def unregister():
|
||||
bpy.app.handlers.render_init.remove(freestyle_render_init)
|
||||
bpy.app.handlers.render_complete.remove(freestyle_render_complete)
|
||||
|
||||
else:
|
||||
def register():
|
||||
pass
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
|
||||
if __name__ == '__main__':
|
||||
register()
|
||||
|
Loading…
Reference in New Issue
Block a user