using BizHawk.Emulation.Common;

namespace BizHawk.Emulation.Cores.Calculators
{
	public partial class TI83  : IVideoProvider
	{
		public int VirtualWidth{ get { return 96; } }
		public int VirtualHeight { get { return 64; } }
		public int BufferWidth { get { return 96; } }
		public int BufferHeight { get { return 64; } }
		public int BackgroundColor { get { return 0; } }

		public int[] GetVideoBuffer()
		{
			// unflatten bit buffer
			int[] pixels = new int[96 * 64];
			int i = 0;
			for (int y = 0; y < 64; y++)
			{
				for (int x = 0; x < 96; x++)
				{
					int offset = y * 96 + x;
					int bufbyte = offset >> 3;
					int bufbit = offset & 7;
					int bit = ((_vram[bufbyte] >> (7 - bufbit)) & 1);
					if (bit == 0)
					{
						unchecked { pixels[i++] = (int)Settings.BGColor; }
					}
					else
					{
						pixels[i++] = (int)Settings.ForeColor;
					}

				}
			}

			return pixels;
		}
	}
}
