hooked opacity rendering into the buffer canvas logic used for shadows so that strokes and fill opacities aren't applied separately