Move NodeCanvas display resolve behind seam
This commit is contained in:
@@ -175,6 +175,20 @@ struct LegacyCanvasDrawMergeFinalPlaneCompositeExecution {
|
||||
std::function<void()> unbind_merged_texture;
|
||||
};
|
||||
|
||||
struct LegacyCanvasDrawMergeDisplayResolveUniforms {
|
||||
LegacyCanvasDrawMergeTextureUniforms texture;
|
||||
};
|
||||
|
||||
struct LegacyCanvasDrawMergeDisplayResolveExecution {
|
||||
std::function<void()> unbind_resolve_framebuffer;
|
||||
std::function<void()> clear_color_buffer;
|
||||
std::function<void()> apply_viewport;
|
||||
std::function<void()> bind_sampler;
|
||||
std::function<void()> bind_resolve_texture;
|
||||
std::function<void()> draw;
|
||||
std::function<void()> unbind_resolve_texture;
|
||||
};
|
||||
|
||||
[[nodiscard]] inline LegacyCanvasDrawMergeShaderExecution legacy_shader_manager_draw_merge_execution() noexcept
|
||||
{
|
||||
return {
|
||||
@@ -433,4 +447,18 @@ inline void execute_legacy_canvas_draw_merge_final_plane_composite(
|
||||
execution.unbind_merged_texture();
|
||||
}
|
||||
|
||||
inline void execute_legacy_canvas_draw_merge_display_resolve(
|
||||
const LegacyCanvasDrawMergeDisplayResolveUniforms& uniforms,
|
||||
const LegacyCanvasDrawMergeDisplayResolveExecution& execution)
|
||||
{
|
||||
execution.unbind_resolve_framebuffer();
|
||||
execution.clear_color_buffer();
|
||||
execution.apply_viewport();
|
||||
execution.bind_sampler();
|
||||
execution.bind_resolve_texture();
|
||||
setup_legacy_canvas_draw_merge_texture_shader(uniforms.texture);
|
||||
execution.draw();
|
||||
execution.unbind_resolve_texture();
|
||||
}
|
||||
|
||||
} // namespace pp::panopainter
|
||||
|
||||
Reference in New Issue
Block a user