Wrap stroke mix shell bundle
This commit is contained in:
@@ -387,6 +387,50 @@ struct LegacyCanvasStrokeMixPassSetup {
|
||||
};
|
||||
}
|
||||
|
||||
struct LegacyCanvasStrokeMixPassShell {
|
||||
LegacyCanvasStrokeMixPassSetup setup;
|
||||
LegacyCanvasStrokeMixPassRequest request;
|
||||
};
|
||||
|
||||
template <typename BeginMixPass, typename EndMixPass>
|
||||
[[nodiscard]] inline LegacyCanvasStrokeMixPassShell make_legacy_canvas_stroke_mix_pass_shell(
|
||||
BeginMixPass&& begin_mix_pass,
|
||||
EndMixPass&& end_mix_pass,
|
||||
std::string_view context,
|
||||
glm::vec2 resolution,
|
||||
std::span<const LegacyCanvasStrokeMixPassPlane> planes,
|
||||
std::function<void()> bind_mix_samplers,
|
||||
std::function<void()> unbind_mix_samplers,
|
||||
std::function<void(int, const glm::mat4&)> setup_plane_shader,
|
||||
std::function<void(int)> bind_layer_texture,
|
||||
std::function<void(int)> bind_stroke_texture,
|
||||
std::function<void(int)> bind_mask_texture,
|
||||
std::function<void()> draw_plane,
|
||||
std::function<void(int)> unbind_mask_texture,
|
||||
std::function<void(int)> unbind_stroke_texture,
|
||||
std::function<void(int)> unbind_layer_texture)
|
||||
{
|
||||
return LegacyCanvasStrokeMixPassShell {
|
||||
.setup = make_legacy_canvas_stroke_mix_pass_setup(
|
||||
std::forward<BeginMixPass>(begin_mix_pass),
|
||||
std::forward<EndMixPass>(end_mix_pass)),
|
||||
.request = make_legacy_canvas_stroke_mix_pass_request(
|
||||
context,
|
||||
resolution,
|
||||
planes,
|
||||
std::move(bind_mix_samplers),
|
||||
std::move(unbind_mix_samplers),
|
||||
std::move(setup_plane_shader),
|
||||
std::move(bind_layer_texture),
|
||||
std::move(bind_stroke_texture),
|
||||
std::move(bind_mask_texture),
|
||||
std::move(draw_plane),
|
||||
std::move(unbind_mask_texture),
|
||||
std::move(unbind_stroke_texture),
|
||||
std::move(unbind_layer_texture)),
|
||||
};
|
||||
}
|
||||
|
||||
struct LegacyCanvasStrokeDualPassRequest {
|
||||
std::string_view context;
|
||||
std::function<void()> bind_brush_tip;
|
||||
|
||||
Reference in New Issue
Block a user