New commits:
http://git.directfb.org/?p=core/DirectFB.git;a=commit;h=4a9192368170e7fbc39adfa6de63cd641ecb06cd
commit 4a9192368170e7fbc39adfa6de63cd641ecb06cd
Author: Andreas Shimokawa <[email protected]>
Date: Thu Oct 6 15:06:43 2011 +0200
gfx/generic: handle all combinations of DSBLIT_ROTATE_ and DSBLIT_FLIP_
when clipping and in gBlit()
It is now possible to specify all possible 32 combinations of
DSBLIT_ROTATE90, DSBLIT_ROTATE180, DSBLIT_ROTATE270,
DSBLIT_FLIP_HORIZONTAL and DSBLIT_FLIP_VERTICAL
These 32 combinations melt down to 8 unique, this can is done by
dfb_simplify_blittingflags() which strips DSBLIT_ROTATE180 and
DSBLIT_ROTATE270 and creates a combination of:
DSBLIT_FLIP_HORIZONTAL
DSBLIT_FLIP_VERTICAL
DSBLIT_ROTATE90
This greatly simplyfies code that has to handle all these combinations.
For compatibilty reasons the full combination of flags is still passed
to hardware drivers. Drivers could call dfb_simplify_blittingflags()
themselves.
On the long run this should already be done straight after
SetBlittingFlags()
in the core, so that DSBLIT_ROTATE_270 and DSBLIT_ROTATE_180 vanish
completely inside the core and the drivers.
This patch also fixes crashes, clipping and blitting errors when specifying
some compinations of rotation and flipping flags and implements the
remaining two cases of the 8 possible (rotation with horizontal or vertical
flipping) in gBlit() and dfb_clip_blit_flipped_rotated()
src/core/gfxcard.c | 32 ++++++++----
src/gfx/clip.c | 100 +++++++++++++++++----------------------
src/gfx/generic/generic.h | 2 +
src/gfx/generic/generic_blit.c | 50 +++++++++++++++-----
src/gfx/generic/generic_util.c | 6 ++
src/gfx/util.h | 20 ++++++++
6 files changed, 131 insertions(+), 79 deletions(-)
_______________________________________________
directfb-cvs mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-cvs