}
}
-void copy_rgb_buffer(char* _dst, char* raw_data,
- int width, int height, int top, int left,
- int bpp) {
+void copy_rgb_buffer_from_unlocked(
+ char* _dst, char* raw_data,
+ int unlockedWidth,
+ int width, int height, int top, int left,
+ int bpp) {
char* dst = _dst;
int dst_line_len = width * bpp;
- int src_line_len = width * bpp;
+ int src_line_len = unlockedWidth * bpp;
char *src = (char *)raw_data + top*src_line_len + left*bpp;
- for (int y = 0; y < height; y++)
+ for (int y = 0; y < height; y++) {
memcpy(dst, src, dst_line_len);
- src += src_line_len;
- dst += dst_line_len;
+ src += src_line_len;
+ dst += dst_line_len;
+ }
}
int left, int top, int right, int bottom);
void yuv420p_to_rgb888(char* dest, char* src, int width, int height,
int left, int top, int right, int bottom);
-void copy_rgb_buffer(char* _dst, char* raw_data,
- int width, int height, int top, int left,
- int bpp);
+void copy_rgb_buffer_from_unlocked(char* _dst, char* raw_data,
+ int unlockedWidth,
+ int width, int height, int top, int left,
+ int bpp);
#endif
}
if (doLocked && is_rgb_format) {
- copy_rgb_buffer(to_send, pixels, width, height, top, left, bpp);
+ copy_rgb_buffer_from_unlocked(
+ to_send, pixels,
+ cb->width,
+ width, height, top, left, bpp);
}
if (cb->goldfish_dma.fd > 0) {