Fixed rendering of transparent objects on MAC
This commit is contained in:
parent
9fe4595ae7
commit
a78dfa2522
@ -1300,15 +1300,10 @@ void GLVolumeCollection::render(GLVolumeCollection::ERenderType type, bool disab
|
|||||||
#endif // ENABLE_GL_CORE_PROFILE
|
#endif // ENABLE_GL_CORE_PROFILE
|
||||||
#endif // ENABLE_LEGACY_OPENGL_REMOVAL
|
#endif // ENABLE_LEGACY_OPENGL_REMOVAL
|
||||||
|
|
||||||
ScopeGuard transparent_sg;
|
|
||||||
if (type == ERenderType::Transparent) {
|
if (type == ERenderType::Transparent) {
|
||||||
glsafe(::glEnable(GL_BLEND));
|
glsafe(::glEnable(GL_BLEND));
|
||||||
glsafe(::glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
|
glsafe(::glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
|
||||||
glsafe(::glDepthMask(false));
|
glsafe(::glDepthMask(false));
|
||||||
transparent_sg = ScopeGuard([]() {
|
|
||||||
glsafe(::glDisable(GL_BLEND));
|
|
||||||
glsafe(::glDepthMask(true));
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
glsafe(::glCullFace(GL_BACK));
|
glsafe(::glCullFace(GL_BACK));
|
||||||
@ -1436,6 +1431,11 @@ void GLVolumeCollection::render(GLVolumeCollection::ERenderType type, bool disab
|
|||||||
|
|
||||||
if (disable_cullface)
|
if (disable_cullface)
|
||||||
glsafe(::glEnable(GL_CULL_FACE));
|
glsafe(::glEnable(GL_CULL_FACE));
|
||||||
|
|
||||||
|
if (type == ERenderType::Transparent) {
|
||||||
|
glsafe(::glDisable(GL_BLEND));
|
||||||
|
glsafe(::glDepthMask(true));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GLVolumeCollection::check_outside_state(const BuildVolume &build_volume, ModelInstanceEPrintVolumeState *out_state) const
|
bool GLVolumeCollection::check_outside_state(const BuildVolume &build_volume, ModelInstanceEPrintVolumeState *out_state) const
|
||||||
|
Loading…
Reference in New Issue
Block a user