44 : path_(path), format_(
format), save_as_render_(save_as_render)
48 render_result_->rectx =
size.x;
49 render_result_->recty =
size.y;
54 render_result_->ppm[0] = 0.0;
55 render_result_->ppm[1] = 0.0;
64 render_layer->
name[0] =
'\0';
92 render_result_->rectx, render_result_->recty, channels * 8, 0);
98 const char *view_name,
112 const int channels_count =
BLI_strnlen(channels, 4);
113 render_pass->
rectx = render_result_->rectx;
114 render_pass->
recty = render_result_->recty;
115 render_pass->
channels = channels_count;
118 render_result_->rectx, render_result_->recty, channels_count * 8, 0);
126 meta_data_.add(key, value);
136 for (
const auto &field : meta_data_.items()) {
142 if (save_as_render_ ||
true) {
147 &reports, render_result_, scene,
true, path_.c_str(), &format_, save_as_render_);
161 return *file_outputs_.lookup_or_add_cb(
162 path, [&]() {
return std::make_unique<FileOutput>(path,
format,
size, save_as_render); });
167 for (std::unique_ptr<FileOutput> &file_output : file_outputs_.values()) {
168 file_output->save(scene);
void BKE_render_result_stamp_info(Scene *scene, Object *camera, RenderResult *rr, bool allocate_only)
void BKE_render_result_stamp_data(RenderResult *rr, const char *key, const char *value)
bool BKE_image_render_write(ReportList *reports, RenderResult *rr, const Scene *scene, const bool stamp, const char *filepath_basis, const ImageFormatData *format=nullptr, bool save_as_render=true)
void BKE_reports_free(ReportList *reports)
void BKE_reports_init(ReportList *reports, int flag)
void BKE_scene_ppm_get(const RenderData *rd, double r_ppm[2])
void BLI_addtail(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
MINLINE void copy_v2_v2_db(double r[2], const double a[2])
int char char int int int int size_t BLI_strnlen(const char *str, size_t maxlen) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
char * STRNCPY(char(&dst)[N], const char *src)
#define STRNCPY_UTF8(dst, src)
@ R_IMF_IMTYPE_MULTILAYER
void IMB_assign_float_buffer(ImBuf *ibuf, float *buffer_data, ImBufOwnership ownership)
ImBuf * IMB_allocImBuf(unsigned int x, unsigned int y, unsigned char planes, unsigned int flags)
Read Guarded memory(de)allocation.
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
void add_view(const char *view_name)
FileOutput(const std::string &path, const ImageFormatData &format, int2 size, bool save_as_render)
void add_pass(const char *pass_name, const char *view_name, const char *channels, float *buffer)
void add_meta_data(std::string key, std::string value)
void save_file_outputs(Scene *scene)
FileOutput & get_file_output(std::string path, ImageFormatData format, int2 size, bool save_as_render)
void * MEM_callocN(size_t len, const char *str)
VecBase< int32_t, 2 > int2
void RE_FreeRenderResult(RenderResult *rr)