BizHawk/BizHawk.Emulation.Cores/Computers/Commodore64/MOS/Vic.VideoProvider.cs

64 lines
1.6 KiB
C#
Raw Normal View History

2017-05-30 17:09:46 +00:00
using BizHawk.Common;
using BizHawk.Emulation.Common;
namespace BizHawk.Emulation.Cores.Computers.Commodore64.MOS
{
2016-02-22 23:50:11 +00:00
public sealed partial class Vic : IVideoProvider
{
private static readonly int BgColor = Colors.ARGB(0, 0, 0);
private int[] _buf;
private int _bufHeight;
private int _bufLength;
2016-02-22 23:50:11 +00:00
private int _bufOffset;
private int _bufWidth;
private const int PixBufferSize = 24;
private const int PixBorderBufferSize = 12;
2017-04-24 13:35:05 +00:00
private int[] _pixBuffer;
2016-02-22 23:50:11 +00:00
private int _pixBufferIndex;
2017-04-24 13:35:05 +00:00
private int[] _pixBorderBuffer;
private int _pixBufferBorderIndex;
2017-04-24 13:35:05 +00:00
// palette
private static readonly int[] Palette =
2013-11-12 19:22:09 +00:00
{
2017-05-30 17:09:46 +00:00
Colors.ARGB(0x00, 0x00, 0x00),
Colors.ARGB(0xFF, 0xFF, 0xFF),
Colors.ARGB(0x68, 0x37, 0x2B),
Colors.ARGB(0x70, 0xA4, 0xB2),
Colors.ARGB(0x6F, 0x3D, 0x86),
Colors.ARGB(0x58, 0x8D, 0x43),
Colors.ARGB(0x35, 0x28, 0x79),
Colors.ARGB(0xB8, 0xC7, 0x6F),
Colors.ARGB(0x6F, 0x4F, 0x25),
Colors.ARGB(0x43, 0x39, 0x00),
Colors.ARGB(0x9A, 0x67, 0x59),
Colors.ARGB(0x44, 0x44, 0x44),
Colors.ARGB(0x6C, 0x6C, 0x6C),
Colors.ARGB(0x9A, 0xD2, 0x84),
Colors.ARGB(0x6C, 0x5E, 0xB5),
Colors.ARGB(0x95, 0x95, 0x95)
2013-11-12 19:22:09 +00:00
};
2017-05-30 17:09:46 +00:00
public int BackgroundColor => BgColor;
2017-05-30 17:09:46 +00:00
public int BufferHeight => _bufHeight;
2017-05-30 17:09:46 +00:00
public int BufferWidth => _bufWidth;
public int[] GetVideoBuffer()
{
2016-02-22 23:50:11 +00:00
return _buf;
}
2017-04-24 13:35:05 +00:00
public int VirtualWidth { get; private set; }
2017-04-24 13:35:05 +00:00
public int VirtualHeight { get; private set; }
public int VsyncNumerator => CyclesPerSecond;
public int VsyncDenominator => CyclesPerFrame;
}
}