@Enrico's patch for transparent objects

This commit is contained in:
Filip Sykala - NTB T15p 2022-08-30 14:34:22 +02:00
parent da0d889986
commit 1f03663b3a

View file

@ -1098,9 +1098,15 @@ void GLVolumeCollection::render(GLVolumeCollection::ERenderType type, bool disab
GLShaderProgram* edges_shader = GUI::wxGetApp().get_shader("flat");
#endif // ENABLE_LEGACY_OPENGL_REMOVAL
ScopeGuard transparent_sg;
if (type == ERenderType::Transparent) {
glsafe(::glEnable(GL_BLEND));
glsafe(::glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
glsafe(::glDepthMask(false));
transparent_sg = ScopeGuard([]() {
glsafe(::glDisable(GL_BLEND));
glsafe(::glDepthMask(true));
});
}
glsafe(::glCullFace(GL_BACK));
@ -1233,9 +1239,6 @@ void GLVolumeCollection::render(GLVolumeCollection::ERenderType type, bool disab
if (disable_cullface)
glsafe(::glEnable(GL_CULL_FACE));
if (type == ERenderType::Transparent)
glsafe(::glDisable(GL_BLEND));
}
bool GLVolumeCollection::check_outside_state(const BuildVolume &build_volume, ModelInstanceEPrintVolumeState *out_state) const