diff --git a/patches/gdi32-rotation/0001-gdi32-fix-for-rotated-Arc-ArcTo-Chord-and-Pie-drawin.patch b/patches/gdi32-rotation/0001-gdi32-fix-for-rotated-Arc-ArcTo-Chord-and-Pie-drawin.patch index 42aaa469..801f84d3 100644 --- a/patches/gdi32-rotation/0001-gdi32-fix-for-rotated-Arc-ArcTo-Chord-and-Pie-drawin.patch +++ b/patches/gdi32-rotation/0001-gdi32-fix-for-rotated-Arc-ArcTo-Chord-and-Pie-drawin.patch @@ -82,15 +82,15 @@ index 9ebcaf7e4a3..c4456a76e77 100644 + BOOL exclude_rotation = FALSE; + XFORM old; + XFORM rotation_and_translation; -+ if (GetGraphicsMode( pdev->dev.hdc ) == GM_ADVANCED) ++ if (dc->attr->graphics_mode == GM_ADVANCED) + { + XFORM xf; -+ GetWorldTransform( pdev->dev.hdc, &old ); ++ NtGdiGetTransform( pdev->dev.hdc, 0x203, &old ); + xf = old; + if (xform_has_rotate_and_uniform_scale_and_shear( &xf ) && + xform_decompose_rotation_and_translation( &xf, &rotation_and_translation )) + { -+ SetWorldTransform( pdev->dev.hdc, &xf ); ++ NtGdiModifyWorldTransform( pdev->dev.hdc, &xf, MWT_SET ); + exclude_rotation = TRUE; + } + } @@ -105,11 +105,11 @@ index 9ebcaf7e4a3..c4456a76e77 100644 + + if (exclude_rotation == TRUE) + { -+ SetWorldTransform( pdev->dev.hdc, &rotation_and_translation ); ++ NtGdiModifyWorldTransform( pdev->dev.hdc, &rotation_and_translation, MWT_SET ); + /* apply rotation and translation to calculated points */ -+ LPtoDP( dev->hdc, points, count ); ++ NtGdiTransformPoints( dev->hdc, points, points, count, NtGdiLPtoDP ); + /* restore origin matrix */ -+ SetWorldTransform( pdev->dev.hdc, &old ); ++ NtGdiModifyWorldTransform( pdev->dev.hdc, &old, MWT_SET ); + } + if (count < 2) diff --git a/patches/gdi32-rotation/0002-gdi32-fix-for-rotated-ellipse.patch b/patches/gdi32-rotation/0002-gdi32-fix-for-rotated-ellipse.patch index 7ff99c45..0e15f9f4 100644 --- a/patches/gdi32-rotation/0002-gdi32-fix-for-rotated-ellipse.patch +++ b/patches/gdi32-rotation/0002-gdi32-fix-for-rotated-ellipse.patch @@ -20,15 +20,15 @@ index da9144f0862..6a0519644f4 100644 + XFORM old; + XFORM rotation_and_translation; + -+ if (GetGraphicsMode( pdev->dev.hdc ) == GM_ADVANCED) ++ if (dc->attr->graphics_mode == GM_ADVANCED) + { + XFORM xf; -+ GetWorldTransform( pdev->dev.hdc, &old ); ++ NtGdiGetTransform( pdev->dev.hdc, 0x203, &old ); + xf = old; + if (xform_has_rotate_and_uniform_scale_and_shear( &xf ) && + xform_decompose_rotation_and_translation( &xf, &rotation_and_translation )) + { -+ SetWorldTransform( pdev->dev.hdc, &xf ); ++ NtGdiModifyWorldTransform( pdev->dev.hdc, &xf, MWT_SET ); + exclude_rotation_translation = TRUE; + } + } @@ -66,15 +66,15 @@ index da9144f0862..6a0519644f4 100644 + if (exclude_rotation_translation == TRUE) + { -+ SetWorldTransform( pdev->dev.hdc, &rotation_and_translation ); ++ NtGdiModifyWorldTransform( pdev->dev.hdc, &rotation_and_translation, MWT_SET ); + /* apply rotation and translation to calculated points */ -+ LPtoDP( dev->hdc, points, count ); ++ NtGdiTransformPoints( dev->hdc, points, points, count, NtGdiLPtoDP ); + /* restore origin matrix */ -+ SetWorldTransform( pdev->dev.hdc, &old ); ++ NtGdiModifyWorldTransform( pdev->dev.hdc, &old, MWT_SET ); + } + + if (pdev->brush.style != BS_NULL && -+ !(interior = CreatePolygonRgn(points, count, ALTERNATE))) ++ !(interior = NtGdiPolyPolyDraw( ULongToHandle(ALTERNATE), points, (const UINT *)&count, 1, NtGdiPolyPolygonRgn ))) + { + HeapFree( GetProcessHeap(), 0, points ); + if (outline) NtGdiDeleteObjectApp( outline ); diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 19da8c07..53416f7e 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -51,7 +51,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "bcdb28a563d43f2aebe28f457497bb36f59a50ea" + echo "08b01d8271fe15c7680a957778d506221d7d94eb" } # Show version information diff --git a/staging/upstream-commit b/staging/upstream-commit index 13d397ba..abef45a7 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -bcdb28a563d43f2aebe28f457497bb36f59a50ea +08b01d8271fe15c7680a957778d506221d7d94eb