some fixes to input roll drawing, but it is massively messed up
This commit is contained in:
parent
daf6f516c6
commit
23fcb4c1a0
|
@ -14,28 +14,31 @@ namespace BizHawk.Client.EmuHawk
|
||||||
using (_renderer.LockGraphics(e.Graphics))
|
using (_renderer.LockGraphics(e.Graphics))
|
||||||
{
|
{
|
||||||
// White Background
|
// White Background
|
||||||
_renderer.SetBrush(Color.White);
|
_renderer.SetBrush(Color.Red);
|
||||||
_renderer.SetSolidPen(Color.White);
|
_renderer.SetSolidPen(Color.White);
|
||||||
_renderer.FillRectangle(e.ClipRectangle);
|
_renderer.FillRectangle(e.ClipRectangle);
|
||||||
|
|
||||||
// Lag frame calculations
|
// Lag frame calculations
|
||||||
SetLagFramesArray();
|
SetLagFramesArray();
|
||||||
|
|
||||||
List<RollColumn> visibleColumns;
|
List<RollColumn> dirtyColumns = new List<RollColumn>();
|
||||||
|
|
||||||
if (HorizontalOrientation)
|
if (HorizontalOrientation)
|
||||||
{
|
{
|
||||||
CalculateHorizontalColumnPositions(VisibleColumns.ToList());
|
CalculateHorizontalColumnPositions(VisibleColumns.ToList());
|
||||||
visibleColumns = VisibleColumns
|
dirtyColumns = VisibleColumns
|
||||||
.Take(_horizontalColumnTops.Count(c => c < e.ClipRectangle.Height))
|
.Take(_horizontalColumnTops.Count(c => c < e.ClipRectangle.Height))
|
||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
visibleColumns = _columns.VisibleColumns
|
foreach (var c in _columns.VisibleColumns)
|
||||||
.Where(c => c.Right > _hBar.Value)
|
{
|
||||||
.Where(c => c.Left - _hBar.Value < e.ClipRectangle.Width)
|
int vizLeft = c.Left - _hBar.Value;
|
||||||
.ToList();
|
int vizRight = c.Right - _hBar.Value;
|
||||||
|
if (vizLeft < e.ClipRectangle.Right && vizRight >= e.ClipRectangle.Left)
|
||||||
|
dirtyColumns.Add(c);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var firstVisibleRow = Math.Max(FirstVisibleRow, 0);
|
var firstVisibleRow = Math.Max(FirstVisibleRow, 0);
|
||||||
|
@ -45,21 +48,21 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
var lastVisibleRow = firstVisibleRow + visibleRows;
|
var lastVisibleRow = firstVisibleRow + visibleRows;
|
||||||
|
|
||||||
var needsColumnRedraw = HorizontalOrientation || e.ClipRectangle.Y < ColumnHeight;
|
var needsColumnRedraw = HorizontalOrientation || e.ClipRectangle.Y >= ColumnHeight;
|
||||||
if (visibleColumns.Any() && needsColumnRedraw)
|
if (dirtyColumns.Any() && needsColumnRedraw)
|
||||||
{
|
{
|
||||||
DrawColumnBg(visibleColumns, e.ClipRectangle);
|
DrawColumnBg(dirtyColumns, e.ClipRectangle);
|
||||||
DrawColumnText(visibleColumns);
|
DrawColumnText(dirtyColumns);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Background
|
// Background
|
||||||
DrawBg(visibleColumns, e.ClipRectangle, firstVisibleRow, lastVisibleRow);
|
DrawBg(dirtyColumns, e.ClipRectangle, firstVisibleRow, lastVisibleRow);
|
||||||
|
|
||||||
// Foreground
|
// Foreground
|
||||||
DrawData(visibleColumns, firstVisibleRow, lastVisibleRow);
|
DrawData(dirtyColumns, firstVisibleRow, lastVisibleRow);
|
||||||
|
|
||||||
DrawColumnDrag(visibleColumns);
|
DrawColumnDrag(dirtyColumns);
|
||||||
DrawCellDrag(visibleColumns);
|
DrawCellDrag(dirtyColumns);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue