fix stroke padding rect
This commit is contained in:
@@ -606,8 +606,11 @@ void Canvas::stroke_draw()
|
||||
m_tmp[i].bindFramebuffer();
|
||||
if (!ShaderManager::ext_framebuffer_fetch)
|
||||
{
|
||||
glm::vec2 o = glm::max({0, 0}, xy(b) - pad);
|
||||
glm::vec2 sz = glm::min(m_size, zw(b) + pad) - o;
|
||||
m_tex[i].bind();
|
||||
glCopyTexSubImage2D(GL_TEXTURE_2D, 0, b.x, b.y, b.x, b.y, box_size.x, box_size.y);
|
||||
if (sz.x > 0 && sz.y > 0)
|
||||
glCopyTexSubImage2D(GL_TEXTURE_2D, 0, o.x, o.y, o.x, o.y, sz.x, sz.y);
|
||||
}
|
||||
m_brush_shape.draw_fill();
|
||||
m_tmp[i].unbindFramebuffer();
|
||||
@@ -1228,26 +1231,9 @@ void Canvas::stroke_start(glm::vec3 point, float pressure)
|
||||
m_dirty_box[i] = glm::vec4(m_width, m_height, 0, 0); // reset bounding box
|
||||
m_dirty_face[i] = false;
|
||||
|
||||
if (l->m_dirty_face[i])
|
||||
{
|
||||
m_tmp[i].bindFramebuffer();
|
||||
// clear
|
||||
m_tmp[i].clear();
|
||||
glActiveTexture(GL_TEXTURE1);
|
||||
m_tex[i].bind();
|
||||
glCopyTexSubImage2D(GL_TEXTURE_2D, 0,
|
||||
0, 0, 0, 0, m_width, m_height);
|
||||
|
||||
m_tmp[i].copy(l->m_rtt[i]);
|
||||
m_tmp[i].clear_mask({ 0, 0, 0, 1 });
|
||||
m_tmp[i].unbindFramebuffer();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_tmp[i].bindFramebuffer();
|
||||
m_tmp[i].clear({ 0, 0, 0, 0 });
|
||||
m_tmp[i].unbindFramebuffer();
|
||||
}
|
||||
m_tmp[i].bindFramebuffer();
|
||||
m_tmp[i].clear({ 0, 0, 0, 0 });
|
||||
m_tmp[i].unbindFramebuffer();
|
||||
|
||||
if (m_current_brush->m_dual_enabled)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user