-- v3: windowscodecs: Make support for WICBitmapTransformRotate270 more explicit.
From: Dmitry Timoshkov dmitry@baikal.ru
Signed-off-by: Dmitry Timoshkov dmitry@baikal.ru --- dlls/windowscodecs/fliprotate.c | 23 ++++++++++++++++------- dlls/windowscodecs/tests/bitmap.c | 12 ++++++++++++ 2 files changed, 28 insertions(+), 7 deletions(-)
diff --git a/dlls/windowscodecs/fliprotate.c b/dlls/windowscodecs/fliprotate.c index 6c7ecb963da..ef3df768604 100644 --- a/dlls/windowscodecs/fliprotate.c +++ b/dlls/windowscodecs/fliprotate.c @@ -259,16 +259,25 @@ static HRESULT WINAPI FlipRotator_Initialize(IWICBitmapFlipRotator *iface, goto end; }
- if (options&WICBitmapTransformRotate90) + switch (options & 3) { + case WICBitmapTransformRotate0: + break; + + case WICBitmapTransformRotate90: This->swap_xy = 1; - This->flip_x = !This->flip_x; - } + This->flip_x = 1; + break;
- if (options&WICBitmapTransformRotate180) - { - This->flip_x = !This->flip_x; - This->flip_y = !This->flip_y; + case WICBitmapTransformRotate180: + This->flip_x = 1; + This->flip_y = 1; + break; + + case WICBitmapTransformRotate270: + This->swap_xy = 1; + This->flip_y = 1; + break; }
if (options&WICBitmapTransformFlipHorizontal) diff --git a/dlls/windowscodecs/tests/bitmap.c b/dlls/windowscodecs/tests/bitmap.c index b409732f022..b73c0bc740c 100644 --- a/dlls/windowscodecs/tests/bitmap.c +++ b/dlls/windowscodecs/tests/bitmap.c @@ -1487,6 +1487,10 @@ static void test_FlipRotator(void) static BYTE dst_data_rotate180_flip_h[] = { 4,5,6, 1,2,3 }; static BYTE dst_data_rotate180_flip_v[] = { 3,2,1, 6,5,4 }; static BYTE dst_data_rotate180_flip_hv[] = { 1,2,3, 4,5,6 }; + static BYTE dst_data_rotate270[] = { 3,6, 2,5, 1,4 }; + static BYTE dst_data_rotate270_flip_h[] = { 1,4, 2,5, 3,6 }; + static BYTE dst_data_rotate270_flip_v[] = { 6,3, 5,2, 4,1 }; + static BYTE dst_data_rotate270_flip_hv[] = { 4,1, 5,2, 6,3 }; static BYTE dst_data_flip_h[] = { 3,2,1, 6,5,4 }; static BYTE dst_data_flip_v[] = { 4,5,6, 1,2,3 }; static BYTE dst_data_flip_hv[] = { 6,5,4, 3,2,1 }; @@ -1506,9 +1510,17 @@ static void test_FlipRotator(void) { WICBitmapTransformRotate180 | WICBitmapTransformFlipHorizontal, 3, 2, dst_data_rotate180_flip_h }, { WICBitmapTransformRotate180 | WICBitmapTransformFlipVertical, 3, 2, dst_data_rotate180_flip_v }, { WICBitmapTransformRotate180 | WICBitmapTransformFlipHorizontal | WICBitmapTransformFlipVertical, 3, 2, dst_data_rotate180_flip_hv }, + { WICBitmapTransformRotate270, 2, 3, dst_data_rotate270 }, + { WICBitmapTransformRotate270 | WICBitmapTransformFlipHorizontal, 2, 3, dst_data_rotate270_flip_h }, + { WICBitmapTransformRotate270 | WICBitmapTransformFlipVertical, 2, 3, dst_data_rotate270_flip_v }, + { WICBitmapTransformRotate270 | WICBitmapTransformFlipHorizontal | WICBitmapTransformFlipVertical, 2, 3, dst_data_rotate270_flip_hv }, { WICBitmapTransformFlipHorizontal, 3, 2, dst_data_flip_h }, { WICBitmapTransformFlipVertical, 3, 2, dst_data_flip_v }, { WICBitmapTransformFlipHorizontal | WICBitmapTransformFlipVertical, 3, 2, dst_data_flip_hv }, + { 7, 2, 3, dst_data_rotate270 }, + { 7 | WICBitmapTransformFlipHorizontal, 2, 3, dst_data_rotate270_flip_h }, + { 7 | WICBitmapTransformFlipVertical, 2, 3, dst_data_rotate270_flip_v }, + { 7 | WICBitmapTransformFlipHorizontal | WICBitmapTransformFlipVertical, 2, 3, dst_data_rotate270_flip_hv }, }; HRESULT hr; IWICBitmap *bitmap;
On Mon Mar 3 11:04:47 2025 +0000, Jinoh Kang wrote:
In any case, the commit message is misleading and should be reworded on commit.
Does the commit message in new version of the patch make it better?
On Mon Mar 3 14:51:32 2025 +0000, Dmitry Timoshkov wrote:
Does the commit message in new version of the patch make it better?
Works for me, thanks!