337 |
|
const int y2 = mainBuffer.pageInfo[page - 1].bottom; |
338 |
|
const int height = y2 - y1 + 1; |
339 |
|
|
340 |
< |
if (VideoMonitor.mode.depth == VDEPTH_1BIT) { |
340 |
> |
if (VideoMonitor.mode.depth < VDEPTH_8BIT) { |
341 |
|
|
342 |
|
// Update the_host_buffer and copy of the_buffer |
343 |
< |
const int bytes_per_row = VideoMonitor.mode.bytes_per_row; |
344 |
< |
int i = y1 * bytes_per_row, j; |
343 |
> |
const int src_bytes_per_row = VideoMonitor.mode.bytes_per_row; |
344 |
> |
const int dst_bytes_per_row = drv->img->bytes_per_line; |
345 |
> |
const int pixels_per_byte = VideoMonitor.mode.x / src_bytes_per_row; |
346 |
> |
int i1 = y1 * src_bytes_per_row, i2 = y1 * dst_bytes_per_row, j; |
347 |
|
for (j = y1; j <= y2; j++) { |
348 |
< |
Screen_blit(the_host_buffer + i, the_buffer + i, VideoMonitor.mode.x >> 3); |
349 |
< |
i += bytes_per_row; |
348 |
> |
Screen_blit(the_host_buffer + i2, the_buffer + i1, VideoMonitor.mode.x / pixels_per_byte); |
349 |
> |
i1 += src_bytes_per_row; |
350 |
> |
i2 += dst_bytes_per_row; |
351 |
|
} |
352 |
|
|
353 |
|
} else { |