Extract Canvas draw_merge layer texture helper

This commit is contained in:
2026-06-13 11:49:40 +02:00
parent ed95b084f0
commit 3f8c25d78b
5 changed files with 49 additions and 7 deletions

View File

@@ -80,6 +80,13 @@ struct LegacyCanvasDrawMergeLayerBlendExecution {
std::function<void()> unbind_merge_texture;
};
struct LegacyCanvasDrawMergeLayerTextureExecution {
std::function<void()> bind_sampler;
std::function<void()> bind_layer_texture;
std::function<void()> draw;
std::function<void()> unbind_layer_texture;
};
struct LegacyCanvasDrawMergeFinalPlaneCompositeUniforms {
LegacyCanvasDrawMergeCheckerboardUniforms checkerboard;
LegacyCanvasDrawMergeTextureUniforms texture;
@@ -273,6 +280,17 @@ inline void execute_legacy_canvas_draw_merge_layer_blend(
execution.unbind_merge_texture();
}
inline void execute_legacy_canvas_draw_merge_layer_texture(
const LegacyCanvasDrawMergeTextureAlphaUniforms& uniforms,
const LegacyCanvasDrawMergeLayerTextureExecution& execution)
{
execution.bind_sampler();
setup_legacy_canvas_draw_merge_texture_alpha_shader(uniforms);
execution.bind_layer_texture();
execution.draw();
execution.unbind_layer_texture();
}
inline void execute_legacy_canvas_draw_merge_final_plane_composite(
const LegacyCanvasDrawMergeFinalPlaneCompositeUniforms& uniforms,
const LegacyCanvasDrawMergeFinalPlaneCompositeExecution& execution)