From aa317dcc22b7dffb83686b2cd11a1a837a822bff Mon Sep 17 00:00:00 2001 From: omigamedev Date: Sun, 17 Nov 2019 12:38:13 +0100 Subject: [PATCH] fix stroke preview mixer render with framebuffer-fetch ext --- src/node_stroke_preview.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/node_stroke_preview.cpp b/src/node_stroke_preview.cpp index a9fd885..b80db00 100644 --- a/src/node_stroke_preview.cpp +++ b/src/node_stroke_preview.cpp @@ -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& 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& 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& 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*/);