Extract main stroke live-pass orchestration
This commit is contained in:
@@ -151,6 +151,15 @@ struct LegacyCanvasStrokeSamplerDispatch {
|
||||
std::function<void()> unbind_mixer_sampler;
|
||||
};
|
||||
|
||||
struct LegacyCanvasStrokeMainPassExecutionRequest {
|
||||
std::string_view context;
|
||||
std::function<void()> bind_samplers;
|
||||
std::function<void()> bind_textures;
|
||||
std::function<void()> execute_frame_pass;
|
||||
std::function<void()> unbind_textures;
|
||||
std::function<void()> unbind_samplers;
|
||||
};
|
||||
|
||||
[[nodiscard]] inline LegacyCanvasStrokeSamplerDispatch make_legacy_canvas_stroke_live_pass_sampler_dispatch(
|
||||
std::function<void(int)> bind_brush_tip_sampler,
|
||||
std::function<void()> unbind_brush_tip_sampler,
|
||||
@@ -195,6 +204,25 @@ struct LegacyCanvasStrokeSamplerDispatch {
|
||||
};
|
||||
}
|
||||
|
||||
[[nodiscard]] inline bool execute_legacy_canvas_stroke_main_pass(
|
||||
const LegacyCanvasStrokeMainPassExecutionRequest& request)
|
||||
{
|
||||
if (!request.bind_samplers ||
|
||||
!request.bind_textures ||
|
||||
!request.execute_frame_pass ||
|
||||
!request.unbind_textures ||
|
||||
!request.unbind_samplers) {
|
||||
return false;
|
||||
}
|
||||
|
||||
request.bind_samplers();
|
||||
request.bind_textures();
|
||||
request.execute_frame_pass();
|
||||
request.unbind_textures();
|
||||
request.unbind_samplers();
|
||||
return true;
|
||||
}
|
||||
|
||||
struct LegacyCanvasStrokeFaceDirtyRequest {
|
||||
pp::renderer::Extent2D extent {};
|
||||
glm::vec4 previous_accumulated_dirty_box {};
|
||||
|
||||
Reference in New Issue
Block a user