fix stroke shader with better blending and initial support to opacity
This commit is contained in:
@@ -49,7 +49,7 @@ void ui::Canvas::stroke_draw()
|
||||
tex.bind();
|
||||
m_sampler.bind(0);
|
||||
glActiveTexture(GL_TEXTURE1);
|
||||
m_tex.bind();
|
||||
m_tex.bind(); // bg, copy of framebuffer (copied before drawing)
|
||||
m_sampler_bg.bind(1);
|
||||
|
||||
if (m_use_instanced)
|
||||
@@ -65,8 +65,8 @@ void ui::Canvas::stroke_draw()
|
||||
glDisable(GL_BLEND);
|
||||
ShaderManager::use(ui::kShader::Stroke);
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, m_brush.m_tip_color);
|
||||
ShaderManager::u_int(kShaderUniform::Tex, 0);
|
||||
ShaderManager::u_int(kShaderUniform::TexBG, 1);
|
||||
ShaderManager::u_int(kShaderUniform::Tex, 0); // brush
|
||||
ShaderManager::u_int(kShaderUniform::TexBG, 1); // bg
|
||||
ShaderManager::u_vec2(kShaderUniform::Resolution, { m_width, m_height });
|
||||
for (const auto& s : samples)
|
||||
{
|
||||
@@ -158,7 +158,7 @@ void ui::Canvas::stroke_commit()
|
||||
ShaderManager::use(ui::kShader::StrokeLayer);
|
||||
ShaderManager::u_int(kShaderUniform::Tex, 0);
|
||||
ShaderManager::u_int(kShaderUniform::TexBG, 1);
|
||||
//ShaderManager::u_float(kShaderUniform::Alpha, 1); // TODO: if using opacity in commit, update blending to match the preview when rendering m_tmp in NodeCanvas
|
||||
ShaderManager::u_float(kShaderUniform::Alpha, .5); // TODO: if using opacity in commit, update blending to match the preview when rendering m_tmp in NodeCanvas
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP, glm::ortho(-.5f, .5f, -.5f, .5f, -1.f, 1.f));
|
||||
m_plane.draw_fill();
|
||||
m_sampler.unbind();
|
||||
|
||||
Reference in New Issue
Block a user