Another method for this which may also have limited support is "embedded SVG in CSS". I have not tried this myself but the idea is that you provide an image resource as a url within the css declaration for the object and you pass it a properly escaped url which contains the data.
SVG is a plain text/xml format. An example polygon (from w3schools):
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<polygon points="200,10 250,190 160,210"
style="fill:lime;stroke:purple;stroke-width:1"/>
</svg>
An example inline (embedded) SVG (simplified) (from stackoverflow):
url("data:image/svg+xml;utf8, <svg></svg>");
Note that the SVG data must be "escaped" properly for inline use, which makes it slightly less attractive than merely linking a SVG file.
There is some discussion regarding viability of the method in the above linked thread. I think that embedding something as simple as a white-filled triangle is an easy decision provided support is there. Complex SVG format data should be stored as an SVG file rather than inline.
SVG files are vector and can be scaled by percentage, unlike the "borders" method. They also (currently) have better (non-inline at least) support than the clipping path method listed. SVG, being plain text, can even be emitted on-the-fly using e.g. PHP or other server-side scripting.