Route UI and VR shader setup through helpers
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
#include "legacy_canvas_draw_merge_services.h"
|
||||
#include "legacy_canvas_stroke_composite_services.h"
|
||||
#include "legacy_canvas_stroke_erase_services.h"
|
||||
#include "legacy_canvas_stroke_preview_services.h"
|
||||
#include "legacy_ui_gl_dispatch.h"
|
||||
#include "node_panel_grid.h"
|
||||
#include "util.h"
|
||||
@@ -427,9 +428,11 @@ void App::vr_draw(const glm::mat4& proj, const glm::mat4& camera, const glm::mat
|
||||
glm::transpose(canvas->m_canvas->m_cam_rot) *
|
||||
glm::translate(glm::vec3(0, 0, -1)) *
|
||||
glm::scale(aspect * tan_fov);
|
||||
ShaderManager::use(kShader::Color);
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, { 0, 0, 0, 1 });
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP, mvp);
|
||||
pp::panopainter::setup_legacy_vr_color_shader(
|
||||
pp::panopainter::LegacyVrColorUniforms {
|
||||
.color = { 0, 0, 0, 1 },
|
||||
.mvp = mvp,
|
||||
});
|
||||
m_face_plane.draw_stroke();
|
||||
}
|
||||
|
||||
@@ -496,12 +499,17 @@ void App::vr_draw(const glm::mat4& proj, const glm::mat4& camera, const glm::mat
|
||||
glm::scale(glm::vec3(100)) *
|
||||
glm::transpose(canvas->m_canvas->m_cam_rot) *
|
||||
glm::translate(glm::vec3(cur * glm::vec2(aspect * tan_fov), -1));
|
||||
ShaderManager::use(kShader::Color);
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, { 0, 0, 0, 1 });
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP, mvp * glm::scale(glm::vec3(.01)));
|
||||
pp::panopainter::setup_legacy_vr_color_shader(
|
||||
pp::panopainter::LegacyVrColorUniforms {
|
||||
.color = { 0, 0, 0, 1 },
|
||||
.mvp = mvp * glm::scale(glm::vec3(.01f)),
|
||||
});
|
||||
m_face_plane.draw_fill();
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, { 1, 1, 1, 1 });
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP, mvp * glm::scale(glm::vec3(.005)));
|
||||
pp::panopainter::setup_legacy_vr_color_shader(
|
||||
pp::panopainter::LegacyVrColorUniforms {
|
||||
.color = { 1, 1, 1, 1 },
|
||||
.mvp = mvp * glm::scale(glm::vec3(.005f)),
|
||||
});
|
||||
m_face_plane.draw_fill();
|
||||
}
|
||||
|
||||
@@ -510,9 +518,11 @@ void App::vr_draw(const glm::mat4& proj, const glm::mat4& camera, const glm::mat
|
||||
if (vr_controllers_enabled && ui_visible && ui_inside)
|
||||
{
|
||||
auto mvp = proj * camera * vr_controllers[0].m_mat * glm::eulerAngleX(glm::radians(-30.f));
|
||||
ShaderManager::use(kShader::Color);
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, { 1, 0, 1, 1 });
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP, mvp * glm::scale(glm::vec3(.0125, .0125, .07)));
|
||||
pp::panopainter::setup_legacy_vr_color_shader(
|
||||
pp::panopainter::LegacyVrColorUniforms {
|
||||
.color = { 1, 0, 1, 1 },
|
||||
.mvp = mvp * glm::scale(glm::vec3(.0125f, .0125f, .07f)),
|
||||
});
|
||||
sphere.draw_fill();
|
||||
}
|
||||
|
||||
@@ -522,18 +532,18 @@ void App::vr_draw(const glm::mat4& proj, const glm::mat4& camera, const glm::mat
|
||||
{
|
||||
glm::vec3 cpos = vr_controllers[0].get_pos() - xyz(pose[3]);
|
||||
auto pos = glm::translate(glm::normalize(cpos) * 100.f);
|
||||
ShaderManager::use(kShader::StrokePreview);
|
||||
ShaderManager::u_int(kShaderUniform::Tex, 0);
|
||||
ShaderManager::u_float(kShaderUniform::Alpha, canvas->m_canvas->m_current_brush->m_tip_flow);
|
||||
ShaderManager::u_int(kShaderUniform::DrawOutline, false);
|
||||
auto tip_color = glm::vec4(glm::vec3(canvas->m_canvas->m_current_brush->m_tip_color), 1);
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, tip_color);
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP,
|
||||
proj * camera * pos *
|
||||
glm::inverse(glm::lookAt({ 0, 0, 0 }, cpos, { 0, 1, 0 })) *
|
||||
glm::scale(glm::vec3(canvas->m_canvas->m_current_brush->m_tip_size * 100.f / height)) *
|
||||
glm::eulerAngleZ(canvas->m_canvas->m_current_brush->m_tip_angle * (float)(M_PI * 2.0))
|
||||
);
|
||||
pp::panopainter::setup_legacy_vr_stroke_preview_shader(
|
||||
pp::panopainter::LegacyVrStrokePreviewUniforms {
|
||||
.texture_slot = 0,
|
||||
.alpha = canvas->m_canvas->m_current_brush->m_tip_flow,
|
||||
.draw_outline = false,
|
||||
.color = tip_color,
|
||||
.mvp = proj * camera * pos *
|
||||
glm::inverse(glm::lookAt({ 0, 0, 0 }, cpos, { 0, 1, 0 })) *
|
||||
glm::scale(glm::vec3(canvas->m_canvas->m_current_brush->m_tip_size * 100.f / height)) *
|
||||
glm::eulerAngleZ(canvas->m_canvas->m_current_brush->m_tip_angle * (float)(M_PI * 2.0)),
|
||||
});
|
||||
apply_vr_render_capability(pp::renderer::gl::blend_state(), true);
|
||||
set_active_texture_unit(0);
|
||||
auto& tex = *canvas->m_canvas->m_current_brush->m_tip_texture;
|
||||
|
||||
Reference in New Issue
Block a user