draw_filled_quad_raster Subroutine

public subroutine draw_filled_quad_raster(image_data, img_w, img_h, x_quad, y_quad, r, g, b)

Draw filled quadrilateral using scanline algorithm.

Two passes. The integer-scanline pass reproduces the original solid fill exactly (so adjacent quads tile and full-coverage shapes are unchanged). A supersampled recovery pass then anti-aliases the edges and, crucially, paints thin band polygons that fall between integer scanlines: without it those strips vanish and leave the broken one-pixel arcs reported in issue #1961. The recovery pass only blends pixels the integer pass left untouched, so it never erodes the solid interior.

Arguments

Type IntentOptional Attributes Name
integer(kind=1), intent(inout) :: image_data(:)
integer, intent(in) :: img_w
integer, intent(in) :: img_h
real(kind=wp), intent(in) :: x_quad(4)
real(kind=wp), intent(in) :: y_quad(4)
real(kind=wp), intent(in) :: r
real(kind=wp), intent(in) :: g
real(kind=wp), intent(in) :: b