Merge branch 'blender-v4.3-release'
This commit is contained in:
@@ -8822,7 +8822,7 @@ class VIEW3D_MT_greasepencil_edit_context_menu(Menu):
|
||||
col.operator("transform.shear", text="Shear")
|
||||
col.operator("transform.bend", text="Bend")
|
||||
col.operator("transform.push_pull", text="Push/Pull")
|
||||
col.operator("transform.transform", text="Radius").mode = 'GPENCIL_SHRINKFATTEN'
|
||||
col.operator("transform.transform", text="Shrink/Fatten").mode = 'CURVE_SHRINKFATTEN'
|
||||
col.operator("grease_pencil.stroke_smooth", text="Smooth Points")
|
||||
|
||||
col.separator()
|
||||
@@ -8864,7 +8864,7 @@ class VIEW3D_MT_greasepencil_edit_context_menu(Menu):
|
||||
|
||||
# Deform Operators
|
||||
col.operator("grease_pencil.stroke_smooth", text="Smooth")
|
||||
col.operator("transform.transform", text="Radius").mode = 'CURVE_SHRINKFATTEN'
|
||||
col.operator("transform.transform", text="Shrink/Fatten").mode = 'CURVE_SHRINKFATTEN'
|
||||
|
||||
col.separator()
|
||||
|
||||
|
||||
@@ -418,10 +418,6 @@ void Instance::render_sample()
|
||||
/* Motion blur may need to do re-sync after a certain number of sample. */
|
||||
if (!is_viewport() && sampling.do_render_sync()) {
|
||||
render_sync();
|
||||
if (!info_.empty()) {
|
||||
printf("%s", info_.c_str());
|
||||
info_ = "";
|
||||
}
|
||||
}
|
||||
|
||||
DebugScope debug_scope(debug_scope_render_sample, "EEVEE.render_sample");
|
||||
@@ -563,6 +559,13 @@ void Instance::render_frame(RenderEngine *engine, RenderLayer *render_layer, con
|
||||
this->film.cryptomatte_sort();
|
||||
|
||||
this->render_read_result(render_layer, view_name);
|
||||
|
||||
if (!info_.empty()) {
|
||||
RE_engine_set_error_message(
|
||||
engine, RPT_("Errors during render. See the System Console for more info."));
|
||||
printf("%s", info_.c_str());
|
||||
info_ = "";
|
||||
}
|
||||
}
|
||||
|
||||
void Instance::draw_viewport()
|
||||
|
||||
@@ -239,8 +239,11 @@ class Instance {
|
||||
* NOTE: When calling this function, `msg` should be a string literal. */
|
||||
template<typename... Args> void info_append_i18n(const char *msg, Args &&...args)
|
||||
{
|
||||
info_ += fmt::format(RPT_(msg), args...);
|
||||
info_ += "\n";
|
||||
std::string fmt_msg = fmt::format(RPT_(msg), args...) + "\n";
|
||||
/* Don't print the same error twice. */
|
||||
if (info_ != fmt_msg && !BLI_str_endswith(info_.c_str(), fmt_msg.c_str())) {
|
||||
info_ += fmt_msg;
|
||||
}
|
||||
}
|
||||
|
||||
const char *info_get()
|
||||
|
||||
@@ -1150,6 +1150,7 @@ bool ShadowModule::shadow_update_finished(int loop_count)
|
||||
if (loop_count >= (SHADOW_MAX_TILEMAP * SHADOW_TILEMAP_LOD) / SHADOW_VIEW_MAX) {
|
||||
/* We have reach the maximum theoretical number of updates.
|
||||
* This can indicate a problem in the statistic buffer read-back or update tagging. */
|
||||
inst_.info_append_i18n("Error: Reached max shadow updates.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1170,6 +1171,15 @@ bool ShadowModule::shadow_update_finished(int loop_count)
|
||||
statistics_buf_.current().async_flush_to_host();
|
||||
statistics_buf_.current().read();
|
||||
ShadowStatistics stats = statistics_buf_.current();
|
||||
|
||||
if (stats.page_used_count > shadow_page_len_) {
|
||||
inst_.info_append_i18n(
|
||||
"Error: Shadow buffer full, may result in missing shadows and lower "
|
||||
"performance. ({} / {})",
|
||||
stats.page_used_count,
|
||||
shadow_page_len_);
|
||||
}
|
||||
|
||||
/* Rendering is finished if we rendered all the remaining pages. */
|
||||
return stats.view_needed_count <= SHADOW_VIEW_MAX;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user