_frameBuffer is now populated with correct data immediately, rather than converted during the IVideoProvider cycle
This commit is contained in:
parent
2b880d863b
commit
38ee7147b3
|
@ -38,7 +38,7 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The main screen buffer
|
/// The main screen buffer
|
||||||
/// </summary>
|
/// </summary>
|
||||||
protected byte[] _frameBuffer;
|
protected int[] _frameBuffer;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Pixel and attribute info stored while rendering the screen
|
/// Pixel and attribute info stored while rendering the screen
|
||||||
|
@ -531,8 +531,8 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum
|
||||||
protected virtual void SetPixels(int colorIndex1, int colorIndex2)
|
protected virtual void SetPixels(int colorIndex1, int colorIndex2)
|
||||||
{
|
{
|
||||||
var pos = _yPos * ScreenWidth + _xPos;
|
var pos = _yPos * ScreenWidth + _xPos;
|
||||||
_frameBuffer[pos++] = (byte)colorIndex1;
|
_frameBuffer[pos++] = ULAPalette[colorIndex1];
|
||||||
_frameBuffer[pos] = (byte)colorIndex2;
|
_frameBuffer[pos] = ULAPalette[colorIndex2];
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -785,7 +785,7 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum
|
||||||
//BorderDevice.Reset();
|
//BorderDevice.Reset();
|
||||||
_flashPhase = false;
|
_flashPhase = false;
|
||||||
|
|
||||||
_frameBuffer = new byte[ScreenWidth * ScreenLines];
|
_frameBuffer = new int[ScreenWidth * ScreenLines];
|
||||||
|
|
||||||
InitULACycleTable();
|
InitULACycleTable();
|
||||||
|
|
||||||
|
@ -912,6 +912,8 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum
|
||||||
*/
|
*/
|
||||||
public int[] GetVideoBuffer()
|
public int[] GetVideoBuffer()
|
||||||
{
|
{
|
||||||
|
return _frameBuffer;
|
||||||
|
|
||||||
// convert the generated _framebuffer into ARGB colours via the ULAPalette
|
// convert the generated _framebuffer into ARGB colours via the ULAPalette
|
||||||
int[] trans = new int[_frameBuffer.Length];
|
int[] trans = new int[_frameBuffer.Length];
|
||||||
for (int i = 0; i < _frameBuffer.Length; i++)
|
for (int i = 0; i < _frameBuffer.Length; i++)
|
||||||
|
|
Loading…
Reference in New Issue