fix border clamp problem, add tmp layer special blending on stroke commit
This commit is contained in:
@@ -1851,6 +1851,7 @@ class NodeCanvas : public Node
|
||||
public:
|
||||
std::unique_ptr<ui::Canvas> m_canvas;
|
||||
ui::Brush m_brush;
|
||||
Sampler m_sampler;
|
||||
virtual Node* clone_instantiate() const override { return new NodeCanvas(); }
|
||||
virtual void init() override
|
||||
{
|
||||
@@ -1858,6 +1859,7 @@ public:
|
||||
m_canvas = std::make_unique<ui::Canvas>();
|
||||
m_canvas->create(512, 512);
|
||||
m_canvas->clear();
|
||||
m_sampler.create();
|
||||
}
|
||||
virtual void draw() override
|
||||
{
|
||||
@@ -1884,12 +1886,12 @@ public:
|
||||
glm::scale(glm::vec3(sz * zoom, 1)) *
|
||||
glm::translate(glm::vec3(.5f, .5f, 0.f)); // pivot
|
||||
|
||||
m_canvas->m_sampler.bind(0);
|
||||
m_sampler.bind(0);
|
||||
ui::ShaderManager::use(kShader::Texture);
|
||||
ui::ShaderManager::u_int(kShaderUniform::Tex, 0);
|
||||
ui::ShaderManager::u_mat4(kShaderUniform::MVP, mvp);
|
||||
|
||||
bool blend = glIsEnabled(GL_BLEND);
|
||||
auto blend = glIsEnabled(GL_BLEND);
|
||||
|
||||
glEnable(GL_BLEND);
|
||||
m_canvas->m_fb.bindTexture();
|
||||
@@ -1906,7 +1908,7 @@ public:
|
||||
|
||||
blend ? glEnable(GL_BLEND) : glDisable(GL_BLEND);
|
||||
|
||||
m_canvas->m_sampler.unbind();
|
||||
m_sampler.unbind();
|
||||
|
||||
|
||||
glViewport(vp[0], vp[1], vp[2], vp[3]);
|
||||
|
||||
Reference in New Issue
Block a user