fix stroke preview mixer render with framebuffer-fetch ext

This commit is contained in:
2019-11-17 12:38:13 +01:00
parent 983f4fd7f7
commit aa317dcc22

View File

@@ -144,7 +144,7 @@ void NodeStrokePreview::stroke_draw_mix(const glm::vec2& bb_min, const glm::vec2
glm::vec4 NodeStrokePreview::stroke_draw_samples(std::array<vertex_t, 4>& P, Texture2D& blend_tex)
{
if (!ShaderManager::ext_framebuffer_fetch)
//if (!ShaderManager::ext_framebuffer_fetch)
{
glActiveTexture(GL_TEXTURE1);
blend_tex.bind(); // bg, copy of framebuffer (copied before drawing)
@@ -164,8 +164,9 @@ glm::vec4 NodeStrokePreview::stroke_draw_samples(std::array<vertex_t, 4>& P, Tex
glm::vec2 pad(1);
glm::ivec2 tex_pos = glm::clamp(glm::floor(bb_min) - pad, { 0, 0 }, size);
glm::ivec2 tex_sz = glm::clamp(glm::ceil(bb_sz) + pad * 2.f, { 0, 0 }, (glm::vec2)(glm::ivec2(size) - tex_pos));
if (!ShaderManager::ext_framebuffer_fetch)
//if (!ShaderManager::ext_framebuffer_fetch)
{
// this is also used by the mixer
glCopyTexSubImage2D(GL_TEXTURE_2D, 0, tex_pos.x, tex_pos.y,
tex_pos.x, tex_pos.y, tex_sz.x, tex_sz.y);
}
@@ -183,7 +184,7 @@ glm::vec4 NodeStrokePreview::stroke_draw_samples(std::array<vertex_t, 4>& P, Tex
}
m_brush_shape.draw_fill();
if (!ShaderManager::ext_framebuffer_fetch)
//if (!ShaderManager::ext_framebuffer_fetch)
{
glActiveTexture(GL_TEXTURE1);
blend_tex.unbind();
@@ -431,7 +432,7 @@ void NodeStrokePreview::draw_stroke_immediate()
}
ShaderManager::use(kShader::Stroke);
if (b->m_blend_mode != 0)
if (b->m_blend_mode != 0 || b->m_tip_mix > 0.f)
ShaderManager::u_vec4(kShaderUniform::Col, { .7, .4, .1, 1 } /*f.col*/);
else
ShaderManager::u_vec4(kShaderUniform::Col, { 0, 0, 0, 1 } /*f.col*/);