Skip to content

Commit

Permalink
Fixed issue with alpha objects on M13
Browse files Browse the repository at this point in the history
  • Loading branch information
DronCode committed Dec 23, 2023
1 parent 722b634 commit 32f5af9
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions BMEdit/Editor/Source/Widgets/SceneRenderWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -216,8 +216,8 @@ namespace widgets

if (!m_renderList.empty())
{
auto onlyNonAlpha = [](const render::RenderEntry& entry) -> bool { return !entry.material.renderState.isAlphaTestEnabled(); };
auto onlyAlpha = [](const render::RenderEntry& entry) -> bool { return entry.material.renderState.isAlphaTestEnabled(); };
auto onlyNonAlpha = [](const render::RenderEntry& entry) -> bool { return !entry.material.renderState.isAlphaTestEnabled() && !entry.material.renderState.isBlendEnabled(); };
auto onlyAlpha = [](const render::RenderEntry& entry) -> bool { return entry.material.renderState.isAlphaTestEnabled() || entry.material.renderState.isBlendEnabled(); };

// 2 pass rendering: first render only non-alpha objects
if (m_renderMode & RenderMode::RM_NON_ALPHA_OBJECTS)
Expand Down Expand Up @@ -1212,6 +1212,12 @@ namespace widgets
material.renderState = binder.renderStates[0];
}

if (!material.renderState.isEnabled())
{
// unable to see disabled material instance
continue;
}

// Resolve & store textures
std::fill(material.textures.begin(), material.textures.end(), kInvalidResource);

Expand Down Expand Up @@ -1316,11 +1322,9 @@ namespace widgets
break;
case gamelib::mat::MATBlendMode::BM_ADD_ON_OPAQUE:
gapi->glBlendFunc(GL_ONE, GL_ONE);
gapi->glEnable(GL_ALPHA_TEST);
break;
case gamelib::mat::MATBlendMode::BM_ADD:
gapi->glBlendFunc(GL_ONE, GL_ONE);
gapi->glEnable(GL_ALPHA_TEST);
break;
default:
// Do nothing
Expand Down

0 comments on commit 32f5af9

Please sign in to comment.