mirror of
https://github.com/slint-ui/slint.git
synced 2025-08-04 10:50:00 +00:00
Add span_y to draw_texture to fix partial texture draws
This commit is contained in:
parent
3855cf6b9c
commit
491cb2f911
3 changed files with 19 additions and 11 deletions
|
@ -549,7 +549,7 @@ struct TargetPixelBuffer
|
|||
|
||||
virtual bool fill_rectangle(int16_t x, int16_t y, int16_t width, int16_t height,
|
||||
const RgbaColor<uint8_t> &premultiplied_color) = 0;
|
||||
virtual bool draw_texture(int16_t x, int16_t y, int16_t width, int16_t height,
|
||||
virtual bool draw_texture(int16_t x, int16_t y, int16_t width, int16_t height, int16_t span_y,
|
||||
const uint8_t *src, uint16_t src_stride, int16_t src_width,
|
||||
int16_t src_height, uint8_t src_pixel_format, uint16_t src_dx,
|
||||
uint16_t src_dy, uint16_t src_off_x, uint16_t src_off_y,
|
||||
|
@ -726,15 +726,15 @@ public:
|
|||
Color::from_argb_uint8(alpha, red, green, blue));
|
||||
},
|
||||
.draw_texture =
|
||||
[](void *self, int16_t x, int16_t y, int16_t width, int16_t handle,
|
||||
const uint8_t *src, uint16_t src_stride, int16_t src_width,
|
||||
[](void *self, int16_t x, int16_t y, int16_t width, int16_t height,
|
||||
int16_t span_y, const uint8_t *src, uint16_t src_stride, int16_t src_width,
|
||||
int16_t src_height, uint8_t src_pixel_format, uint16_t src_dx,
|
||||
uint16_t src_dy, uint16_t src_off_x, uint16_t src_off_y, uint32_t colorize,
|
||||
uint8_t alpha, uint8_t rotation) {
|
||||
auto *buffer = reinterpret_cast<TargetPixelBuffer<Rgb8Pixel> *>(self);
|
||||
return buffer->draw_texture(x, y, width, handle, src, src_stride, src_width,
|
||||
src_height, src_pixel_format, src_dx, src_dy,
|
||||
src_off_x, src_off_y, colorize, alpha,
|
||||
return buffer->draw_texture(x, y, width, height, span_y, src, src_stride,
|
||||
src_width, src_height, src_pixel_format, src_dx,
|
||||
src_dy, src_off_x, src_off_y, colorize, alpha,
|
||||
rotation);
|
||||
}
|
||||
};
|
||||
|
@ -768,15 +768,15 @@ public:
|
|||
Color::from_argb_uint8(alpha, red, green, blue));
|
||||
},
|
||||
.draw_texture =
|
||||
[](void *self, int16_t x, int16_t y, int16_t width, int16_t handle,
|
||||
const uint8_t *src, uint16_t src_stride, int16_t src_width,
|
||||
[](void *self, int16_t x, int16_t y, int16_t width, int16_t height,
|
||||
int16_t span_y, const uint8_t *src, uint16_t src_stride, int16_t src_width,
|
||||
int16_t src_height, uint8_t src_pixel_format, uint16_t src_dx,
|
||||
uint16_t src_dy, uint16_t src_off_x, uint16_t src_off_y, uint32_t colorize,
|
||||
uint8_t alpha, uint8_t rotation) {
|
||||
auto *buffer = reinterpret_cast<TargetPixelBuffer<Rgb565Pixel> *>(self);
|
||||
return buffer->draw_texture(x, y, width, handle, src, src_stride, src_width,
|
||||
src_height, src_pixel_format, src_dx, src_dy,
|
||||
src_off_x, src_off_y, colorize, alpha,
|
||||
return buffer->draw_texture(x, y, width, height, span_y, src, src_stride,
|
||||
src_width, src_height, src_pixel_format, src_dx,
|
||||
src_dy, src_off_x, src_off_y, colorize, alpha,
|
||||
rotation);
|
||||
}
|
||||
};
|
||||
|
|
|
@ -390,6 +390,7 @@ mod software_renderer {
|
|||
i16,
|
||||
i16,
|
||||
i16,
|
||||
i16,
|
||||
*const u8,
|
||||
u16,
|
||||
i16,
|
||||
|
@ -450,6 +451,7 @@ mod software_renderer {
|
|||
y: i16,
|
||||
width: i16,
|
||||
height: i16,
|
||||
span_y: i16,
|
||||
src: *const u8,
|
||||
src_stride: u16,
|
||||
src_width: i16,
|
||||
|
@ -470,6 +472,7 @@ mod software_renderer {
|
|||
y,
|
||||
width,
|
||||
height,
|
||||
span_y,
|
||||
src,
|
||||
src_stride,
|
||||
src_width,
|
||||
|
@ -514,6 +517,7 @@ mod software_renderer {
|
|||
i16,
|
||||
i16,
|
||||
i16,
|
||||
i16,
|
||||
*const u8,
|
||||
u16,
|
||||
i16,
|
||||
|
@ -574,6 +578,7 @@ mod software_renderer {
|
|||
y: i16,
|
||||
width: i16,
|
||||
height: i16,
|
||||
span_y: i16,
|
||||
src: *const u8,
|
||||
src_stride: u16,
|
||||
src_width: i16,
|
||||
|
@ -594,6 +599,7 @@ mod software_renderer {
|
|||
y,
|
||||
width,
|
||||
height,
|
||||
span_y,
|
||||
src,
|
||||
src_stride,
|
||||
src_width,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue