Share retained preview pass sequence helper
This commit is contained in:
@@ -130,4 +130,45 @@ struct LegacyNodeStrokePreviewMixPassRequest {
|
||||
return plan;
|
||||
}
|
||||
|
||||
struct LegacyNodeStrokePreviewPassSequenceRequest {
|
||||
bool dual_pass_enabled = false;
|
||||
std::function<void()> prepare_dual_pass;
|
||||
std::function<void()> execute_dual_pass;
|
||||
std::function<void()> capture_background;
|
||||
std::function<void()> prepare_main_pass;
|
||||
std::function<void()> execute_main_pass;
|
||||
std::function<void()> finish_main_pass;
|
||||
std::function<void()> execute_final_composite;
|
||||
std::function<void()> copy_preview_result;
|
||||
};
|
||||
|
||||
[[nodiscard]] inline bool execute_legacy_node_stroke_preview_pass_sequence(
|
||||
const LegacyNodeStrokePreviewPassSequenceRequest& request)
|
||||
{
|
||||
if (!request.capture_background ||
|
||||
!request.prepare_main_pass ||
|
||||
!request.execute_main_pass ||
|
||||
!request.finish_main_pass ||
|
||||
!request.execute_final_composite ||
|
||||
!request.copy_preview_result) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (request.dual_pass_enabled) {
|
||||
if (!request.prepare_dual_pass || !request.execute_dual_pass) {
|
||||
return false;
|
||||
}
|
||||
request.prepare_dual_pass();
|
||||
request.execute_dual_pass();
|
||||
}
|
||||
|
||||
request.capture_background();
|
||||
request.prepare_main_pass();
|
||||
request.execute_main_pass();
|
||||
request.finish_main_pass();
|
||||
request.execute_final_composite();
|
||||
request.copy_preview_result();
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace pp::panopainter
|
||||
|
||||
Reference in New Issue
Block a user