fix transform commit shader
This commit is contained in:
@@ -914,6 +914,7 @@ void CanvasModeTransform::enter()
|
||||
auto center3d = canvas->point_trace(midpoint);
|
||||
for (auto& v : shape3d)
|
||||
{
|
||||
v.uvs2 = v.uvs / canvas->m_size;
|
||||
v.uvs = (v.uvs - bb_min) / bb_sz;
|
||||
v.pos = center_mat * v.pos;
|
||||
}
|
||||
@@ -952,18 +953,44 @@ void CanvasModeTransform::leave()
|
||||
glm::mat4 plane_camera = glm::lookAt(glm::vec3(0), canvas->m_plane_origin[i], canvas->m_plane_tangent[i]);
|
||||
layer.m_rtt[i].bindFramebuffer();
|
||||
|
||||
canvas->m_tex2[i].bind();
|
||||
glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0, canvas->m_width, canvas->m_height);
|
||||
canvas->m_tex2[i].unbind();
|
||||
|
||||
ui::ShaderManager::use(ui::kShader::CompDraw);
|
||||
ui::ShaderManager::u_int(ui::kShaderUniform::Tex, 0);
|
||||
ui::ShaderManager::u_int(ui::kShaderUniform::TexStroke, 1);
|
||||
ui::ShaderManager::u_int(ui::kShaderUniform::TexMask, 2);
|
||||
ui::ShaderManager::u_vec2(ui::kShaderUniform::Resolution, canvas->m_size);
|
||||
ui::ShaderManager::u_float(ui::kShaderUniform::Alpha, 1);
|
||||
ui::ShaderManager::u_int(ui::kShaderUniform::Mask, false);
|
||||
ui::ShaderManager::u_int(ui::kShaderUniform::BlendMode, 0);
|
||||
ui::ShaderManager::u_mat4(ui::kShaderUniform::MVP, proj * plane_camera * m_xform * m_xform_local);
|
||||
|
||||
canvas->m_sampler.bind(1);
|
||||
canvas->m_sampler.bind(0);
|
||||
|
||||
glActiveTexture(GL_TEXTURE0);
|
||||
canvas->m_tex2[i].bind();
|
||||
|
||||
glActiveTexture(GL_TEXTURE1);
|
||||
for (int j = 0; j < 6; j++)
|
||||
{
|
||||
ui::ShaderManager::use(ui::kShader::Color);
|
||||
ui::ShaderManager::u_mat4(ui::kShaderUniform::MVP, proj * plane_camera * m_xform * m_xform_local);
|
||||
ui::ShaderManager::u_vec4(ui::kShaderUniform::Col, { 0, 1, 1, .1 });
|
||||
m_shape[j].draw_fill();
|
||||
//ui::ShaderManager::use(ui::kShader::Color);
|
||||
//ui::ShaderManager::u_mat4(ui::kShaderUniform::MVP, proj * plane_camera * m_xform * m_xform_local);
|
||||
//ui::ShaderManager::u_vec4(ui::kShaderUniform::Col, { 0, 1, 1, .1 });
|
||||
//m_shape[j].draw_fill();
|
||||
|
||||
//ui::ShaderManager::use(ui::kShader::Texture);
|
||||
//ui::ShaderManager::u_int(ui::kShaderUniform::Tex, 0);
|
||||
//ui::ShaderManager::u_mat4(ui::kShaderUniform::MVP, proj * plane_camera * m_xform * m_xform_local);
|
||||
//m_tex[j].bind();
|
||||
//canvas->m_sampler.bind(0);
|
||||
//m_shape[j].draw_fill();
|
||||
//m_tex[j].unbind();
|
||||
|
||||
|
||||
ui::ShaderManager::use(ui::kShader::Texture);
|
||||
ui::ShaderManager::u_int(ui::kShaderUniform::Tex, 0);
|
||||
ui::ShaderManager::u_mat4(ui::kShaderUniform::MVP, proj * plane_camera * m_xform * m_xform_local);
|
||||
m_tex[j].bind();
|
||||
canvas->m_sampler.bind(0);
|
||||
m_shape[j].draw_fill();
|
||||
m_tex[j].unbind();
|
||||
}
|
||||
@@ -1019,6 +1046,7 @@ void CanvasModeTransform::on_Draw(const glm::mat4& ortho, const glm::mat4& proj,
|
||||
m_tex[i].unbind();
|
||||
}
|
||||
|
||||
ui::ShaderManager::use(ui::kShader::Color);
|
||||
auto m2d = canvas->m_proj * canvas->m_mv * m_xform * m_xform_local;
|
||||
for (int i = 0; i < corners.size(); i++)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user