`shadowId` is a size_t.  That means it cannot be < 0, it must be >= 0.  gcc/clang are gonna complain.

How is `shadowId` relevant to `shadowGlyphs`?  It uses `shadowGlyphs[i]`, where `i` is definitely less than `shadowGlyphs.size()` since it's a for loop.

But actually, I wonder if the for should be over `glyphs.size()`?  `glyphs` and `shadowGlyphs` are not the same size, so something still looks funny here.

-[Unknown]