Expand drawHLineDma loop.

This commit is contained in:
František Jahoda 2017-12-17 00:54:57 +01:00
parent 30d0a8aedb
commit 2da54945b6
1 changed files with 11 additions and 2 deletions

View File

@ -215,8 +215,17 @@ static u8 getPixel(tic_machine* machine, s32 x, s32 y)
static void drawHLineDma(tic_mem* memory, s32 xl, s32 xr, s32 y, u8 color) static void drawHLineDma(tic_mem* memory, s32 xl, s32 xr, s32 y, u8 color)
{ {
for(s32 x = xl; x < xr; ++x) { color = color << 4 | color;
tic_tool_poke4(&memory->ram.vram.screen.data, y * TIC80_WIDTH + x, color); if (xl >= xr) return;
if (xl & 1) {
tic_tool_poke4(&memory->ram.vram.screen.data, y * TIC80_WIDTH + xl, color);
xl++;
}
for(s32 x = xl; x + 1 < xr; x+=2) {
memory->ram.vram.screen.data[(y * TIC80_WIDTH + x) >> 1] = color;
}
if (xr & 1) {
tic_tool_poke4(&memory->ram.vram.screen.data, y * TIC80_WIDTH + xr - 1, color);
} }
} }