Route texture alpha setup through helper
This commit is contained in:
@@ -398,11 +398,13 @@ void App::vr_draw(const glm::mat4& proj, const glm::mat4& camera, const glm::mat
|
||||
else
|
||||
{
|
||||
sampler.bind(0);
|
||||
ShaderManager::use(kShader::TextureAlpha);
|
||||
ShaderManager::u_int(kShaderUniform::Tex, 0);
|
||||
ShaderManager::u_float(kShaderUniform::Alpha, canvas->m_canvas->m_layers[layer_index]->m_opacity);
|
||||
ShaderManager::u_int(kShaderUniform::Highlight, canvas->m_canvas->m_layers[layer_index]->m_hightlight);
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP, plane_mvp_z);
|
||||
pp::panopainter::setup_legacy_canvas_draw_merge_texture_alpha_shader(
|
||||
pp::panopainter::LegacyCanvasDrawMergeTextureAlphaUniforms {
|
||||
.mvp = plane_mvp_z,
|
||||
.texture_slot = 0,
|
||||
.alpha = canvas->m_canvas->m_layers[layer_index]->m_opacity,
|
||||
.highlight = canvas->m_canvas->m_layers[layer_index]->m_hightlight,
|
||||
});
|
||||
|
||||
set_active_texture_unit(0);
|
||||
canvas->m_canvas->m_layers[layer_index]->rtt(plane_index).bindTexture();
|
||||
|
||||
@@ -1393,11 +1393,13 @@ void Canvas::draw_merge(bool draw_checkerboard, std::array<bool, 6> faces /*= SI
|
||||
else
|
||||
{
|
||||
m_cam_fov < 20.f ? m_sampler_nearest.bind(0) : m_sampler.bind(0);
|
||||
ShaderManager::use(kShader::TextureAlpha);
|
||||
ShaderManager::u_int(kShaderUniform::Tex, 0);
|
||||
ShaderManager::u_float(kShaderUniform::Alpha, m_layers[layer_index]->m_opacity);
|
||||
ShaderManager::u_int(kShaderUniform::Highlight, m_layers[layer_index]->m_hightlight);
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP, ortho);
|
||||
pp::panopainter::setup_legacy_canvas_draw_merge_texture_alpha_shader(
|
||||
pp::panopainter::LegacyCanvasDrawMergeTextureAlphaUniforms {
|
||||
.mvp = ortho,
|
||||
.texture_slot = 0,
|
||||
.alpha = m_layers[layer_index]->m_opacity,
|
||||
.highlight = m_layers[layer_index]->m_hightlight,
|
||||
});
|
||||
|
||||
set_active_texture_unit(0);
|
||||
m_layers[layer_index]->rtt(plane_index).bindTexture();
|
||||
@@ -2216,11 +2218,13 @@ void Canvas::export_depth_thread(std::string file_name)
|
||||
glm::scale(glm::vec3(2));
|
||||
|
||||
m_sampler.bind(0);
|
||||
ShaderManager::use(kShader::TextureAlpha);
|
||||
ShaderManager::u_int(kShaderUniform::Tex, 0);
|
||||
ShaderManager::u_float(kShaderUniform::Alpha, 1.f);
|
||||
ShaderManager::u_int(kShaderUniform::Highlight, false);
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP, plane_mvp_z);
|
||||
pp::panopainter::setup_legacy_canvas_draw_merge_texture_alpha_shader(
|
||||
pp::panopainter::LegacyCanvasDrawMergeTextureAlphaUniforms {
|
||||
.mvp = plane_mvp_z,
|
||||
.texture_slot = 0,
|
||||
.alpha = 1.f,
|
||||
.highlight = false,
|
||||
});
|
||||
|
||||
set_active_texture_unit(0);
|
||||
m_layers_merge.rtt(plane_index).bindTexture();
|
||||
|
||||
@@ -16,6 +16,13 @@ struct LegacyCanvasDrawMergeTextureUniforms {
|
||||
int texture_slot = 0;
|
||||
};
|
||||
|
||||
struct LegacyCanvasDrawMergeTextureAlphaUniforms {
|
||||
glm::mat4 mvp { 1.0f };
|
||||
int texture_slot = 0;
|
||||
float alpha = 1.0f;
|
||||
int highlight = 0;
|
||||
};
|
||||
|
||||
struct LegacyCanvasDrawMergeTextureBlendUniforms {
|
||||
glm::mat4 mvp { 1.0f };
|
||||
int texture_slot = 0;
|
||||
@@ -72,6 +79,23 @@ inline void setup_legacy_canvas_draw_merge_texture_shader(
|
||||
setup_legacy_canvas_draw_merge_texture_shader(uniforms, legacy_shader_manager_draw_merge_execution());
|
||||
}
|
||||
|
||||
inline void setup_legacy_canvas_draw_merge_texture_alpha_shader(
|
||||
const LegacyCanvasDrawMergeTextureAlphaUniforms& uniforms,
|
||||
const LegacyCanvasDrawMergeShaderExecution& execution) noexcept
|
||||
{
|
||||
execution.use_shader(kShader::TextureAlpha);
|
||||
execution.set_int(kShaderUniform::Tex, uniforms.texture_slot);
|
||||
execution.set_float(kShaderUniform::Alpha, uniforms.alpha);
|
||||
execution.set_int(kShaderUniform::Highlight, uniforms.highlight);
|
||||
execution.set_mat4(kShaderUniform::MVP, uniforms.mvp);
|
||||
}
|
||||
|
||||
inline void setup_legacy_canvas_draw_merge_texture_alpha_shader(
|
||||
const LegacyCanvasDrawMergeTextureAlphaUniforms& uniforms)
|
||||
{
|
||||
setup_legacy_canvas_draw_merge_texture_alpha_shader(uniforms, legacy_shader_manager_draw_merge_execution());
|
||||
}
|
||||
|
||||
inline void setup_legacy_canvas_draw_merge_texture_blend_shader(
|
||||
const LegacyCanvasDrawMergeTextureBlendUniforms& uniforms,
|
||||
const LegacyCanvasDrawMergeShaderExecution& execution) noexcept
|
||||
|
||||
@@ -392,11 +392,13 @@ void NodeCanvas::draw()
|
||||
glm::translate(glm::vec3(0, 0, -1));
|
||||
|
||||
m_sampler.bind(0);
|
||||
ShaderManager::use(kShader::TextureAlpha);
|
||||
ShaderManager::u_int(kShaderUniform::Tex, 0);
|
||||
ShaderManager::u_float(kShaderUniform::Alpha, 1.f);
|
||||
ShaderManager::u_int(kShaderUniform::Highlight, false);
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP, plane_mvp_z);
|
||||
pp::panopainter::setup_legacy_canvas_draw_merge_texture_alpha_shader(
|
||||
pp::panopainter::LegacyCanvasDrawMergeTextureAlphaUniforms {
|
||||
.mvp = plane_mvp_z,
|
||||
.texture_slot = 0,
|
||||
.alpha = 1.f,
|
||||
.highlight = false,
|
||||
});
|
||||
|
||||
set_active_texture_unit(0);
|
||||
m_canvas->m_layers_merge.rtt(plane_index).bindTexture();
|
||||
@@ -583,10 +585,13 @@ void NodeCanvas::draw()
|
||||
else
|
||||
{
|
||||
m_canvas->m_cam_fov < 20.f ? m_sampler_nearest.bind(0) : m_sampler.bind(0);
|
||||
ShaderManager::use(kShader::TextureAlpha);
|
||||
ShaderManager::u_int(kShaderUniform::Tex, 0);
|
||||
ShaderManager::u_int(kShaderUniform::Highlight, m_canvas->m_layers[layer_index]->m_hightlight);
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP, plane_mvp_z);
|
||||
pp::panopainter::setup_legacy_canvas_draw_merge_texture_alpha_shader(
|
||||
pp::panopainter::LegacyCanvasDrawMergeTextureAlphaUniforms {
|
||||
.mvp = plane_mvp_z,
|
||||
.texture_slot = 0,
|
||||
.alpha = 1.f,
|
||||
.highlight = m_canvas->m_layers[layer_index]->m_hightlight,
|
||||
});
|
||||
|
||||
for (int frame = onion_range.first_frame; frame <= onion_range.last_frame; frame++)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user