From 6b900a47fe56c061b90a87a22d3ab6d10e979c8f Mon Sep 17 00:00:00 2001 From: Marko Zivic Date: Thu, 17 Oct 2024 18:50:29 +0200 Subject: [PATCH] Removed aaline width --- buildconfig/stubs/pygame/draw.pyi | 1 - .../ref/code_examples/draw_module_example.png | Bin 13220 -> 13391 bytes docs/reST/ref/draw.rst | 8 - src_c/doc/draw_doc.h | 2 +- src_c/draw.c | 8 +- test/draw_test.py | 190 +++++------------- 6 files changed, 53 insertions(+), 156 deletions(-) diff --git a/buildconfig/stubs/pygame/draw.pyi b/buildconfig/stubs/pygame/draw.pyi index 68ad3ace5b..b6d057f879 100644 --- a/buildconfig/stubs/pygame/draw.pyi +++ b/buildconfig/stubs/pygame/draw.pyi @@ -82,7 +82,6 @@ def aaline( color: ColorLike, start_pos: Point, end_pos: Point, - width: int = 1, ) -> Rect: ... def aalines( surface: Surface, diff --git a/docs/reST/ref/code_examples/draw_module_example.png b/docs/reST/ref/code_examples/draw_module_example.png index 6e3e6af13cc0b21b83d1f9f54e94843e8dfe3634..67234a985b066d392f8d690111e6de4269d5738e 100644 GIT binary patch delta 9621 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 EFHM^AC;$Ke delta 9598 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 Rect` - :sg:`aaline(surface, color, start_pos, end_pos, width=1) -> Rect` Draws a straight antialiased line on the given surface. There are no endcaps. - For thick lines the ends are squared off. .. note:: Regarding float values for coordinates, a point with coordinate @@ -476,11 +474,6 @@ object around the draw calls (see :func:`pygame.Surface.lock` and :param end_pos: end position of the line, (x, y) :type end_pos: tuple(int or float, int or float) or list(int or float, int or float) or Vector2(int or float, int or float) - :param int width: (optional) used for line thickness - - | if width >= 1, used for line thickness (default is 1) - | if width < 1, nothing will be drawn - | :returns: a rect bounding the changed pixels, if nothing is drawn the bounding rect's position will be the ``start_pos`` parameter value (float @@ -493,7 +486,6 @@ object around the draw calls (see :func:`pygame.Surface.lock` and .. versionchangedold:: 2.0.0 Added support for keyword arguments. .. versionchanged:: 2.4.0 Removed deprecated 'blend' argument .. versionchanged:: 2.5.0 ``blend`` argument readded for backcompat, but will always raise a deprecation exception when used - .. versionchanged:: 2.5.2 Added line width .. ## pygame.draw.aaline ## diff --git a/src_c/doc/draw_doc.h b/src_c/doc/draw_doc.h index 384936e90c..b47ac37250 100644 --- a/src_c/doc/draw_doc.h +++ b/src_c/doc/draw_doc.h @@ -8,5 +8,5 @@ #define DOC_DRAW_ARC "arc(surface, color, rect, start_angle, stop_angle) -> Rect\narc(surface, color, rect, start_angle, stop_angle, width=1) -> Rect\ndraw an elliptical arc" #define DOC_DRAW_LINE "line(surface, color, start_pos, end_pos) -> Rect\nline(surface, color, start_pos, end_pos, width=1) -> Rect\ndraw a straight line" #define DOC_DRAW_LINES "lines(surface, color, closed, points) -> Rect\nlines(surface, color, closed, points, width=1) -> Rect\ndraw multiple contiguous straight line segments" -#define DOC_DRAW_AALINE "aaline(surface, color, start_pos, end_pos) -> Rect\naaline(surface, color, start_pos, end_pos, width=1) -> Rect\ndraw a straight antialiased line" +#define DOC_DRAW_AALINE "aaline(surface, color, start_pos, end_pos) -> Rect\ndraw a straight antialiased line" #define DOC_DRAW_AALINES "aalines(surface, color, closed, points) -> Rect\ndraw multiple contiguous straight antialiased line segments" diff --git a/src_c/draw.c b/src_c/draw.c index 0d6b9fc8a8..d463380a63 100644 --- a/src_c/draw.c +++ b/src_c/draw.c @@ -124,12 +124,12 @@ aaline(PyObject *self, PyObject *arg, PyObject *kwargs) int drawn_area[4] = {INT_MAX, INT_MAX, INT_MIN, INT_MIN}; /* Used to store bounding box values */ Uint32 color; - static char *keywords[] = {"surface", "color", "start_pos", "end_pos", - "width", "blend", NULL}; + static char *keywords[] = {"surface", "color", "start_pos", + "end_pos", "blend", NULL}; - if (!PyArg_ParseTupleAndKeywords(arg, kwargs, "O!OOO|iO", keywords, + if (!PyArg_ParseTupleAndKeywords(arg, kwargs, "O!OOO|O", keywords, &pgSurface_Type, &surfobj, &colorobj, - &start, &end, &width, &blend)) { + &start, &end, &blend)) { return NULL; /* Exception already set. */ } diff --git a/test/draw_test.py b/test/draw_test.py index 872e72ee58..b68a1756b8 100644 --- a/test/draw_test.py +++ b/test/draw_test.py @@ -2455,7 +2455,7 @@ def test_aaline__blend_warning(self): warnings.simplefilter("always") # Trigger DeprecationWarning. self.draw_aaline( - pygame.Surface((2, 2)), (0, 0, 0, 50), (0, 0), (2, 2), 1, blend + pygame.Surface((2, 2)), (0, 0, 0, 50), (0, 0), (2, 2), blend ) # Check if there is only one warning and is a DeprecationWarning. self.assertEqual(len(w), count + 1) @@ -2467,14 +2467,12 @@ def test_aaline__kwargs(self): color = pygame.Color("yellow") start_pos = (1, 1) end_pos = (2, 2) - width = 2 kwargs_list = [ { "surface": surface, "color": color, "start_pos": start_pos, "end_pos": end_pos, - "width": width, }, ] @@ -2487,7 +2485,6 @@ def test_aaline__kwargs_order_independent(self): """Ensures draw aaline's kwargs are not order dependent.""" bounds_rect = self.draw_aaline( start_pos=(1, 2), - width=2, end_pos=(2, 1), color=(10, 20, 30), surface=pygame.Surface((3, 2)), @@ -2519,7 +2516,6 @@ def test_aaline__kwargs_missing(self): "color": pygame.Color("red"), "start_pos": (2, 1), "end_pos": (2, 2), - "width": 2, } for name in ("end_pos", "start_pos", "color", "surface"): @@ -2558,42 +2554,30 @@ def test_aaline__kwarg_invalid_types(self): color = pygame.Color("green") start_pos = (1, 0) end_pos = (2, 0) - width = 1 kwargs_list = [ { "surface": pygame.Surface, # Invalid surface. "color": color, "start_pos": start_pos, "end_pos": end_pos, - "width": width, }, { "surface": surface, "color": 2.3, # Invalid color. "start_pos": start_pos, "end_pos": end_pos, - "width": width, }, { "surface": surface, "color": color, "start_pos": (0, 0, 0), # Invalid start_pos. "end_pos": end_pos, - "width": width, }, { "surface": surface, "color": color, "start_pos": start_pos, "end_pos": (0,), # Invalid end_pos. - "width": width, - }, - { - "surface": surface, - "color": color, - "start_pos": start_pos, - "end_pos": (0,), - "width": 1.2, # Invalid width. }, ] @@ -2607,14 +2591,12 @@ def test_aaline__kwarg_invalid_name(self): color = pygame.Color("cyan") start_pos = (1, 1) end_pos = (2, 0) - width = 1 kwargs_list = [ { "surface": surface, "color": color, "start_pos": start_pos, "end_pos": end_pos, - "width": width, "invalid": 1, }, { @@ -2636,16 +2618,14 @@ def test_aaline__args_and_kwargs(self): color = (255, 255, 0, 0) start_pos = (0, 1) end_pos = (1, 2) - width = 1 kwargs = { "surface": surface, "color": color, "start_pos": start_pos, "end_pos": end_pos, - "width": width, } - for name in ("surface", "color", "start_pos", "end_pos", "width"): + for name in ("surface", "color", "start_pos", "end_pos"): kwargs.pop(name) if "surface" == name: @@ -2665,30 +2645,6 @@ def test_aaline__args_and_kwargs(self): self.assertIsInstance(bounds_rect, pygame.Rect) - def test_aaline__valid_width_values(self): - """Ensures draw aaline accepts different width values.""" - line_color = pygame.Color("yellow") - surface_color = pygame.Color("white") - surface = pygame.Surface((3, 4)) - pos = (2, 1) - kwargs = { - "surface": surface, - "color": line_color, - "start_pos": pos, - "end_pos": (2, 2), - "width": None, - } - - for width in (-100, -10, -1, 0, 1, 10, 100): - surface.fill(surface_color) # Clear for each test. - kwargs["width"] = width - expected_color = line_color if width > 0 else surface_color - - bounds_rect = self.draw_aaline(**kwargs) - - self.assertEqual(surface.get_at(pos), expected_color) - self.assertIsInstance(bounds_rect, pygame.Rect) - def test_aaline__valid_start_pos_formats(self): """Ensures draw aaline accepts different start_pos formats.""" expected_color = pygame.Color("red") @@ -2699,7 +2655,6 @@ def test_aaline__valid_start_pos_formats(self): "color": expected_color, "start_pos": None, "end_pos": (2, 2), - "width": 2, } x, y = 2, 1 # start position positions = ((x, y), (x + 0.01, y), (x, y + 0.01), (x + 0.01, y + 0.01)) @@ -2728,7 +2683,6 @@ def test_aaline__valid_end_pos_formats(self): "color": expected_color, "start_pos": (2, 1), "end_pos": None, - "width": 2, } x, y = 2, 2 # end position positions = ((x, y), (x + 0.02, y), (x, y + 0.02), (x + 0.02, y + 0.02)) @@ -2754,7 +2708,6 @@ def test_aaline__invalid_start_pos_formats(self): "color": pygame.Color("red"), "start_pos": None, "end_pos": (2, 2), - "width": 2, } start_pos_fmts = ( @@ -2778,7 +2731,6 @@ def test_aaline__invalid_end_pos_formats(self): "color": pygame.Color("red"), "start_pos": (2, 2), "end_pos": None, - "width": 2, } end_pos_fmts = ( @@ -2806,7 +2758,6 @@ def test_aaline__valid_color_formats(self): "color": None, "start_pos": pos, "end_pos": (2, 1), - "width": 2, } greens = ( (0, 255, 0), @@ -2836,7 +2787,6 @@ def test_aaline__invalid_color_formats(self): "color": None, "start_pos": (1, 1), "end_pos": (2, 1), - "width": 2, } for expected_color in (2.3, self): @@ -2854,17 +2804,6 @@ def test_aaline__color(self): self.assertEqual(surface.get_at(pos), expected_color, f"pos={pos}") - def test_aaline__color_with_thickness(self): - """Ensures a thick aaline is drawn using the correct color.""" - from_x = 5 - to_x = 10 - y = 5 - for surface in self._create_surfaces(): - for expected_color in self.COLORS: - self.draw_aaline(surface, expected_color, (from_x, y), (to_x, y), 5) - for pos in ((x, y + i) for i in (-2, 0, 2) for x in (from_x, to_x)): - self.assertEqual(surface.get_at(pos), expected_color, f"pos={pos}") - def test_aaline__gaps(self): """Tests if the aaline drawn contains any gaps. @@ -2879,26 +2818,10 @@ def test_aaline__gaps(self): pos = (x, 0) self.assertEqual(surface.get_at(pos), expected_color, f"pos={pos}") - def test_line__gaps_with_thickness(self): - """Ensures a thick aaline is drawn without any gaps.""" - expected_color = (255, 255, 255) - thickness = 5 - for surface in self._create_surfaces(): - width = surface.get_width() - 1 - h = width // 5 - w = h * 5 - self.draw_aaline(surface, expected_color, (0, 5), (w, 5 + h), thickness) - - for x in range(w + 1): - for y in range(3, 8): - pos = (x, y + ((x + 2) // 5)) - self.assertEqual(surface.get_at(pos), expected_color, f"pos={pos}") - def test_aaline__bounding_rect(self): """Ensures draw aaline returns the correct bounding rect. - Test lines with endpoints on and off the surface and a range of - width/thickness values. + Test lines with endpoints on and off the surface. """ line_color = pygame.Color("red") @@ -2918,32 +2841,20 @@ def test_aaline__bounding_rect(self): for pos in rect_corners_mids_and_center(surf_rect): helper_rect.center = pos - # Draw using different thicknesses. - for thickness in range(-1, 5): - for start, end in self._rect_lines(helper_rect): - surface.fill(surf_color) # Clear for each test. + for start, end in self._rect_lines(helper_rect): + surface.fill(surf_color) # Clear for each test. - bounding_rect = self.draw_aaline( - surface, line_color, start, end, thickness - ) + bounding_rect = self.draw_aaline(surface, line_color, start, end) - if 0 < thickness: - # Calculating the expected_rect after the line is - # drawn (it uses what is actually drawn). - expected_rect = create_bounding_rect( - surface, surf_color, start - ) - else: - # Nothing drawn. - expected_rect = pygame.Rect(start, (0, 0)) + # Calculating the expected_rect after the line is + # drawn (it uses what is actually drawn). + expected_rect = create_bounding_rect(surface, surf_color, start) - self.assertEqual( - bounding_rect, - expected_rect, - "start={}, end={}, size={}, thickness={}".format( - start, end, size, thickness - ), - ) + self.assertEqual( + bounding_rect, + expected_rect, + "start={}, end={}, size={}".format(start, end, size), + ) def test_aaline__surface_clip(self): """Ensures draw aaline respects a surface's clip area.""" @@ -2957,52 +2868,47 @@ def test_aaline__surface_clip(self): clip_rect.center = surface.get_rect().center pos_rect = clip_rect.copy() # Manages the aaline's pos. - for thickness in (1, 3): # Test different line widths. - # Test centering the pos_rect along the clip rect's edge to allow for - # drawing the aaline over the clip_rect's bounds. - for center in rect_corners_mids_and_center(clip_rect): - pos_rect.center = center + # Test centering the pos_rect along the clip rect's edge to allow for + # drawing the aaline over the clip_rect's bounds. + for center in rect_corners_mids_and_center(clip_rect): + pos_rect.center = center - # Get the expected points by drawing the aaline without the - # clip area set. - surface.set_clip(None) - surface.fill(surface_color) - self.draw_aaline( - surface, - aaline_color, - pos_rect.midtop, - pos_rect.midbottom, - thickness, - ) + # Get the expected points by drawing the aaline without the + # clip area set. + surface.set_clip(None) + surface.fill(surface_color) + self.draw_aaline( + surface, + aaline_color, + pos_rect.midtop, + pos_rect.midbottom, + ) - expected_pts = get_color_points( - surface, surface_color, clip_rect, False - ) + expected_pts = get_color_points(surface, surface_color, clip_rect, False) - # Clear the surface and set the clip area. Redraw the aaline - # and check that only the clip area is modified. - surface.fill(surface_color) - surface.set_clip(clip_rect) + # Clear the surface and set the clip area. Redraw the aaline + # and check that only the clip area is modified. + surface.fill(surface_color) + surface.set_clip(clip_rect) - self.draw_aaline( - surface, - aaline_color, - pos_rect.midtop, - pos_rect.midbottom, - thickness, - ) + self.draw_aaline( + surface, + aaline_color, + pos_rect.midtop, + pos_rect.midbottom, + ) - surface.lock() # For possible speed up. + surface.lock() # For possible speed up. - # Check all the surface points to ensure the expected_pts - # are not surface_color. - for pt in ((x, y) for x in range(surfw) for y in range(surfh)): - if pt in expected_pts: - self.assertNotEqual(surface.get_at(pt), surface_color, pt) - else: - self.assertEqual(surface.get_at(pt), surface_color, pt) + # Check all the surface points to ensure the expected_pts + # are not surface_color. + for pt in ((x, y) for x in range(surfw) for y in range(surfh)): + if pt in expected_pts: + self.assertNotEqual(surface.get_at(pt), surface_color, pt) + else: + self.assertEqual(surface.get_at(pt), surface_color, pt) - surface.unlock() + surface.unlock() class DrawAALineTest(AALineMixin, DrawTestCase):