void RenderRegionsDiff(ulong addressMin, ulong addressMax) { for (int i = 0; i < m_SnapshotMemoryRegion.Length; ++i) { if (m_SnapshotMemoryRegion[i].Type == RegionType.VirtualMemory && !GetDisplayElement(DisplayElements.VirtualMemory)) { continue; } ulong stripGroupAddrBegin = m_SnapshotMemoryRegion[i].AddressBegin.Clamp(addressMin, addressMax); ulong stripGroupAddrEnd = m_SnapshotMemoryRegion[i].AddressEnd.Clamp(addressMin, addressMax); if (stripGroupAddrBegin == stripGroupAddrEnd) { continue; } PresenceInSnapshots entryMask = m_SnapshotMemoryRegion[i].m_Snapshot; MemoryGroup group = m_Groups[m_SnapshotMemoryRegion[i].Group]; RenderStrip(group, stripGroupAddrBegin, stripGroupAddrEnd, (Color32 c) => Max(c, new Color32((byte)(entryMask == PresenceInSnapshots.First ? 0xFF : 0x00), (byte)(entryMask == PresenceInSnapshots.Second ? 0xFF : 0x00), (byte)(entryMask == PresenceInSnapshots.Both ? 0xFF : 0x00), m_SnapshotMemoryRegion[i].ColorRegion.a)) ); } }
public DiffMemoryRegion(RegionType type, ulong begin, ulong size, string displayName) : base(type, begin, size, displayName) { m_Snapshot = PresenceInSnapshots.None; }