Tech ENABLE_GL_SHADERS_ATTRIBUTES - Added shaders for glsl version 140

(cherry picked from commit prusa3d/PrusaSlicer@76d1d4949b)
This commit is contained in:
enricoturri1966 2023-10-27 10:51:15 +08:00 committed by Noisyfox
parent bb044754af
commit 1e4f16bd39
76 changed files with 1145 additions and 143 deletions

View file

@ -500,7 +500,7 @@ void GLGizmoAdvancedCut::on_render_for_picking()
#endif
m_move_grabber.color = picking_color_component(0);
GLShaderProgram *shader = wxGetApp().get_shader("flat_attr");
GLShaderProgram *shader = wxGetApp().get_shader("flat");
if (shader != nullptr) {
shader->start_using();
const Camera &camera = wxGetApp().plater()->get_camera();
@ -866,7 +866,7 @@ void GLGizmoAdvancedCut::render_cut_plane_and_grabbers()
glsafe(::glEnable(GL_BLEND));
glsafe(::glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
GLShaderProgram *shader = wxGetApp().get_shader("flat_attr");
GLShaderProgram *shader = wxGetApp().get_shader("flat");
if (shader != nullptr) {
shader->start_using();
@ -934,7 +934,7 @@ void GLGizmoAdvancedCut::render_cut_plane_and_grabbers()
}
{
GLShaderProgram *shader = wxGetApp().get_shader("gouraud_light_attr");
GLShaderProgram *shader = wxGetApp().get_shader("gouraud_light");
if (shader == nullptr)
return;
shader->start_using();
@ -1069,9 +1069,9 @@ void GLGizmoAdvancedCut::render_connector_model(GLModel &model, const ColorRGBA
{
GLShaderProgram *shader = nullptr;
if (for_picking)
shader = wxGetApp().get_shader("flat_attr");
shader = wxGetApp().get_shader("flat");
else
shader = wxGetApp().get_shader("gouraud_light_attr");
shader = wxGetApp().get_shader("gouraud_light");
if (shader) {
shader->start_using();

View file

@ -262,7 +262,7 @@ void GLGizmoBase::render_grabbers(const BoundingBoxf3& box) const
void GLGizmoBase::render_grabbers(float size) const
{
GLShaderProgram* shader = wxGetApp().get_shader("gouraud_light_attr");
GLShaderProgram* shader = wxGetApp().get_shader("gouraud_light");
if (shader == nullptr)
return;
shader->start_using();
@ -276,7 +276,7 @@ void GLGizmoBase::render_grabbers(float size) const
void GLGizmoBase::render_grabbers_for_picking(const BoundingBoxf3& box) const
{
GLShaderProgram* shader = wxGetApp().get_shader("flat_attr");
GLShaderProgram* shader = wxGetApp().get_shader("flat");
if (shader != nullptr) {
shader->start_using();

View file

@ -155,7 +155,7 @@ bool GLGizmoFdmSupports::on_key_down_select_tool_type(int keyCode) {
void GLGizmoFdmSupports::render_triangles(const Selection& selection) const
{
ClippingPlaneDataWrapper clp_data = this->get_clipping_plane_data();
auto* shader = wxGetApp().get_shader("mm_gouraud_attr");
auto* shader = wxGetApp().get_shader("mm_gouraud");
if (!shader)
return;
shader->start_using();

View file

@ -64,7 +64,7 @@ void GLGizmoFlatten::on_render()
{
const Selection& selection = m_parent.get_selection();
GLShaderProgram* shader = wxGetApp().get_shader("flat_attr");
GLShaderProgram* shader = wxGetApp().get_shader("flat");
if (shader == nullptr)
return;
@ -98,7 +98,7 @@ void GLGizmoFlatten::on_render()
void GLGizmoFlatten::on_render_for_picking()
{
const Selection& selection = m_parent.get_selection();
GLShaderProgram* shader = wxGetApp().get_shader("flat_attr");
GLShaderProgram* shader = wxGetApp().get_shader("flat");
if (shader == nullptr)
return;

View file

@ -103,7 +103,7 @@ void GLGizmoHollow::on_render_for_picking()
void GLGizmoHollow::render_points(const Selection& selection, bool picking)
{
GLShaderProgram* shader = picking ? wxGetApp().get_shader("flat_attr") : wxGetApp().get_shader("gouraud_light_attr");
GLShaderProgram* shader = picking ? wxGetApp().get_shader("flat") : wxGetApp().get_shader("gouraud_light");
if (shader == nullptr)
return;

View file

@ -192,7 +192,7 @@ void GLGizmoMmuSegmentation::set_painter_gizmo_data(const Selection &selection)
void GLGizmoMmuSegmentation::render_triangles(const Selection &selection) const
{
ClippingPlaneDataWrapper clp_data = this->get_clipping_plane_data();
auto* shader = wxGetApp().get_shader("mm_gouraud_attr");
auto* shader = wxGetApp().get_shader("mm_gouraud");
if (!shader)
return;
shader->start_using();

View file

@ -162,7 +162,7 @@ void GLGizmoMove3D::on_render()
}
};
GLShaderProgram* shader = wxGetApp().get_shader("flat_attr");
GLShaderProgram* shader = wxGetApp().get_shader("flat");
if (shader != nullptr) {
shader->start_using();
const Camera& camera = wxGetApp().plater()->get_camera();
@ -256,7 +256,7 @@ void GLGizmoMove3D::render_grabber_extension(Axis axis, const BoundingBoxf3& box
}
}
GLShaderProgram* shader = wxGetApp().get_shader(picking ? "flat_attr" : "gouraud_light_attr");
GLShaderProgram* shader = wxGetApp().get_shader(picking ? "flat" : "gouraud_light");
if (shader == nullptr)
return;

View file

@ -75,7 +75,7 @@ GLGizmoPainterBase::ClippingPlaneDataWrapper GLGizmoPainterBase::get_clipping_pl
void GLGizmoPainterBase::render_triangles(const Selection& selection) const
{
auto* shader = wxGetApp().get_shader("gouraud_attr");
auto* shader = wxGetApp().get_shader("gouraud");
if (! shader)
return;
shader->start_using();
@ -219,7 +219,7 @@ void GLGizmoPainterBase::render_cursor_circle()
m_circle.set_color(render_color);
GLShaderProgram* shader = wxGetApp().get_shader("flat_attr");
GLShaderProgram* shader = wxGetApp().get_shader("flat");
if (shader != nullptr) {
shader->start_using();
shader->set_uniform("view_model_matrix", Transform3d::Identity());
@ -240,7 +240,7 @@ void GLGizmoPainterBase::render_cursor_sphere(const Transform3d& trafo) const
s_sphere->init_from(its_make_sphere(1.0, double(PI) / 12.0));
}
GLShaderProgram* shader = wxGetApp().get_shader("flat_attr");
GLShaderProgram* shader = wxGetApp().get_shader("flat");
if (shader == nullptr)
return;
@ -278,7 +278,7 @@ void GLGizmoPainterBase::render_cursor_sphere(const Transform3d& trafo) const
// BBS
void GLGizmoPainterBase::render_cursor_height_range(const Transform3d& trafo) const
{
GLShaderProgram *shader = wxGetApp().get_shader("flat_attr");
GLShaderProgram *shader = wxGetApp().get_shader("flat");
if (shader == nullptr)
return;
@ -1070,7 +1070,7 @@ void TriangleSelectorGUI::render(ImGuiWrapper* imgui, const Transform3d& matrix)
auto* shader = wxGetApp().get_current_shader();
if (! shader)
return;
assert(shader->get_name() == "gouraud_attr" || shader->get_name() == "mm_gouraud_attr");
assert(shader->get_name() == "gouraud" || shader->get_name() == "mm_gouraud");
ScopeGuard guard([shader]() { if (shader) shader->set_uniform("offset_depth_buffer", false);});
shader->set_uniform("offset_depth_buffer", true);
for (auto iva : {std::make_pair(&m_iva_enforcers, enforcers_color),
@ -1178,7 +1178,7 @@ void TriangleSelectorPatch::render(ImGuiWrapper* imgui, const Transform3d& matri
auto* shader = wxGetApp().get_current_shader();
if (!shader)
return;
assert(shader->get_name() == "gouraud_attr" || shader->get_name() == "mm_gouraud_attr");
assert(shader->get_name() == "gouraud" || shader->get_name() == "mm_gouraud");
for (size_t buffer_idx = 0; buffer_idx < m_triangle_patches.size(); ++buffer_idx) {
if (this->has_VBOs(buffer_idx)) {
@ -1604,7 +1604,7 @@ void TriangleSelectorGUI::render_debug(ImGuiWrapper* imgui)
if (curr_shader != nullptr)
curr_shader->stop_using();
GLShaderProgram* shader = wxGetApp().get_shader("flat_attr");
GLShaderProgram* shader = wxGetApp().get_shader("flat");
if (shader != nullptr) {
shader->start_using();
@ -1661,7 +1661,7 @@ void TriangleSelectorGUI::render_paint_contour(const Transform3d& matrix)
if (curr_shader != nullptr)
curr_shader->stop_using();
auto* contour_shader = wxGetApp().get_shader("mm_contour_attr");
auto* contour_shader = wxGetApp().get_shader("mm_contour");
if (contour_shader != nullptr) {
contour_shader->start_using();

View file

@ -129,7 +129,7 @@ void GLGizmoRotate::on_render()
m_grabbers.front().matrix = local_transform(selection);
glsafe(::glLineWidth((m_hover_id != -1) ? 2.0f : 1.5f));
GLShaderProgram* shader = wxGetApp().get_shader("flat_attr");
GLShaderProgram* shader = wxGetApp().get_shader("flat");
if (shader != nullptr) {
shader->start_using();
@ -400,7 +400,7 @@ void GLGizmoRotate::render_grabber_extension(const BoundingBoxf3& box, bool pick
if (!picking && m_hover_id != -1)
color = m_grabbers.front().hover_color;
GLShaderProgram* shader = wxGetApp().get_shader(picking ? "flat_attr" : "gouraud_light_attr");
GLShaderProgram* shader = wxGetApp().get_shader(picking ? "flat" : "gouraud_light");
if (shader == nullptr)
return;

View file

@ -234,7 +234,7 @@ void GLGizmoScale3D::on_render()
const float grabber_mean_size = (float)((selection_box.size().x() + selection_box.size().y() + selection_box.size().z()) / 3.0);
//draw connections
GLShaderProgram* shader = wxGetApp().get_shader("flat_attr");
GLShaderProgram* shader = wxGetApp().get_shader("flat");
if (shader != nullptr) {
shader->start_using();
// BBS: when select multiple objects, uniform scale can be deselected, display the connection(4,5)

View file

@ -98,7 +98,7 @@ bool GLGizmoSeam::on_key_down_select_tool_type(int keyCode) {
void GLGizmoSeam::render_triangles(const Selection& selection) const
{
ClippingPlaneDataWrapper clp_data = this->get_clipping_plane_data();
auto* shader = wxGetApp().get_shader("mm_gouraud_attr");
auto* shader = wxGetApp().get_shader("mm_gouraud");
if (!shader)
return;
shader->start_using();

View file

@ -641,7 +641,7 @@ void GLGizmoSimplify::on_render()
return;
const Transform3d trafo_matrix = selected_volume->world_matrix();
auto* gouraud_shader = wxGetApp().get_shader("gouraud_light_attr");
auto* gouraud_shader = wxGetApp().get_shader("gouraud_light");
glsafe(::glPushAttrib(GL_DEPTH_TEST));
glsafe(::glEnable(GL_DEPTH_TEST));
gouraud_shader->start_using();
@ -654,7 +654,7 @@ void GLGizmoSimplify::on_render()
gouraud_shader->stop_using();
if (m_show_wireframe) {
auto* contour_shader = wxGetApp().get_shader("mm_contour_attr");
auto* contour_shader = wxGetApp().get_shader("mm_contour");
contour_shader->start_using();
contour_shader->set_uniform("view_model_matrix", view_model_matrix);
contour_shader->set_uniform("projection_matrix", camera.get_projection_matrix());

View file

@ -127,7 +127,7 @@ void GLGizmoSlaSupports::render_points(const Selection& selection, bool picking)
if (! has_points && ! has_holes)
return;
GLShaderProgram* shader = picking ? wxGetApp().get_shader("flat_attr") : wxGetApp().get_shader("gouraud_light_attr");
GLShaderProgram* shader = picking ? wxGetApp().get_shader("flat") : wxGetApp().get_shader("gouraud_light");
if (shader == nullptr)
return;

View file

@ -448,7 +448,7 @@ void GLGizmoText::on_render()
ColorRGBA color = picking_color_component(0);
m_grabbers[0].color = color;
GLShaderProgram *shader = wxGetApp().get_shader("gouraud_light_attr");
GLShaderProgram *shader = wxGetApp().get_shader("gouraud_light");
if (shader != nullptr) {
shader->start_using();
m_grabbers[0].render_for_picking(mean_size);
@ -500,7 +500,7 @@ void GLGizmoText::on_render_for_picking()
ColorRGBA color = picking_color_component(0);
m_grabbers[0].color = color;
GLShaderProgram *shader = wxGetApp().get_shader("flat_attr");
GLShaderProgram *shader = wxGetApp().get_shader("flat");
if (shader != nullptr) {
shader->start_using();
m_grabbers[0].render_for_picking(mean_size);