Linear brightening doesn't work well for colours near white.
This commit is contained in:
parent
6197717251
commit
fdd9df6dff
|
@ -57,10 +57,14 @@ void RENDER_SETTINGS::update()
|
||||||
for( int i = 0; i < LAYER_ID_COUNT; i++ )
|
for( int i = 0; i < LAYER_ID_COUNT; i++ )
|
||||||
{
|
{
|
||||||
m_hiContrastColor[i] = m_layerColors[i].Mix( m_layerColors[LAYER_PCB_BACKGROUND],
|
m_hiContrastColor[i] = m_layerColors[i].Mix( m_layerColors[LAYER_PCB_BACKGROUND],
|
||||||
m_hiContrastFactor );
|
m_hiContrastFactor );
|
||||||
|
|
||||||
m_layerColorsHi[i] = m_layerColors[i].Brightened( m_highlightFactor );
|
m_layerColorsHi[i] = m_layerColors[i].Brightened( m_highlightFactor );
|
||||||
m_layerColorsDark[i] = m_layerColors[i].Darkened( 1.0 - m_highlightFactor );
|
m_layerColorsDark[i] = m_layerColors[i].Darkened( 1.0 - m_highlightFactor );
|
||||||
m_layerColorsSel[i] = m_layerColors[i].Brightened( m_selectFactor );
|
|
||||||
|
// Linear brightening doesn't work well for colors near white
|
||||||
|
double factor = ( m_selectFactor * 0.6 ) + pow( m_layerColors[i].GetBrightness(), 3 );
|
||||||
|
m_layerColorsSel[i] = m_layerColors[i].Brightened( std::min( factor, 1.0 ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -311,9 +311,10 @@ COLOR4D PCB_RENDER_SETTINGS::GetColor( const VIEW_ITEM* aItem, int aLayer ) cons
|
||||||
}
|
}
|
||||||
|
|
||||||
if( netColor == COLOR4D::UNSPECIFIED )
|
if( netColor == COLOR4D::UNSPECIFIED )
|
||||||
|
{
|
||||||
netColor = color;
|
netColor = color;
|
||||||
|
}
|
||||||
if( selected )
|
else if( selected )
|
||||||
{
|
{
|
||||||
// Selection brightening overrides highlighting
|
// Selection brightening overrides highlighting
|
||||||
netColor.Brighten( m_selectFactor );
|
netColor.Brighten( m_selectFactor );
|
||||||
|
|
Loading…
Reference in New Issue