Route remaining UI shader setup through helpers
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
#include "node_canvas.h"
|
||||
#include "legacy_canvas_draw_merge_services.h"
|
||||
#include "legacy_canvas_stroke_composite_services.h"
|
||||
#include "legacy_canvas_stroke_preview_services.h"
|
||||
#include "legacy_ui_overlay_services.h"
|
||||
#include "legacy_ui_gl_dispatch.h"
|
||||
#include "app.h"
|
||||
@@ -298,9 +299,6 @@ void CanvasModePen::on_Draw(const glm::mat4& ortho, const glm::mat4& proj, const
|
||||
auto pos = m_resizing ? m_size_pos_start : m_cur_pos;
|
||||
//if (App::I->keys[(int)kKey::KeyAlt] && !m_resizing)
|
||||
// pos.x = pos.x - brush->m_tip_size * .5f;
|
||||
ShaderManager::use(kShader::StrokePreview);
|
||||
ShaderManager::u_int(kShaderUniform::Tex, 0);
|
||||
ShaderManager::u_float(kShaderUniform::Alpha, brush->m_tip_flow * brush->m_tip_opacity);
|
||||
float tip_scale_fix = 1.f / glm::tan(glm::radians(Canvas::I->m_cam_fov * 0.5f));
|
||||
float tip_angle = brush->m_tip_angle * (float)(M_PI * 2.0);
|
||||
glm::vec2 tip_scale = App::I->zoom * brush->m_tip_scale *
|
||||
@@ -334,15 +332,17 @@ void CanvasModePen::on_Draw(const glm::mat4& ortho, const glm::mat4& proj, const
|
||||
static_cast<std::int32_t>(((App::I->height - pos.y - 1) / App::I->height) * fb_height),
|
||||
pixel);
|
||||
bool outline = glm::min(tip_scale.x, tip_scale.y) < 20 || m_resizing ? false : m_draw_outline;
|
||||
ShaderManager::u_int(kShaderUniform::DrawOutline, outline);
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, outline ? glm::vec4(1.f - glm::vec3(pixel) / 255.f, 1.f) : tip_color);
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP,
|
||||
glm::scale(glm::vec3(1, -1, 1)) *
|
||||
ortho *
|
||||
glm::translate(glm::vec3(pos + tip_offset, 0)) *
|
||||
glm::eulerAngleZ(tip_angle) *
|
||||
glm::scale(glm::vec3(tip_scale, 1))
|
||||
);
|
||||
pp::panopainter::setup_legacy_vr_stroke_preview_shader({
|
||||
.texture_slot = 0,
|
||||
.alpha = brush->m_tip_flow * brush->m_tip_opacity,
|
||||
.draw_outline = outline,
|
||||
.color = outline ? glm::vec4(1.f - glm::vec3(pixel) / 255.f, 1.f) : tip_color,
|
||||
.mvp = glm::scale(glm::vec3(1, -1, 1)) *
|
||||
ortho *
|
||||
glm::translate(glm::vec3(pos + tip_offset, 0)) *
|
||||
glm::eulerAngleZ(tip_angle) *
|
||||
glm::scale(glm::vec3(tip_scale, 1)),
|
||||
});
|
||||
const bool blend = query_canvas_mode_capability(pp::renderer::gl::blend_state());
|
||||
apply_canvas_mode_capability(pp::renderer::gl::blend_state(), true);
|
||||
set_canvas_mode_active_texture_unit(0);
|
||||
@@ -411,9 +411,10 @@ void CanvasModeLine::on_Draw(const glm::mat4& ortho, const glm::mat4& proj, cons
|
||||
{
|
||||
if (m_dragging)
|
||||
{
|
||||
ShaderManager::use(kShader::Color);
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP, ortho);
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, Canvas::I->m_current_brush->m_tip_color);
|
||||
pp::panopainter::setup_legacy_vr_color_shader({
|
||||
.color = Canvas::I->m_current_brush->m_tip_color,
|
||||
.mvp = ortho,
|
||||
});
|
||||
static glm::vec4 AB[2];
|
||||
AB[0] = { m_drag_start, 0, 1 };
|
||||
AB[1] = { m_drag_pos, 0, 1 };
|
||||
@@ -425,9 +426,6 @@ void CanvasModeLine::on_Draw(const glm::mat4& ortho, const glm::mat4& proj, cons
|
||||
else if (m_draw_tip)
|
||||
{
|
||||
const auto& brush = Canvas::I->m_current_brush;
|
||||
ShaderManager::use(kShader::StrokePreview);
|
||||
ShaderManager::u_int(kShaderUniform::Tex, 0);
|
||||
ShaderManager::u_float(kShaderUniform::Alpha, brush->m_tip_flow * brush->m_tip_opacity);
|
||||
float tip_scale_fix = 1.f / glm::tan(glm::radians(Canvas::I->m_cam_fov * 0.5f));
|
||||
float tip_angle = brush->m_tip_angle * (float)(M_PI * 2.0);
|
||||
glm::vec2 tip_scale = App::I->zoom * brush->m_tip_scale *
|
||||
@@ -436,15 +434,17 @@ void CanvasModeLine::on_Draw(const glm::mat4& ortho, const glm::mat4& proj, cons
|
||||
glm::vec2((brush->m_tip_aspect <= 0.5 ? brush->m_tip_aspect * 2.f : 1.f),
|
||||
(brush->m_tip_aspect > 0.5 ? 1.f - (brush->m_tip_aspect - .5f) * 2.f : 1.f));
|
||||
auto tip_color = glm::vec4(glm::vec3(brush->m_tip_color), 1.f);
|
||||
ShaderManager::u_int(kShaderUniform::DrawOutline, false);
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, tip_color);
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP,
|
||||
glm::scale(glm::vec3(1, -1, 1)) *
|
||||
ortho *
|
||||
glm::translate(glm::vec3(m_cur_pos, 0)) *
|
||||
glm::eulerAngleZ(tip_angle) *
|
||||
glm::scale(glm::vec3(tip_scale, 1))
|
||||
);
|
||||
pp::panopainter::setup_legacy_vr_stroke_preview_shader({
|
||||
.texture_slot = 0,
|
||||
.alpha = brush->m_tip_flow * brush->m_tip_opacity,
|
||||
.draw_outline = false,
|
||||
.color = tip_color,
|
||||
.mvp = glm::scale(glm::vec3(1, -1, 1)) *
|
||||
ortho *
|
||||
glm::translate(glm::vec3(m_cur_pos, 0)) *
|
||||
glm::eulerAngleZ(tip_angle) *
|
||||
glm::scale(glm::vec3(tip_scale, 1)),
|
||||
});
|
||||
const bool blend = query_canvas_mode_capability(pp::renderer::gl::blend_state());
|
||||
apply_canvas_mode_capability(pp::renderer::gl::blend_state(), true);
|
||||
set_canvas_mode_active_texture_unit(0);
|
||||
|
||||
Reference in New Issue
Block a user