Hi,
unichrome driver has a bug when source and destination surface are not
of the same size and when only a section of the source surface should be
blitted to the destination surface.
uc_accel.c:
static bool uc_blit_planar(void* drv, void* dev, DFBRectangle* rect, int dx,
int dy)
{
UC_ACCEL_BEGIN()
int uv_dst_offset = ucdev->dst_offset + (ucdev->dst_pitch * rect->h);
int uv_src_offset = ucdev->src_offset + (ucdev->src_pitch * rect->h);
If rect is the source rect which should be blitted then:
- destination offset of y plane should be advanced by dst_pitch * dy.
- dest offset of 1st uv plane is dst_offset + dest_pitch * dst_high +
(dst_pitch * dy) / 4.
- dest offset of 2nd uv plane is (dest_pitch * dst_high) / 4 past 1st plane
offset.
dest_high is not part of ucdev struct I guess.
--
Stefan Lucke
_______________________________________________
directfb-dev mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev