Extract Canvas draw_merge plane setup helper

This commit is contained in:
2026-06-13 11:53:42 +02:00
parent 3f8c25d78b
commit bec8d4623d
5 changed files with 72 additions and 20 deletions

View File

@@ -87,6 +87,19 @@ struct LegacyCanvasDrawMergeLayerTextureExecution {
std::function<void()> unbind_layer_texture;
};
struct LegacyCanvasDrawMergePlaneSetupUniforms {
LegacyCanvasDrawMergeCheckerboardUniforms checkerboard;
bool use_blend = false;
bool draw_checkerboard = false;
};
struct LegacyCanvasDrawMergePlaneSetupExecution {
std::function<void()> clear_plane;
std::function<void()> disable_blend;
std::function<void()> enable_blend;
std::function<void()> draw;
};
struct LegacyCanvasDrawMergeFinalPlaneCompositeUniforms {
LegacyCanvasDrawMergeCheckerboardUniforms checkerboard;
LegacyCanvasDrawMergeTextureUniforms texture;
@@ -291,6 +304,26 @@ inline void execute_legacy_canvas_draw_merge_layer_texture(
execution.unbind_layer_texture();
}
inline void execute_legacy_canvas_draw_merge_plane_setup(
const LegacyCanvasDrawMergePlaneSetupUniforms& uniforms,
const LegacyCanvasDrawMergePlaneSetupExecution& execution)
{
execution.clear_plane();
if (uniforms.use_blend) {
execution.disable_blend();
execution.clear_plane();
return;
}
if (uniforms.draw_checkerboard) {
setup_legacy_canvas_draw_merge_checkerboard_shader(uniforms.checkerboard);
execution.draw();
}
execution.enable_blend();
}
inline void execute_legacy_canvas_draw_merge_final_plane_composite(
const LegacyCanvasDrawMergeFinalPlaneCompositeUniforms& uniforms,
const LegacyCanvasDrawMergeFinalPlaneCompositeExecution& execution)