Route thumbnail blend setup through helper

This commit is contained in:
2026-06-13 05:30:31 +02:00
parent 8348dc5bf8
commit b98635a8bb
3 changed files with 18 additions and 6 deletions

View File

@@ -2986,12 +2986,8 @@ Image Canvas::thumbnail_generate(int w, int h)
apply_canvas_capability(blend_state(), false);
auto plane_mvp = proj * m_mv * m_plane_transform[i] * glm::translate(glm::vec3(0, 0, -1));
ShaderManager::use(kShader::TextureBlend);
ShaderManager::u_int(kShaderUniform::Tex, 0);
ShaderManager::u_mat4(kShaderUniform::MVP, plane_mvp);
if (copy_layer_destination)
{
ShaderManager::u_int(kShaderUniform::TexBG, 2);
set_active_texture_unit(2);
blendtex.bind();
m_sampler_nearest.bind(2);
@@ -3008,8 +3004,15 @@ Image Canvas::thumbnail_generate(int w, int h)
set_active_texture_unit(2);
copy_framebuffer_to_texture_2d(0, 0, 0, 0, w, h);
}
ShaderManager::u_int(kShaderUniform::BlendMode, m_layers[layer_index]->m_blend_mode);
ShaderManager::u_float(kShaderUniform::Alpha, m_layers[layer_index]->m_opacity);
pp::panopainter::setup_legacy_canvas_draw_merge_texture_blend_shader(
pp::panopainter::LegacyCanvasDrawMergeTextureBlendUniforms {
.mvp = plane_mvp,
.texture_slot = 0,
.destination_texture_slot = 2,
.use_destination_texture = copy_layer_destination,
.blend_mode = m_layers[layer_index]->m_blend_mode,
.alpha = m_layers[layer_index]->m_opacity,
});
set_active_texture_unit(0);
m_layers[layer_index]->rtt(i).bindTexture();
m_face_plane.draw_fill();