all blending modes for pattern and dual brush
This commit is contained in:
@@ -24,14 +24,12 @@ public:
|
||||
BinaryStream() = default;
|
||||
~BinaryStream()
|
||||
{
|
||||
if (m_ptr)
|
||||
delete m_ptr;
|
||||
m_ptr = m_cur = nullptr;
|
||||
m_size = 0;
|
||||
}
|
||||
void init(uint8_t* owned_data_ptr, size_t size, ByteOrder byte_order = ByteOrder::Host)
|
||||
void init(uint8_t* data_ptr, size_t size, ByteOrder byte_order = ByteOrder::Host)
|
||||
{
|
||||
m_ptr = m_cur = owned_data_ptr;
|
||||
m_ptr = m_cur = data_ptr;
|
||||
m_size = size;
|
||||
m_byte_order = byte_order;
|
||||
m_swap = byte_order == ByteOrder::Host ? false : byte_order != sys_order();
|
||||
|
||||
@@ -112,6 +112,7 @@ void App::vr_draw(const glm::mat4& proj, const glm::mat4& camera, const glm::mat
|
||||
ShaderManager::u_float(kShaderUniform::PatternBright, b->m_pattern_brightness);
|
||||
ShaderManager::u_float(kShaderUniform::PatternContrast, b->m_pattern_contrast);
|
||||
ShaderManager::u_float(kShaderUniform::PatternDepth, b->m_pattern_depth);
|
||||
ShaderManager::u_int(kShaderUniform::PatternBlendMode, b->m_pattern_blend_mode);
|
||||
ShaderManager::u_vec2(kShaderUniform::PatternOffset, Canvas::I->m_pattern_offset);
|
||||
|
||||
glActiveTexture(GL_TEXTURE0);
|
||||
|
||||
@@ -52,7 +52,7 @@ public:
|
||||
bool m_tip_flipy = false;
|
||||
bool m_pattern_enabled = false;
|
||||
bool m_dual_enabled = false;
|
||||
int m_dual_blend_mode = 0;
|
||||
int m_dual_blend_mode = 1;
|
||||
bool m_dual_randflip = false;
|
||||
float m_dual_size = .25;
|
||||
float m_dual_spacing = .25;
|
||||
@@ -68,7 +68,7 @@ public:
|
||||
float m_dual_opacity = 1.f;
|
||||
float m_dual_rotate = .25f;
|
||||
|
||||
int m_pattern_blend_mode = 0;
|
||||
int m_pattern_blend_mode = 1;
|
||||
bool m_pattern_eachsample = false;
|
||||
bool m_pattern_invert = false;
|
||||
bool m_pattern_flipx = false;
|
||||
|
||||
@@ -500,6 +500,7 @@ void Canvas::stroke_draw()
|
||||
ShaderManager::u_float(kShaderUniform::PatternBright, brush->m_pattern_brightness);
|
||||
ShaderManager::u_float(kShaderUniform::PatternContrast, brush->m_pattern_contrast);
|
||||
ShaderManager::u_float(kShaderUniform::PatternDepth, brush->m_pattern_depth);
|
||||
ShaderManager::u_int(kShaderUniform::PatternBlendMode, brush->m_pattern_blend_mode);
|
||||
ShaderManager::u_vec2(kShaderUniform::PatternOffset, m_pattern_offset);
|
||||
ShaderManager::u_int(kShaderUniform::UsePattern, brush->m_pattern_enabled && brush->m_pattern_eachsample);
|
||||
ShaderManager::u_float(kShaderUniform::MixAlpha, brush->m_tip_mix);
|
||||
@@ -810,6 +811,7 @@ void Canvas::stroke_commit()
|
||||
ShaderManager::u_float(kShaderUniform::PatternBright, b->m_pattern_brightness);
|
||||
ShaderManager::u_float(kShaderUniform::PatternContrast, b->m_pattern_contrast);
|
||||
ShaderManager::u_float(kShaderUniform::PatternDepth, b->m_pattern_depth);
|
||||
ShaderManager::u_int(kShaderUniform::PatternBlendMode, b->m_pattern_blend_mode);
|
||||
ShaderManager::u_vec2(kShaderUniform::PatternOffset, m_pattern_offset);
|
||||
ShaderManager::u_float(kShaderUniform::DualAlpha, b->m_dual_opacity);
|
||||
|
||||
|
||||
@@ -229,6 +229,7 @@ void NodeCanvas::draw()
|
||||
ShaderManager::u_float(kShaderUniform::PatternBright, b->m_pattern_brightness);
|
||||
ShaderManager::u_float(kShaderUniform::PatternContrast, b->m_pattern_contrast);
|
||||
ShaderManager::u_float(kShaderUniform::PatternDepth, b->m_pattern_depth);
|
||||
ShaderManager::u_int(kShaderUniform::PatternBlendMode, b->m_pattern_blend_mode);
|
||||
ShaderManager::u_vec2(kShaderUniform::PatternOffset, Canvas::I->m_pattern_offset);
|
||||
ShaderManager::u_float(kShaderUniform::DualAlpha, b->m_dual_opacity);
|
||||
|
||||
|
||||
@@ -95,6 +95,7 @@ void NodeStrokePreview::stroke_draw_mix(const glm::vec2& bb_min, const glm::vec2
|
||||
ShaderManager::u_float(kShaderUniform::PatternBright, b->m_pattern_brightness);
|
||||
ShaderManager::u_float(kShaderUniform::PatternContrast, b->m_pattern_contrast);
|
||||
ShaderManager::u_float(kShaderUniform::PatternDepth, b->m_pattern_depth);
|
||||
ShaderManager::u_int(kShaderUniform::PatternBlendMode, b->m_pattern_blend_mode);
|
||||
ShaderManager::u_vec2(kShaderUniform::PatternOffset, glm::vec2(b->m_pattern_rand_offset ? 0.5f : 0.0f));
|
||||
ShaderManager::u_float(kShaderUniform::DualAlpha, b->m_dual_opacity);
|
||||
|
||||
@@ -302,6 +303,7 @@ void NodeStrokePreview::draw_stroke()
|
||||
ShaderManager::u_float(kShaderUniform::PatternBright, b->m_pattern_brightness);
|
||||
ShaderManager::u_float(kShaderUniform::PatternContrast, b->m_pattern_contrast);
|
||||
ShaderManager::u_float(kShaderUniform::PatternDepth, b->m_pattern_depth);
|
||||
ShaderManager::u_int(kShaderUniform::PatternBlendMode, b->m_pattern_blend_mode);
|
||||
ShaderManager::u_vec2(kShaderUniform::PatternOffset, glm::vec2(b->m_pattern_rand_offset ? 0.5f : 0.0f));
|
||||
ShaderManager::u_int(kShaderUniform::UsePattern, b->m_pattern_enabled && b->m_pattern_eachsample);
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP, ortho_proj);
|
||||
@@ -405,6 +407,7 @@ void NodeStrokePreview::draw_stroke()
|
||||
ShaderManager::u_float(kShaderUniform::PatternBright, b->m_pattern_brightness);
|
||||
ShaderManager::u_float(kShaderUniform::PatternContrast, b->m_pattern_contrast);
|
||||
ShaderManager::u_float(kShaderUniform::PatternDepth, b->m_pattern_depth);
|
||||
ShaderManager::u_int(kShaderUniform::PatternBlendMode, b->m_pattern_blend_mode);
|
||||
ShaderManager::u_vec2(kShaderUniform::PatternOffset, glm::vec2(b->m_pattern_rand_offset ? 0.5f : 0.0f));
|
||||
ShaderManager::u_float(kShaderUniform::DualAlpha, b->m_dual_opacity);
|
||||
|
||||
|
||||
@@ -41,6 +41,7 @@ enum class kShaderUniform : uint16_t
|
||||
PatternBright = const_hash("pattern_bright"),
|
||||
PatternContrast = const_hash("pattern_contr"),
|
||||
PatternDepth = const_hash("pattern_depth"),
|
||||
PatternBlendMode = const_hash("patt_blend_mode"),
|
||||
Colorize = const_hash("colorize"),
|
||||
DualAlpha = const_hash("dual_alpha"),
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user