Ejemplo n.º 1
0
        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))
                            );
            }
        }
Ejemplo n.º 2
0
 public DiffMemoryRegion(RegionType type, ulong begin, ulong size, string displayName)
     : base(type, begin, size, displayName)
 {
     m_Snapshot = PresenceInSnapshots.None;
 }