Formalize render object id contract
This commit is contained in:
@@ -31,7 +31,15 @@ bool BuiltinSelectionMaskPass::Render(
|
||||
const RenderSurface& surface,
|
||||
const RenderSceneData& sceneData,
|
||||
const std::vector<uint64_t>& selectedObjectIds) {
|
||||
m_selectedObjectIds = selectedObjectIds;
|
||||
m_selectedObjectIds.clear();
|
||||
m_selectedObjectIds.reserve(selectedObjectIds.size());
|
||||
for (uint64_t selectedObjectId : selectedObjectIds) {
|
||||
RenderObjectId renderObjectId = kInvalidRenderObjectId;
|
||||
if (TryConvertRuntimeObjectIdToRenderObjectId(selectedObjectId, renderObjectId)) {
|
||||
m_selectedObjectIds.push_back(renderObjectId);
|
||||
}
|
||||
}
|
||||
|
||||
if (m_selectedObjectIds.empty()) {
|
||||
return false;
|
||||
}
|
||||
@@ -45,18 +53,18 @@ bool BuiltinSelectionMaskPass::Render(
|
||||
surface,
|
||||
selectionMaskSceneData,
|
||||
nullptr,
|
||||
nullptr
|
||||
nullptr,
|
||||
RHI::ResourceStates::Common
|
||||
};
|
||||
return Execute(passContext);
|
||||
}
|
||||
|
||||
bool BuiltinSelectionMaskPass::ShouldRenderVisibleItem(const VisibleRenderItem& visibleItem) const {
|
||||
if (visibleItem.gameObject == nullptr) {
|
||||
if (!IsValidRenderObjectId(visibleItem.renderObjectId)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const uint64_t objectId = visibleItem.gameObject->GetID();
|
||||
return std::find(m_selectedObjectIds.begin(), m_selectedObjectIds.end(), objectId) !=
|
||||
return std::find(m_selectedObjectIds.begin(), m_selectedObjectIds.end(), visibleItem.renderObjectId) !=
|
||||
m_selectedObjectIds.end();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user