In the Blender UI we use some "triangle" icons in a number of places. The "more" in dropdown menus, to "open" and "close" Properties and Preference panels, for the Outliner tree, to indicate sort direction, and elsewhere. However we draw these things in two very different different ways, sometimes with a bitmap icon and sometimes with a vector graphic.
The bitmap icons works well in many cases. They are naturally antialiased and can be fully opaque, but they get fuzzy at larger sizes.
The vector routines draw a triangle that scales perfectly, but can never be fully opaque. This is because the technique we use to antialiase the edges, multidrawing with jitter) always results in some transparency. This becomes an issue when the background has high contrast.
This patch changes the triangle vector code so that it creates a triangle that is both antialiased and fully opaque (if desired), therefore we can use the same method for all usages of UI triangles. It does this by drawing the triangle with slightly more complexity, adding an outer ring that transitions from the desired color to fully transparent. Not only are the diagonals antialised, but the horizontal and vertical sections are perfectly crisp. And no need to draw it eight times.
Here is an example showing the edges:
While the following illustrates the root issue. The left shows the current Outliner using bitmaps. The middle shows what it would look like if we used the current triangle vector code. And the right shows the new opaque vector triangles.






