move brush opacity from comp to stroke
This commit is contained in:
@@ -66,7 +66,6 @@ void App::vr_draw(const glm::mat4& proj, const glm::mat4& camera, const glm::mat
|
||||
ShaderManager::u_int(kShaderUniform::Tex, 0);
|
||||
ShaderManager::u_int(kShaderUniform::TexStroke, 1);
|
||||
ShaderManager::u_int(kShaderUniform::TexMask, 2);
|
||||
ShaderManager::u_float(kShaderUniform::StrokeAlpha, canvas->m_canvas->m_current_stroke->m_brush->m_tip_opacity);
|
||||
ShaderManager::u_float(kShaderUniform::Alpha, canvas->m_canvas->m_layers[layer_index]->m_opacity);
|
||||
//ShaderManager::u_int(kShaderUniform::Lock, m_canvas->m_layers[layer_index]->m_alpha_locked);
|
||||
ShaderManager::u_int(kShaderUniform::Mask, canvas->m_canvas->m_smask_active);
|
||||
@@ -99,7 +98,6 @@ void App::vr_draw(const glm::mat4& proj, const glm::mat4& camera, const glm::mat
|
||||
ShaderManager::u_int(kShaderUniform::TexMask, 2);
|
||||
ShaderManager::u_vec2(kShaderUniform::Resolution, canvas->m_canvas->m_size);
|
||||
ShaderManager::u_int(kShaderUniform::TexPattern, 3);
|
||||
ShaderManager::u_float(kShaderUniform::StrokeAlpha, b->m_tip_opacity);
|
||||
ShaderManager::u_float(kShaderUniform::Alpha, canvas->m_canvas->m_layers[layer_index]->m_opacity);
|
||||
ShaderManager::u_int(kShaderUniform::Lock, canvas->m_canvas->m_layers[layer_index]->m_alpha_locked);
|
||||
ShaderManager::u_int(kShaderUniform::Mask, canvas->m_canvas->m_smask_active);
|
||||
|
||||
@@ -248,7 +248,6 @@ void Canvas::stroke_draw_mix(const glm::vec2& bb_min, const glm::vec2& bb_sz)
|
||||
ShaderManager::u_int(kShaderUniform::TexMask, 2);
|
||||
ShaderManager::u_vec2(kShaderUniform::Resolution, m_size);
|
||||
ShaderManager::u_int(kShaderUniform::TexPattern, 3);
|
||||
ShaderManager::u_float(kShaderUniform::StrokeAlpha, b->m_tip_opacity);
|
||||
ShaderManager::u_float(kShaderUniform::Alpha, 1);
|
||||
ShaderManager::u_int(kShaderUniform::Lock, false/*m_layers[layer_index]->m_alpha_locked*/);
|
||||
ShaderManager::u_int(kShaderUniform::Mask, false/*m_smask_active*/);
|
||||
@@ -495,6 +494,7 @@ void Canvas::stroke_draw()
|
||||
ShaderManager::u_int(kShaderUniform::TexPattern, 2); // pattern
|
||||
ShaderManager::u_int(kShaderUniform::TexMix, 3); // mixer
|
||||
//ShaderManager::u_int(kShaderUniform::TexMixA, 4); // mixer
|
||||
ShaderManager::u_float(kShaderUniform::Opacity, brush->m_tip_opacity);
|
||||
ShaderManager::u_vec2(kShaderUniform::Resolution, { m_width, m_height });
|
||||
ShaderManager::u_vec2(kShaderUniform::PatternScale, patt_scale);
|
||||
ShaderManager::u_float(kShaderUniform::PatternInvert, brush->m_pattern_invert);
|
||||
@@ -529,6 +529,7 @@ void Canvas::stroke_draw()
|
||||
ShaderManager::use(kShader::Stroke);
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, f.col);
|
||||
ShaderManager::u_float(kShaderUniform::Alpha, f.pressure);
|
||||
//ShaderManager::u_float(kShaderUniform::Opacity, f.opacity); // per-tip opacity
|
||||
for (int i = 0; i < 6; i++)
|
||||
{
|
||||
auto& P = f.shapes[i];
|
||||
@@ -548,12 +549,14 @@ void Canvas::stroke_draw()
|
||||
|
||||
// DRAW DUAL BRUSH
|
||||
|
||||
ShaderManager::u_int(kShaderUniform::UsePattern, false);
|
||||
ShaderManager::u_float(kShaderUniform::MixAlpha, 0);
|
||||
ShaderManager::u_float(kShaderUniform::Wet, 0);
|
||||
ShaderManager::u_float(kShaderUniform::Noise, 0);
|
||||
if (brush->m_dual_enabled)
|
||||
{
|
||||
ShaderManager::u_int(kShaderUniform::UsePattern, false);
|
||||
ShaderManager::u_float(kShaderUniform::Opacity, brush->m_dual_opacity);
|
||||
ShaderManager::u_float(kShaderUniform::MixAlpha, 0);
|
||||
ShaderManager::u_float(kShaderUniform::Wet, 0);
|
||||
ShaderManager::u_float(kShaderUniform::Noise, 0);
|
||||
|
||||
glActiveTexture(GL_TEXTURE0);
|
||||
dual_brush->m_tip_texture->bind();
|
||||
auto frames_dual = stroke_draw_compute(*m_dual_stroke);
|
||||
@@ -562,6 +565,7 @@ void Canvas::stroke_draw()
|
||||
ShaderManager::use(kShader::Stroke);
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, f.col);
|
||||
ShaderManager::u_float(kShaderUniform::Alpha, f.pressure);
|
||||
//ShaderManager::u_float(kShaderUniform::Opacity, f.opacity); // per-tip opacity
|
||||
for (int i = 0; i < 6; i++)
|
||||
{
|
||||
auto& P = f.shapes[i];
|
||||
@@ -769,7 +773,6 @@ void Canvas::stroke_commit()
|
||||
ShaderManager::u_int(kShaderUniform::TexStroke, 1);
|
||||
ShaderManager::u_int(kShaderUniform::TexMask, 2);
|
||||
ShaderManager::u_int(kShaderUniform::Mask, m_smask_active);
|
||||
ShaderManager::u_float(kShaderUniform::StrokeAlpha, b->m_tip_opacity);
|
||||
ShaderManager::u_float(kShaderUniform::Alpha, 1);
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP, glm::ortho(-.5f, .5f, -.5f, .5f, -1.f, 1.f));
|
||||
|
||||
@@ -799,7 +802,6 @@ void Canvas::stroke_commit()
|
||||
ShaderManager::u_int(kShaderUniform::TexDual, 3);
|
||||
ShaderManager::u_int(kShaderUniform::TexPattern, 4);
|
||||
ShaderManager::u_vec2(kShaderUniform::Resolution, m_size);
|
||||
ShaderManager::u_float(kShaderUniform::StrokeAlpha, b->m_tip_opacity);
|
||||
ShaderManager::u_float(kShaderUniform::Alpha, 1);
|
||||
ShaderManager::u_int(kShaderUniform::Mask, m_smask_active);
|
||||
//ShaderManager::u_int(kShaderUniform::DrawOnScreen, false);
|
||||
@@ -1020,7 +1022,6 @@ void Canvas::layer_merge(int source_idx, int dest_idx) // m_layer index
|
||||
ShaderManager::u_int(kShaderUniform::Tex, 0); // dest
|
||||
ShaderManager::u_int(kShaderUniform::TexStroke, 1); // source
|
||||
ShaderManager::u_vec2(kShaderUniform::Resolution, m_size);
|
||||
ShaderManager::u_float(kShaderUniform::StrokeAlpha, 1);
|
||||
ShaderManager::u_float(kShaderUniform::PatternAlpha, 0);
|
||||
ShaderManager::u_float(kShaderUniform::Alpha, m_layers[source_idx]->m_opacity);
|
||||
ShaderManager::u_int(kShaderUniform::Lock, false);
|
||||
|
||||
@@ -1157,7 +1157,6 @@ void CanvasModeTransform::leave()
|
||||
ShaderManager::u_int(kShaderUniform::TexStroke, 1);
|
||||
ShaderManager::u_int(kShaderUniform::TexMask, 2);
|
||||
ShaderManager::u_float(kShaderUniform::Alpha, 1);
|
||||
ShaderManager::u_float(kShaderUniform::StrokeAlpha, 1);
|
||||
ShaderManager::u_int(kShaderUniform::Lock, false);
|
||||
ShaderManager::u_int(kShaderUniform::Mask, false);
|
||||
ShaderManager::u_vec2(kShaderUniform::Resolution, Canvas::I->m_size);
|
||||
|
||||
@@ -182,7 +182,6 @@ void NodeCanvas::draw()
|
||||
ShaderManager::u_int(kShaderUniform::TexStroke, 1);
|
||||
ShaderManager::u_int(kShaderUniform::TexMask, 2);
|
||||
//ShaderManager::u_vec2(kShaderUniform::Resolution, zw(m_canvas->m_box) / zoom);
|
||||
ShaderManager::u_float(kShaderUniform::StrokeAlpha, b->m_tip_opacity);
|
||||
ShaderManager::u_float(kShaderUniform::Alpha, m_canvas->m_layers[layer_index]->m_opacity);
|
||||
//ShaderManager::u_int(kShaderUniform::Lock, m_canvas->m_layers[layer_index]->m_alpha_locked);
|
||||
ShaderManager::u_int(kShaderUniform::Mask, m_canvas->m_smask_active);
|
||||
@@ -215,7 +214,6 @@ void NodeCanvas::draw()
|
||||
ShaderManager::u_int(kShaderUniform::TexDual, 3);
|
||||
ShaderManager::u_vec2(kShaderUniform::Resolution, Canvas::I->m_size);
|
||||
ShaderManager::u_int(kShaderUniform::TexPattern, 4);
|
||||
ShaderManager::u_float(kShaderUniform::StrokeAlpha, b->m_tip_opacity);
|
||||
ShaderManager::u_float(kShaderUniform::Alpha, m_canvas->m_layers[layer_index]->m_opacity);
|
||||
ShaderManager::u_int(kShaderUniform::Lock, m_canvas->m_layers[layer_index]->m_alpha_locked);
|
||||
ShaderManager::u_int(kShaderUniform::Mask, m_canvas->m_smask_active);
|
||||
|
||||
@@ -80,7 +80,6 @@ void NodeStrokePreview::stroke_draw_mix(const glm::vec2& bb_min, const glm::vec2
|
||||
ShaderManager::u_int(kShaderUniform::TexDual, 3);
|
||||
ShaderManager::u_int(kShaderUniform::TexPattern, 4);
|
||||
ShaderManager::u_vec2(kShaderUniform::Resolution, m_size);
|
||||
ShaderManager::u_float(kShaderUniform::StrokeAlpha, b->m_tip_opacity);
|
||||
ShaderManager::u_float(kShaderUniform::Alpha, 1);
|
||||
ShaderManager::u_int(kShaderUniform::Lock, false);
|
||||
ShaderManager::u_int(kShaderUniform::Mask, false);
|
||||
@@ -320,6 +319,7 @@ void NodeStrokePreview::draw_stroke()
|
||||
m_rtt.clear();
|
||||
ShaderManager::use(kShader::Stroke);
|
||||
ShaderManager::u_int(kShaderUniform::UsePattern, false);
|
||||
ShaderManager::u_float(kShaderUniform::Opacity, b->m_dual_opacity);
|
||||
ShaderManager::u_float(kShaderUniform::MixAlpha, 0);
|
||||
ShaderManager::u_float(kShaderUniform::Wet, 0);
|
||||
ShaderManager::u_float(kShaderUniform::Noise, 0);
|
||||
@@ -328,8 +328,9 @@ void NodeStrokePreview::draw_stroke()
|
||||
auto frames_dual = stroke_draw_compute(m_dual_stroke);
|
||||
for (auto& f : frames_dual)
|
||||
{
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, f.col);
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, { 0, 0, 0, 1 });
|
||||
ShaderManager::u_float(kShaderUniform::Alpha, f.pressure);
|
||||
//ShaderManager::u_float(kShaderUniform::Opacity, f.opacity); // per sample opacity
|
||||
auto rect = stroke_draw_samples(f.shapes, m_tex_dual);
|
||||
}
|
||||
glActiveTexture(GL_TEXTURE0);
|
||||
@@ -344,6 +345,7 @@ void NodeStrokePreview::draw_stroke()
|
||||
// DRAW MAIN BRUSH
|
||||
|
||||
ShaderManager::use(kShader::Stroke);
|
||||
ShaderManager::u_float(kShaderUniform::Opacity, b->m_tip_opacity);
|
||||
ShaderManager::u_float(kShaderUniform::MixAlpha, b->m_tip_mix);
|
||||
ShaderManager::u_float(kShaderUniform::Wet, b->m_tip_wet);
|
||||
ShaderManager::u_float(kShaderUniform::Noise, b->m_tip_noise);
|
||||
@@ -369,6 +371,7 @@ void NodeStrokePreview::draw_stroke()
|
||||
ShaderManager::use(kShader::Stroke);
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, { 0, 0, 0, 1 } /*f.col*/);
|
||||
ShaderManager::u_float(kShaderUniform::Alpha, glm::max(f.pressure, m_min_flow));
|
||||
//ShaderManager::u_float(kShaderUniform::Opacity, f.opacity); // per sample opacity
|
||||
auto rect = stroke_draw_samples(f.shapes, m_tex);
|
||||
}
|
||||
glActiveTexture(GL_TEXTURE3);
|
||||
@@ -400,7 +403,6 @@ void NodeStrokePreview::draw_stroke()
|
||||
ShaderManager::u_int(kShaderUniform::TexDual, 3);
|
||||
ShaderManager::u_int(kShaderUniform::TexPattern, 4);
|
||||
ShaderManager::u_vec2(kShaderUniform::Resolution, size);
|
||||
ShaderManager::u_float(kShaderUniform::StrokeAlpha, b->m_tip_opacity);
|
||||
ShaderManager::u_float(kShaderUniform::Alpha, 1);
|
||||
//ShaderManager::u_int(kShaderUniform::DrawOnScreen, false);
|
||||
ShaderManager::u_int(kShaderUniform::Mask, false);
|
||||
|
||||
@@ -17,7 +17,7 @@ enum class kShaderUniform : uint16_t
|
||||
PatternOffset = const_hash("pattern_offset"),
|
||||
PatternAlpha = const_hash("pattern_alpha"),
|
||||
MixAlpha = const_hash("mix_alpha"),
|
||||
StrokeAlpha = const_hash("stroke_alpha"),
|
||||
Opacity = const_hash("opacity"),
|
||||
Wet = const_hash("wet"),
|
||||
Lock = const_hash("lock"),
|
||||
Col = const_hash("col"),
|
||||
|
||||
Reference in New Issue
Block a user