MCPcopy Create free account
hub / github.com/DiligentGraphics/DiligentFX / DrawListItemRenderState

Class DrawListItemRenderState

Hydrogent/src/HnRenderPass.cpp:701–733  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

699 }
700
701 struct DrawListItemRenderState
702 {
703 const DrawListItem& Item;
704 mutable size_t Hash = 0;
705
706 struct Hasher
707 {
708 size_t operator()(const DrawListItemRenderState& State) const
709 {
710 if (State.Hash == 0)
711 {
712 State.Hash = ComputeHash(State.Item.pPSO,
713 State.Item.IndexBuffer,
714 State.Item.NumVertexBuffers,
715 State.Item.Material.GetSRB());
716 for (Uint32 i = 0; i < State.Item.NumVertexBuffers; ++i)
717 {
718 HashCombine(State.Hash, State.Item.VertexBuffers[i]);
719 }
720 }
721 return State.Hash;
722 }
723 };
724
725 bool operator==(const DrawListItemRenderState& rhs) const
726 {
727 return (Item.pPSO == rhs.Item.pPSO &&
728 Item.IndexBuffer == rhs.Item.IndexBuffer &&
729 Item.NumVertexBuffers == rhs.Item.NumVertexBuffers &&
730 Item.Material.GetSRB() == rhs.Item.Material.GetSRB() &&
731 Item.VertexBuffers == rhs.Item.VertexBuffers);
732 }
733 };
734 std::unordered_map<DrawListItemRenderState, Uint32, DrawListItemRenderState::Hasher> DrawListItemRenderStateIDs;
735
736 bool DrawListDirty = false;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected