From cbfcd66bfc782080c0ef1cc11a7c2db4227aa87c Mon Sep 17 00:00:00 2001 From: omigamedev Date: Tue, 26 Feb 2019 00:30:10 +0100 Subject: [PATCH] restore use fragcoord to fix import/transform --- data/shaders/comp-draw.glsl | 6 +++--- src/app_vr.cpp | 2 +- src/canvas.cpp | 6 +++--- src/canvas_modes.cpp | 2 +- src/node_canvas.cpp | 2 +- src/node_stroke_preview.cpp | 4 ++-- src/shader.cpp | 2 +- src/shader.h | 2 +- 8 files changed, 13 insertions(+), 13 deletions(-) diff --git a/data/shaders/comp-draw.glsl b/data/shaders/comp-draw.glsl index 3eef859..d71f0fd 100644 --- a/data/shaders/comp-draw.glsl +++ b/data/shaders/comp-draw.glsl @@ -27,7 +27,7 @@ uniform int blend_mode; uniform mediump vec2 resolution; uniform bool lock; uniform bool mask; -uniform bool draw_on_screen; +uniform bool use_fragcoord; uniform bool use_dual; uniform sampler2D tex_dual; @@ -49,7 +49,8 @@ out mediump vec4 frag; void main() { - mediump vec4 base = texture(tex, uv); + mediump vec2 uv_base = use_fragcoord ? gl_FragCoord.st / resolution : uv; + mediump vec4 base = texture(tex, uv_base); mediump vec4 stroke = texture(tex_stroke, uv); if (stroke.a == 0.0) @@ -60,7 +61,6 @@ void main() if (use_pattern) { - //mediump vec2 uv2 = draw_on_screen ? gl_FragCoord.st / resolution : uv; mediump vec2 rscale = resolution / vec2(512.0); mediump float patt = texture(tex_pattern, uv * (1.0 / pattern_scale) * rscale + pattern_offset).r; if (pattern_invert) diff --git a/src/app_vr.cpp b/src/app_vr.cpp index 8807350..0b4a308 100644 --- a/src/app_vr.cpp +++ b/src/app_vr.cpp @@ -101,7 +101,7 @@ void App::vr_draw(const glm::mat4& proj, const glm::mat4& camera, const glm::mat 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); - //ShaderManager::u_int(kShaderUniform::DrawOnScreen, true); + ShaderManager::u_int(kShaderUniform::UseFragcoord, false); ShaderManager::u_int(kShaderUniform::BlendMode, b->m_blend_mode); ShaderManager::u_int(kShaderUniform::UseDual, false); ShaderManager::u_int(kShaderUniform::UsePattern, b->m_pattern_enabled && !b->m_pattern_eachsample); diff --git a/src/canvas.cpp b/src/canvas.cpp index ec6bc64..5eb6657 100644 --- a/src/canvas.cpp +++ b/src/canvas.cpp @@ -251,7 +251,7 @@ void Canvas::stroke_draw_mix(const glm::vec2& bb_min, const glm::vec2& bb_sz) 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*/); - //ShaderManager::u_int(kShaderUniform::DrawOnScreen, false); + ShaderManager::u_int(kShaderUniform::UseFragcoord, false); ShaderManager::u_int(kShaderUniform::UseDual, false); ShaderManager::u_int(kShaderUniform::UsePattern, false); ShaderManager::u_int(kShaderUniform::BlendMode, b->m_blend_mode); @@ -803,7 +803,7 @@ void Canvas::stroke_commit() ShaderManager::u_vec2(kShaderUniform::Resolution, m_size); ShaderManager::u_float(kShaderUniform::Alpha, 1); ShaderManager::u_int(kShaderUniform::Mask, m_smask_active); - //ShaderManager::u_int(kShaderUniform::DrawOnScreen, false); + ShaderManager::u_int(kShaderUniform::UseFragcoord, false); ShaderManager::u_int(kShaderUniform::BlendMode, b->m_blend_mode); ShaderManager::u_mat4(kShaderUniform::MVP, glm::ortho(-.5f, .5f, -.5f, .5f, -1.f, 1.f)); ShaderManager::u_int(kShaderUniform::UseDual, b->m_dual_enabled); @@ -1024,7 +1024,7 @@ void Canvas::layer_merge(int source_idx, int dest_idx) // m_layer index ShaderManager::u_float(kShaderUniform::PatternAlpha, 0); ShaderManager::u_float(kShaderUniform::Alpha, m_layers[source_idx]->m_opacity); ShaderManager::u_int(kShaderUniform::Lock, false); - //ShaderManager::u_int(kShaderUniform::DrawOnScreen, false); + ShaderManager::u_int(kShaderUniform::UseFragcoord, false); ShaderManager::u_int(kShaderUniform::BlendMode, m_layers[source_idx]->m_blend_mode); ShaderManager::u_mat4(kShaderUniform::MVP, glm::ortho(-.5f, .5f, -.5f, .5f, -1.f, 1.f)); ShaderManager::u_int(kShaderUniform::UseDual, false); diff --git a/src/canvas_modes.cpp b/src/canvas_modes.cpp index 37d90bd..888b1c9 100644 --- a/src/canvas_modes.cpp +++ b/src/canvas_modes.cpp @@ -1156,11 +1156,11 @@ void CanvasModeTransform::leave() ShaderManager::u_int(kShaderUniform::Tex, 0); ShaderManager::u_int(kShaderUniform::TexStroke, 1); ShaderManager::u_float(kShaderUniform::Alpha, 1); + ShaderManager::u_int(kShaderUniform::UseFragcoord, true); ShaderManager::u_int(kShaderUniform::Lock, false); ShaderManager::u_int(kShaderUniform::Mask, false); ShaderManager::u_vec2(kShaderUniform::Resolution, Canvas::I->m_size); ShaderManager::u_int(kShaderUniform::BlendMode, 0); - //ShaderManager::u_int(kShaderUniform::DrawOnScreen, false); ShaderManager::u_int(kShaderUniform::UseDual, false); ShaderManager::u_int(kShaderUniform::UsePattern, false); diff --git a/src/node_canvas.cpp b/src/node_canvas.cpp index cca1f3f..b7c1167 100644 --- a/src/node_canvas.cpp +++ b/src/node_canvas.cpp @@ -217,7 +217,7 @@ void NodeCanvas::draw() 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); - //ShaderManager::u_int(kShaderUniform::DrawOnScreen, true); + ShaderManager::u_int(kShaderUniform::UseFragcoord, false); ShaderManager::u_int(kShaderUniform::BlendMode, b->m_blend_mode); ShaderManager::u_mat4(kShaderUniform::MVP, plane_mvp_z); ShaderManager::u_int(kShaderUniform::UseDual, b->m_dual_enabled); diff --git a/src/node_stroke_preview.cpp b/src/node_stroke_preview.cpp index 85187b1..0dd304d 100644 --- a/src/node_stroke_preview.cpp +++ b/src/node_stroke_preview.cpp @@ -83,7 +83,7 @@ void NodeStrokePreview::stroke_draw_mix(const glm::vec2& bb_min, const glm::vec2 ShaderManager::u_float(kShaderUniform::Alpha, 1); ShaderManager::u_int(kShaderUniform::Lock, false); ShaderManager::u_int(kShaderUniform::Mask, false); - //ShaderManager::u_int(kShaderUniform::DrawOnScreen, false); + ShaderManager::u_int(kShaderUniform::UseFragcoord, false); ShaderManager::u_int(kShaderUniform::BlendMode, b->m_blend_mode); ShaderManager::u_mat4(kShaderUniform::MVP, glm::ortho(-.5f, .5f, -.5f, .5f, -1.f, 1.f)); ShaderManager::u_int(kShaderUniform::UseDual, b->m_dual_enabled); @@ -404,7 +404,7 @@ void NodeStrokePreview::draw_stroke() ShaderManager::u_int(kShaderUniform::TexPattern, 4); ShaderManager::u_vec2(kShaderUniform::Resolution, size); ShaderManager::u_float(kShaderUniform::Alpha, 1); - //ShaderManager::u_int(kShaderUniform::DrawOnScreen, false); + ShaderManager::u_int(kShaderUniform::UseFragcoord, false); ShaderManager::u_int(kShaderUniform::Mask, false); ShaderManager::u_int(kShaderUniform::BlendMode, b->m_blend_mode); ShaderManager::u_mat4(kShaderUniform::MVP, glm::ortho(-.5f, .5f, -.5f, .5f, -1.f, 1.f)); diff --git a/src/shader.cpp b/src/shader.cpp index f0052ac..55874b6 100644 --- a/src/shader.cpp +++ b/src/shader.cpp @@ -439,7 +439,7 @@ bool check_uniform_uniqueness() const_hash("patt_blend_mode"), const_hash("colorize"), const_hash("dual_alpha"), - const_hash("draw_on_screen"), + const_hash("use_fragcoord"), }; std::sort(v.begin(), v.end()); int last = 0; diff --git a/src/shader.h b/src/shader.h index b0f2c35..648bd31 100644 --- a/src/shader.h +++ b/src/shader.h @@ -46,7 +46,7 @@ enum class kShaderUniform : uint16_t PatternBlendMode = const_hash("patt_blend_mode"), Colorize = const_hash("colorize"), DualAlpha = const_hash("dual_alpha"), - DrawOnScreen = const_hash("draw_on_screen"), + UseFragcoord = const_hash("use_fragcoord"), }; enum class kShader : uint16_t