Thin canvas draw seams and own grid worker

This commit is contained in:
2026-06-16 07:25:57 +02:00
parent 3366b54c7f
commit 17b603536b
7 changed files with 179 additions and 112 deletions

View File

@@ -203,6 +203,15 @@ struct LegacyCanvasDrawMergeDisplayResolveExecution {
std::function<void()> unbind_resolve_texture;
};
struct LegacyCanvasDrawMergePostDrawExecution {
std::function<void()> draw_mask_free;
std::function<void()> draw_mask_line;
std::function<void()> draw_smask_faces;
std::function<void()> draw_grid_modes;
std::function<void()> draw_heightmap;
std::function<void()> draw_current_modes;
};
[[nodiscard]] inline LegacyCanvasDrawMergeShaderExecution legacy_shader_manager_draw_merge_execution() noexcept
{
return {
@@ -492,4 +501,31 @@ inline void execute_legacy_canvas_draw_merge_display_resolve(
execution.unbind_resolve_texture();
}
inline void execute_legacy_canvas_draw_merge_post_draw(
bool smask_active,
bool draw_mask_overlay,
int smask_mode,
bool draw_grid_modes,
const LegacyCanvasDrawMergePostDrawExecution& execution)
{
if (smask_active || draw_mask_overlay) {
if (smask_mode == 1) {
execution.draw_mask_free();
} else if (smask_mode == 2) {
execution.draw_mask_line();
}
}
if (smask_active) {
execution.draw_smask_faces();
}
if (draw_grid_modes) {
execution.draw_grid_modes();
}
execution.draw_heightmap();
execution.draw_current_modes();
}
} // namespace pp::panopainter