32 const uint16_t *src_origin,
int x_start,
int y_start,
int w,
int h,
size_t stride) {
35 for (
int py = 0; py <
h; py++) {
36 memcpy(&fb[(y_start + py) * fb_width + x_start], src_origin +
static_cast<size_t>(py) * stride,
37 w *
sizeof(uint16_t));
42 const size_t x_dest_offset = fb_width - y_start -
h;
43 for (
int px = 0; px < w; px++) {
44 uint16_t *dest = &fb[(x_start + px) * fb_width + x_dest_offset];
45 for (
int py = 0; py <
h; py++) {
46 *dest++ = src_origin[
static_cast<size_t>(
h - 1 - py) * stride + px];
52 const size_t x_dest_offset = fb_width - x_start - w;
53 for (
int py = 0; py <
h; py++) {
54 uint16_t *dest = &fb[(fb_height - 1 - (y_start + py)) * fb_width + x_dest_offset];
55 const uint16_t *src_row = src_origin +
static_cast<size_t>(py) * stride;
56 for (
int px = 0; px < w; px++) {
57 *dest++ = src_row[w - 1 - px];
63 for (
int px = 0; px < w; px++) {
64 uint16_t *dest = &fb[(fb_height - 1 - x_start - px) * fb_width + y_start];
65 const uint16_t *s = src_origin + px;
66 for (
int py = 0; py <
h; py++) {
void blit_rotated_565(uint16_t *fb, int fb_width, int fb_height, display::DisplayRotation rotation, const uint16_t *src_origin, int x_start, int y_start, int w, int h, size_t stride)