|
346 | 346 | MIN(x_end, dst_width), MIN(y_end, dst_height), |
347 | 347 | dst_width, dst_height, bytes_per_pixel, rgb565_dither); |
348 | 348 | } else { |
349 | | - y_end += 1; |
| 349 | + y_end += 1; // removes black lines between blocks |
350 | 350 | if (rotate == RGB_BUS_ROTATION_90 || rotate == RGB_BUS_ROTATION_270) { |
351 | 351 | x_start = MIN(x_start, dst_height); |
352 | 352 | x_end = MIN(x_end, dst_height); |
|
380 | 380 | if(x_start == 0 && x_end == (dst_width - 1) && !rgb565_dither) { |
381 | 381 | memcpy(dst, src, dst_width * (y_end - y_start + 1) * bytes_per_pixel); |
382 | 382 | } else { |
383 | | - uint32_t src_bytes_per_line = (x_end - x_start) * bytes_per_pixel; |
| 383 | + uint32_t src_bytes_per_line = (x_end - x_start + 1) * bytes_per_pixel; |
384 | 384 | uint32_t dst_bytes_per_line = dst_width * bytes_per_pixel; |
385 | 385 |
|
386 | 386 | if (rgb565_dither) { |
|
409 | 409 | uint32_t i; |
410 | 410 | uint32_t j; |
411 | 411 |
|
412 | | - uint32_t src_bytes_per_line = x_end - x_start; |
| 412 | + uint32_t src_bytes_per_line = x_end - x_start + 1; |
413 | 413 | uint32_t offset = y_start * src_bytes_per_line + x_start; |
414 | 414 |
|
415 | 415 | switch (rotate) { |
|
436 | 436 | src++; |
437 | 437 | i--; |
438 | 438 | } |
| 439 | + src++; |
439 | 440 | } |
440 | 441 | break; |
441 | 442 |
|
|
468 | 469 | uint32_t i; |
469 | 470 | uint32_t j; |
470 | 471 |
|
471 | | - uint32_t src_bytes_per_line = x_end - x_start; |
| 472 | + uint32_t src_bytes_per_line = x_end - x_start + 1; |
472 | 473 | uint32_t offset = y_start * src_bytes_per_line + x_start; |
473 | 474 |
|
474 | 475 | if (rgb565_dither) { |
|
498 | 499 | src++; |
499 | 500 | i--; |
500 | 501 | } |
| 502 | + src++; |
501 | 503 | } |
502 | 504 | break; |
503 | 505 |
|
|
545 | 547 | src++; |
546 | 548 | i--; |
547 | 549 | } |
548 | | - } |
| 550 | + src++; |
| 551 | + } |
549 | 552 | break; |
550 | 553 |
|
551 | 554 | // SWAP_XY MIRROR_X |
|
577 | 580 | uint32_t i; |
578 | 581 | uint32_t j; |
579 | 582 |
|
580 | | - uint32_t src_bytes_per_line = (x_end - x_start) * 3; |
| 583 | + uint32_t src_bytes_per_line = (x_end - x_start + 1) * 3; |
581 | 584 | uint32_t offset = y_start * src_bytes_per_line + x_start * 3; |
582 | 585 |
|
583 | 586 | switch (rotate) { |
|
605 | 608 | src += 3; |
606 | 609 | i -= 3; |
607 | 610 | } |
| 611 | + src++; |
608 | 612 | } |
609 | 613 | break; |
610 | 614 |
|
|
636 | 640 | uint32_t i; |
637 | 641 | uint32_t j; |
638 | 642 |
|
639 | | - uint32_t src_bytes_per_line = x_end - x_start; |
| 643 | + uint32_t src_bytes_per_line = x_end - x_start + 1; |
640 | 644 | uint32_t offset = y_start * src_bytes_per_line + x_start; |
641 | 645 |
|
642 | 646 | switch (rotate) { |
|
663 | 667 | src++; |
664 | 668 | i--; |
665 | 669 | } |
| 670 | + src++; |
666 | 671 | } |
667 | 672 | break; |
668 | 673 |
|
|
0 commit comments