gdiplus: Simplify modulo 8 math used for rendering origin.

Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Esme Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
master
Jeff Smith 2020-06-17 16:39:53 -05:00 committed by Alexandre Julliard
parent c80b236366
commit 47b0155f96
2 changed files with 7 additions and 7 deletions

View File

@ -159,8 +159,8 @@ static HBITMAP create_hatch_bitmap(const GpHatch *hatch, INT origin_x, INT origi
* degree of shading needed. */
for (y = 0; y < 8; y++)
{
const int hy = (((y + origin_y) % 8) + 8) % 8;
const int hx = ((origin_x % 8) + 8) % 8;
const int hy = (y + origin_y) & 7;
const int hx = origin_x & 7;
unsigned int row = (0x10101 * hatch_data[hy]) >> hx;
for (x = 0; x < 8; x++, row >>= 1)
@ -1198,13 +1198,13 @@ static GpStatus brush_fill_pixels(GpGraphics *graphics, GpBrush *brush,
/* See create_hatch_bitmap for an explanation of how index is derived. */
for (y = 0; y < fill_area->Height; y++, argb_pixels += cdwStride)
{
const int hy = (7 - ((y + fill_area->Y - graphics->origin_y) % 8)) % 8;
const int hx = ((graphics->origin_x % 8) + 8) % 8;
const int hy = ~(y + fill_area->Y - graphics->origin_y) & 7;
const int hx = graphics->origin_x & 7;
const unsigned int row = (0x10101 * hatch_data[hy]) >> hx;
for (x = 0; x < fill_area->Width; x++)
{
const unsigned int srow = row >> (7 - ((x + fill_area->X) % 8));
const unsigned int srow = row >> (~(x + fill_area->X) & 7);
int index;
if (hatch_data[8])
index = (srow & 1) ? 2 : (srow & 0x82) ? 1 : 0;

View File

@ -1814,8 +1814,8 @@ static void test_renderingOrigin(void)
for (i = 0; i < ARRAY_SIZE(tests); i++)
{
const INT exp_x = ((tests[i][0] % 8) + 8) % 8;
const INT exp_y = ((tests[i][1] % 8) + 8) % 8;
const INT exp_x = tests[i][0] & 7;
const INT exp_y = tests[i][1] & 7;
status = GdipSetRenderingOrigin(graphics_image, tests[i][0], tests[i][1]);
expect(Ok, status);