Subject: bug#73082: 30; Inconsistent Stipple Support

From: JD Smith <[email-masked]>
Date: Fri, 6 Sep 2024 17:58:02 -0400

The :stipple face attribute is not consistently supported across all Emacs 30 builds, with incorrect or missing stipple display for NS and GTK+Cairo builds.  

The following test of :stipple should lead to an image similar to the attached.

(let* ((w (window-font-width))
       (stipple `(,w 1 ,(apply #'unibyte-string (make-list (/ (+ w 7) 8) 186)))))
  (insert "\n" (propertize (concat  (make-string 15 ?\s)
				    "THIS IS A TEST"
				    (make-string 15 ?\s))
                           'face `(:background "red" :foreground "blue" :stipple ,stipple))))

Only some Emacs 30 builds correctly render this simple stipple.  There has been some progress on :stipple support recently, but it remains incomplete.  To my knowledge, the current situation for :stipple support in Emacs 30 is as follows:
NS (partially working): Commit ef6ffbdc79 from last May provided a partial fix, but stipples are black and white only (bug#70712)
Windows (working?): patched in June (bug#71159)
PGTK (working): incorrect stipple display patched July, 2023 (bug#64969)
GTK, non-Cairo (working): appears to be working correctly
GTK + Cairo (not working uniformly): Stipples are reported to be missing with some Cairo builds of Emacs 30
Other X11 builds (?): Unsure if these are supported (but suspect they are given the legacy of stipple)

￼