fix(style): tint the surface instead of repainting it
Both remaining complaints had one cause. The window paints its own background, and the backdrop was filling the same area a second time. Two stacked layers turn a translucent window solid, which is the density over the chat log. And an opaque fill has to carry the entire gradient by itself. That is where the banding came from: a shallow ramp across an opaque surface crosses so few 8-bit values that each one covers a visible stripe. Nothing sits underneath to break them up. So it tints now. Near-transparent white at the top, near-transparent black at the bottom, straight over whatever the window already drew. The window colour stays visible, the ramp only shades it, and the game showing through disperses what little stepping is left. The sidebar does the same with a flat black wash rather than a repainted darker surface. Motes are roughly half as bright everywhere, and the chat log takes 10% of that. DrawVerticalGradient stays for the segmented control, which paints a surface that genuinely is its own rather than one already drawn underneath.
This commit is contained in:
@@ -389,7 +389,7 @@ internal sealed class MainWindow : Window, IFocusableChatWindow
|
||||
// a settings pane, which is read in glances; a chat log is read
|
||||
// line by line, and anything drifting behind the text competes
|
||||
// with it. What is left is barely a texture.
|
||||
_backdrop.Draw(accentWashHeight: 0f, moteIntensity: 0.18f);
|
||||
_backdrop.Draw(accentWashHeight: 0f, moteIntensity: 0.10f);
|
||||
|
||||
if (_activeTab is not null)
|
||||
_messages.Draw(_activeTab);
|
||||
|
||||
Reference in New Issue
Block a user