private void DrawBase1(Core core, int windowSize, int dataLength) // OPTIMAL
{
/* parse window */
var OPLIST = new List<char>();
g.Clear(Color.Black);
for (int i = 0; i < dataLength; i++) // length
{
int psudoCursor = core.pageHistory[i].loc;
char data = core.pageHistory[i].data;
Page.STATUS status = core.pageHistory[i].status;
switch (status)
{
case Page.STATUS.PAGEFAULT:
OPLIST.Add(data);
break;
case Page.STATUS.MIGRATION:
OPLIST.RemoveAt(2);
OPLIST.Insert(2,data);
break;
}
for (int j = 0; j <= windowSize; j++) // height - STEP
{
if (j == 0)
{
DrawGridText1(i, j, data);
}
else
{
DrawGrid1(i, j);
}
}
DrawGridHighlight1(i, psudoCursor, status);
int depth = 1;
foreach (char t in OPLIST)
{
DrawGridText1(i, depth++, t);
}
}
}
private void DrawGridHighlight1(int x, int y, Page.STATUS status)
{
int gridSize = 30;
int gridSpace = 5;
int gridBaseX = x * gridSize;
int gridBaseY = y * gridSize;
SolidBrush highlighter = new SolidBrush(Color.LimeGreen);
switch (status)
{
case Page.STATUS.HIT:
break;
case Page.STATUS.MIGRATION:
highlighter.Color = Color.Blue;
break;
case Page.STATUS.PAGEFAULT:
highlighter.Color = Color.Red;
break;
}
g.FillRectangle(highlighter, new Rectangle(
gridBaseX + (x * gridSpace),
gridBaseY,
gridSize,
gridSize
));
}
이거 MIGRATION 에서 3번째칸을 삭제하고 3번째칸에 데이터를 넣는데 자꾸 파란색은 4번째칸에 처박히는 이유가 뭔가요?..
댓글 0