fix vr stroke preview
This commit is contained in:
@@ -179,10 +179,6 @@ void App::vr_draw(const glm::mat4& proj, const glm::mat4& camera, const glm::mat
|
|||||||
glm::vec3 origin = glm::vec3(0, 0, -1) * glm::transpose(glm::mat3(pose));
|
glm::vec3 origin = glm::vec3(0, 0, -1) * glm::transpose(glm::mat3(pose));
|
||||||
vr_rot = glm::lookAt({ 0, 0, 0 }, origin, { 0, 1, 0 });
|
vr_rot = glm::lookAt({ 0, 0, 0 }, origin, { 0, 1, 0 });
|
||||||
|
|
||||||
sampler.bind(0);
|
|
||||||
sampler.bind(1);
|
|
||||||
sampler.bind(2);
|
|
||||||
sampler_stencil.bind(3);
|
|
||||||
auto blend = glIsEnabled(GL_BLEND);
|
auto blend = glIsEnabled(GL_BLEND);
|
||||||
auto depth = glIsEnabled(GL_DEPTH_TEST);
|
auto depth = glIsEnabled(GL_DEPTH_TEST);
|
||||||
|
|
||||||
@@ -228,6 +224,9 @@ void App::vr_draw(const glm::mat4& proj, const glm::mat4& camera, const glm::mat
|
|||||||
if (canvas->m_canvas->m_current_mode == kCanvasMode::Erase && canvas->m_canvas->m_show_tmp && canvas->m_canvas->m_current_layer_idx == layer_index)
|
if (canvas->m_canvas->m_current_mode == kCanvasMode::Erase && canvas->m_canvas->m_show_tmp && canvas->m_canvas->m_current_layer_idx == layer_index)
|
||||||
{
|
{
|
||||||
sampler.bind(0);
|
sampler.bind(0);
|
||||||
|
sampler.bind(1);
|
||||||
|
sampler.bind(2);
|
||||||
|
|
||||||
ShaderManager::use(kShader::CompErase);
|
ShaderManager::use(kShader::CompErase);
|
||||||
ShaderManager::u_int(kShaderUniform::Tex, 0);
|
ShaderManager::u_int(kShaderUniform::Tex, 0);
|
||||||
ShaderManager::u_int(kShaderUniform::TexStroke, 1);
|
ShaderManager::u_int(kShaderUniform::TexStroke, 1);
|
||||||
@@ -253,7 +252,11 @@ void App::vr_draw(const glm::mat4& proj, const glm::mat4& camera, const glm::mat
|
|||||||
{
|
{
|
||||||
const auto& b = canvas->m_canvas->m_current_stroke->m_brush;
|
const auto& b = canvas->m_canvas->m_current_stroke->m_brush;
|
||||||
sampler.bind(0);
|
sampler.bind(0);
|
||||||
|
sampler.bind(1);
|
||||||
|
sampler.bind(2);
|
||||||
|
sampler.bind(3);
|
||||||
|
sampler_stencil.bind(4);
|
||||||
|
|
||||||
glm::vec2 patt_scale = glm::vec2(b->m_pattern_scale);
|
glm::vec2 patt_scale = glm::vec2(b->m_pattern_scale);
|
||||||
if (b->m_pattern_flipx) patt_scale.x *= -1.f;
|
if (b->m_pattern_flipx) patt_scale.x *= -1.f;
|
||||||
if (b->m_pattern_flipy) patt_scale.y *= -1.f;
|
if (b->m_pattern_flipy) patt_scale.y *= -1.f;
|
||||||
@@ -262,16 +265,19 @@ 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::Tex, 0);
|
||||||
ShaderManager::u_int(kShaderUniform::TexStroke, 1);
|
ShaderManager::u_int(kShaderUniform::TexStroke, 1);
|
||||||
ShaderManager::u_int(kShaderUniform::TexMask, 2);
|
ShaderManager::u_int(kShaderUniform::TexMask, 2);
|
||||||
|
ShaderManager::u_int(kShaderUniform::TexDual, 3);
|
||||||
|
ShaderManager::u_int(kShaderUniform::TexPattern, 4);
|
||||||
ShaderManager::u_vec2(kShaderUniform::Resolution, canvas->m_canvas->m_size);
|
ShaderManager::u_vec2(kShaderUniform::Resolution, canvas->m_canvas->m_size);
|
||||||
ShaderManager::u_int(kShaderUniform::TexPattern, 3);
|
|
||||||
ShaderManager::u_float(kShaderUniform::Alpha, canvas->m_canvas->m_layers[layer_index]->m_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);
|
ShaderManager::u_int(kShaderUniform::Mask, canvas->m_canvas->m_smask_active);
|
||||||
|
ShaderManager::u_int(kShaderUniform::Lock, canvas->m_canvas->m_layers[layer_index]->m_alpha_locked);
|
||||||
ShaderManager::u_int(kShaderUniform::UseFragcoord, false);
|
ShaderManager::u_int(kShaderUniform::UseFragcoord, false);
|
||||||
ShaderManager::u_int(kShaderUniform::BlendMode, b->m_blend_mode);
|
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);
|
|
||||||
ShaderManager::u_mat4(kShaderUniform::MVP, plane_mvp_z);
|
ShaderManager::u_mat4(kShaderUniform::MVP, plane_mvp_z);
|
||||||
|
ShaderManager::u_int(kShaderUniform::UseDual, b->m_dual_enabled);
|
||||||
|
ShaderManager::u_int(kShaderUniform::DualBlendMode, b->m_dual_blend_mode);
|
||||||
|
ShaderManager::u_float(kShaderUniform::DualAlpha, b->m_dual_opacity);
|
||||||
|
ShaderManager::u_int(kShaderUniform::UsePattern, b->m_pattern_enabled && !b->m_pattern_eachsample);
|
||||||
ShaderManager::u_vec2(kShaderUniform::PatternScale, patt_scale);
|
ShaderManager::u_vec2(kShaderUniform::PatternScale, patt_scale);
|
||||||
ShaderManager::u_float(kShaderUniform::PatternInvert, b->m_pattern_invert);
|
ShaderManager::u_float(kShaderUniform::PatternInvert, b->m_pattern_invert);
|
||||||
ShaderManager::u_float(kShaderUniform::PatternBright, b->m_pattern_brightness);
|
ShaderManager::u_float(kShaderUniform::PatternBright, b->m_pattern_brightness);
|
||||||
@@ -287,10 +293,16 @@ void App::vr_draw(const glm::mat4& proj, const glm::mat4& camera, const glm::mat
|
|||||||
glActiveTexture(GL_TEXTURE2);
|
glActiveTexture(GL_TEXTURE2);
|
||||||
canvas->m_canvas->m_smask.m_rtt[plane_index].bindTexture();
|
canvas->m_canvas->m_smask.m_rtt[plane_index].bindTexture();
|
||||||
glActiveTexture(GL_TEXTURE3);
|
glActiveTexture(GL_TEXTURE3);
|
||||||
|
if (b->m_dual_enabled)
|
||||||
|
canvas->m_canvas->m_tmp_dual[plane_index].bindTexture();
|
||||||
|
glActiveTexture(GL_TEXTURE4);
|
||||||
b->m_pattern_texture ?
|
b->m_pattern_texture ?
|
||||||
b->m_pattern_texture->bind() :
|
b->m_pattern_texture->bind() :
|
||||||
glBindTexture(GL_TEXTURE_2D, 0);
|
glBindTexture(GL_TEXTURE_2D, 0);
|
||||||
m_face_plane.draw_fill();
|
m_face_plane.draw_fill();
|
||||||
|
glActiveTexture(GL_TEXTURE3);
|
||||||
|
if (b->m_dual_enabled)
|
||||||
|
canvas->m_canvas->m_tmp_dual[plane_index].unbindTexture();
|
||||||
glActiveTexture(GL_TEXTURE2);
|
glActiveTexture(GL_TEXTURE2);
|
||||||
canvas->m_canvas->m_smask.m_rtt[plane_index].unbindTexture();
|
canvas->m_canvas->m_smask.m_rtt[plane_index].unbindTexture();
|
||||||
glActiveTexture(GL_TEXTURE1);
|
glActiveTexture(GL_TEXTURE1);
|
||||||
@@ -301,7 +313,6 @@ void App::vr_draw(const glm::mat4& proj, const glm::mat4& camera, const glm::mat
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
sampler.bind(0);
|
sampler.bind(0);
|
||||||
sampler_linear.bind(1);
|
|
||||||
ShaderManager::use(kShader::TextureAlpha);
|
ShaderManager::use(kShader::TextureAlpha);
|
||||||
ShaderManager::u_int(kShaderUniform::Tex, 0);
|
ShaderManager::u_int(kShaderUniform::Tex, 0);
|
||||||
ShaderManager::u_float(kShaderUniform::Alpha, canvas->m_canvas->m_layers[layer_index]->m_opacity);
|
ShaderManager::u_float(kShaderUniform::Alpha, canvas->m_canvas->m_layers[layer_index]->m_opacity);
|
||||||
|
|||||||
Reference in New Issue
Block a user