GH*master Expert Cheater Reputation: 8
Joined: 10 Jan 2008 Posts: 159
|
Posted: Tue Jan 03, 2017 2:00 am Post subject: CE 6.6 Lua. OnExtraLineRender. Marked addresses |
|
|
Sometimes I need to paint addresses in debugging with different colors. My suggestion.
Code: | ClRed = 0x0000FF
ClGreen = 0x008000
ClBlue = 0xFF0000
extraLineRender_defaultColor = ClGreen
extraLineRender_tableAddress = {}
extraLineRender_X = 60
extraLineRender_Y = -20
--RasterImage OPTIONAL, x OPTIONAL, y OPTIONAL
function OnExtraLineRender(sender_disassemblerviewLine, address, aboveInstruction, selected)
for i = 1, #extraLineRender_tableAddress do
if(extraLineRender_tableAddress[i] == address) then
if(aboveInstruction) then
return commentImage, extraLineRender_X - 100, extraLineRender_Y
else
return commentImage, extraLineRender_X, extraLineRender_Y
end
end
end
end
function ExtraLineRender_Init()
local disassemblerView = getMemoryViewForm().DisassemblerView
disassemblerView.OnExtraLineRender = OnExtraLineRender
local width = 20
local height = 20
if(commentImage == nil) then
commentImage = createBitmap(width, height)
end
commentImage.Width = width
commentImage.Height = height
commentImage.Canvas.clear()
commentImage.Canvas.Pen.Color = extraLineRender_defaultColor
commentImage.Canvas.Brush.Color = extraLineRender_defaultColor
commentImage.Canvas.fillRect(0, 0, commentImage.Width, commentImage.Height)
commentImage.Canvas.Brush.Color = 0xC8D0D4
commentImage.Canvas.fillRect(0, 0, commentImage.Width, commentImage.Height-13)
end
function ExtraLineRender_NewTable(newTable)
extraLineRender_tableAddress = newTable
end
--
function ExtraLineRender_AddRecord(address)
table.insert(extraLineRender_tableAddress,address)
end
function ExtraLineRender_RemoveRecord(address)
for key,value in pairs(extraLineRender_tableAddress) do
if(address == value) then
table.remove(extraLineRender_tableAddress, key)
end
end
end
ExtraLineRender_Init()
ExtraLineRender_AddRecord(0x004556E3)
ExtraLineRender_AddRecord(0x004556EF) |
|
|