Own main workers and narrow Apple render hooks

This commit is contained in:
2026-06-16 07:43:44 +02:00
parent 6f4bd4b26f
commit 0c72aa0312
9 changed files with 167 additions and 52 deletions

View File

@@ -118,6 +118,16 @@ struct LegacyCanvasDrawMergeTemporaryCompositeExecution {
std::function<void()> unbind_textures;
};
struct LegacyCanvasDrawMergeBackgroundSetupUniforms {
bool draw_merged = false;
bool use_blend = false;
};
struct LegacyCanvasDrawMergeBackgroundSetupExecution {
std::function<void()> disable_blend;
std::function<void(int)> draw_checkerboard_plane;
};
template <
typename Setup,
typename BindSamplers,
@@ -485,6 +495,21 @@ inline void execute_legacy_canvas_draw_merge_temporary_composite(
execution.unbind_textures();
}
inline void execute_legacy_canvas_draw_merge_background_setup(
const LegacyCanvasDrawMergeBackgroundSetupUniforms& uniforms,
const LegacyCanvasDrawMergeBackgroundSetupExecution& execution)
{
if (uniforms.draw_merged) {
execution.disable_blend();
}
if (uniforms.draw_merged || !uniforms.use_blend) {
for (int plane_index = 0; plane_index < 6; ++plane_index) {
execution.draw_checkerboard_plane(plane_index);
}
}
}
inline void execute_legacy_canvas_draw_merge_plane_setup(
const LegacyCanvasDrawMergePlaneSetupUniforms& uniforms,
const LegacyCanvasDrawMergePlaneSetupExecution& execution)