* Dock panels shouldn't have any frame border or anything like that.
* They should have an external margin of 3 pixels at their border,
but then no further margins on the layouts (like sub-controls for
the pipeline state views.
* Toolbars should be Raised & Panel frames. Later we'll replace them
with actual QToolBars to better customise the painting.
* We need to custom paint the SVG at the right devicepixelratio because
Qt seems to be busted at scaling up - nothing I can see causes the
SVG to be rendered at higher than it's default resolution, so you end
up with plain bilinear upscale.
* Since we're doing custom palette swap anyway, it's not much harm to
just render ourselves, as we already basically had a dependency on
QtSvg - just need to add the include files to the dependencies.
* This gives us a consistent baseline to start from and ensures that any
things we don't customise and leave to defaults will still be the same
wherever we are running.
* The idea is tha this style won't change the palette and will just do
some minimal additions/changes to whatever the native style is, to
work around some rough spots.
* This is updated whenever the OM bindings change, or viewport/scissors
change. Much lower frequency than per-draw where we were calculating
this information during capture.
* Note this also means we can't mark resources clean when clearing them
since you could bind -> clear -> draw and the resource wouldn't be
re-marked dirty. This isn't much of a loss in precision though since
usually any resource that's cleared is going to be dirty again in
short order, so there's no point trying to track it in the hopes that
it might stay clean.
* For the most part the code was doing this, but there were a couple of
inconsistencies along the way.