fix layer alpha lock
This commit is contained in:
@@ -775,11 +775,14 @@ void Canvas::stroke_commit()
|
||||
action->m_old_box[i] = m_layers[m_current_layer_idx]->m_dirty_box[i];
|
||||
action->m_old_dirty[i] = m_layers[m_current_layer_idx]->m_dirty_face[i];
|
||||
|
||||
auto& lbox = m_layers[m_current_layer_idx]->m_dirty_box[i];
|
||||
lbox = glm::vec4(
|
||||
glm::min(xy(m_dirty_box[i]), xy(lbox)),
|
||||
glm::max(zw(m_dirty_box[i]), zw(lbox))
|
||||
if (!m_layers[m_current_layer_idx]->m_alpha_locked)
|
||||
{
|
||||
auto& lbox = m_layers[m_current_layer_idx]->m_dirty_box[i];
|
||||
lbox = glm::vec4(
|
||||
glm::min(xy(m_dirty_box[i]), xy(lbox)),
|
||||
glm::max(zw(m_dirty_box[i]), zw(lbox))
|
||||
);
|
||||
}
|
||||
m_layers[m_current_layer_idx]->m_dirty_face[i] = true;
|
||||
|
||||
// copy to tmp2 for layer blending
|
||||
@@ -834,7 +837,7 @@ void Canvas::stroke_commit()
|
||||
ShaderManager::u_vec2(kShaderUniform::Resolution, m_size);
|
||||
ShaderManager::u_float(kShaderUniform::Alpha, 1);
|
||||
ShaderManager::u_int(kShaderUniform::Mask, m_smask_active);
|
||||
ShaderManager::u_int(kShaderUniform::Lock, false);
|
||||
ShaderManager::u_int(kShaderUniform::Lock, m_layers[m_current_layer_idx]->m_alpha_locked);
|
||||
ShaderManager::u_int(kShaderUniform::UseFragcoord, false);
|
||||
ShaderManager::u_int(kShaderUniform::BlendMode, b->m_blend_mode);
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP, glm::ortho(-.5f, .5f, -.5f, .5f, -1.f, 1.f));
|
||||
|
||||
Reference in New Issue
Block a user