Skip to content

Commit

Permalink
Small python rendering fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
est77 committed Jun 9, 2018
1 parent eec4dc3 commit 7ce64b3
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 10 deletions.
18 changes: 13 additions & 5 deletions sandbox/samples/python/basic/basic.py
Expand Up @@ -220,12 +220,20 @@ def __init__(self):
super(TileCallback, self).__init__()
self.rendered_pixels = 0

# This method is called before a region is rendered.
def pre_render(self, x, y, width, height):
# This method is called before a frame is rendered.
def on_tiled_frame_begin(self, frame):
pass

# This method is called after a frame is rendered.
def on_tiled_frame_end(self, frame):
pass

# This method is called before a tile is rendered.
def on_tile_begin(self, frame, tile_x, tile_y):
pass

# This method is called after a tile is rendered.
def post_render_tile(self, frame, tile_x, tile_y):
def on_tile_end(self, frame, tile_x, tile_y):
# Keep track of the total number of rendered pixels.
tile = frame.image().tile(tile_x, tile_y)
self.rendered_pixels += tile.get_pixel_count()
Expand All @@ -237,8 +245,8 @@ def post_render_tile(self, frame, tile_x, tile_y):
percent = (100.0 * self.rendered_pixels) / total_pixels
sys.stdout.write("rendering, {0:.2f}% done \r".format(percent))

# This method is called after a whole frame is rendered.
def post_render(self, frame):
# This method is called after the frame has been updated.
def on_progressive_frame_update(self, frame):
pass


Expand Down
19 changes: 18 additions & 1 deletion src/appleseed.python/bindaov.cpp
Expand Up @@ -35,6 +35,7 @@
#include "renderer/api/aov.h"

// appleseed.foundation headers.
#include "foundation/image/image.h"
#include "foundation/platform/python.h"

namespace bpy = boost::python;
Expand Down Expand Up @@ -78,6 +79,18 @@ namespace
{
return factory->create(bpy_dict_to_param_array(params));
}

bpy::list get_channel_names(const AOV* aov)
{
bpy::list channels;

const char** names = aov->get_channel_names();

for (size_t i = 0, e = aov->get_channel_count(); i < e ; ++i)
channels.append(names[i]);

return channels;
}
}

void bind_aov()
Expand All @@ -86,7 +99,11 @@ void bind_aov()
.def("get_model_metadata", &detail::get_entity_model_metadata<AOVFactoryRegistrar>).staticmethod("get_model_metadata")
.def("get_input_metadata", &detail::get_entity_input_metadata<AOVFactoryRegistrar>).staticmethod("get_input_metadata")
.def("__init__", bpy::make_constructor(create_aov))
.def("get_model", &AOV::get_model);
.def("get_model", &AOV::get_model)
.def("get_channel_count", &AOV::get_channel_count)
.def("get_channel_names", &get_channel_names)
.def("has_color_data", &AOV::has_color_data)
.def("get_image", &AOV::get_image, bpy::return_value_policy<bpy::reference_existing_object>());

bind_typed_entity_vector<AOV>("AOVContainer");

Expand Down
6 changes: 2 additions & 4 deletions src/appleseed.python/bindframe.cpp
Expand Up @@ -147,12 +147,10 @@ void bind_frame()
.def("get_crop_window", get_crop_window)

.def("image", &Frame::image, bpy::return_value_policy<bpy::reference_existing_object>())
.def("aov_images", &Frame::aov_images, bpy::return_value_policy<bpy::reference_existing_object>())
.def("aovs", &Frame::aovs, bpy::return_value_policy<bpy::reference_existing_object>())

.def("write_main_image", &Frame::write_main_image)
.def("write_aov_images", &Frame::write_aov_images)
.def("write_main_and_aov_images_to_multipart_exr", &Frame::write_main_and_aov_images_to_multipart_exr)
.def("archive", archive_frame)

.def("aovs", &Frame::aovs, bpy::return_value_policy<bpy::reference_existing_object>());
.def("archive", archive_frame);
}

0 comments on commit 7ce64b3

Please sign in to comment.