Make OpenGL GAL great again
Reenabled VIEW_ITEMs cache. Previously, the first init was called with GAL_TYPE_NONE, causing all layers to be set to non-cached. During the proper init, the layers were already set to non-cached and were not changed.
This commit is contained in:
parent
11f8e53e27
commit
737dc20409
|
@ -377,6 +377,12 @@ bool PCB_DRAW_PANEL_GAL::SwitchBackend( GAL_TYPE aGalType )
|
|||
|
||||
void PCB_DRAW_PANEL_GAL::setDefaultLayerDeps()
|
||||
{
|
||||
// caching makes no sense for Cairo and other software renderers
|
||||
auto target = m_backend == GAL_TYPE_OPENGL ? KIGFX::TARGET_CACHED : KIGFX::TARGET_NONCACHED;
|
||||
|
||||
for( int i = 0; i < KIGFX::VIEW::VIEW_MAX_LAYERS; i++ )
|
||||
m_view->SetLayerTarget( i, target );
|
||||
|
||||
for( LAYER_NUM i = 0; (unsigned) i < sizeof( GAL_LAYER_ORDER ) / sizeof( LAYER_NUM ); ++i )
|
||||
{
|
||||
LAYER_NUM layer = GAL_LAYER_ORDER[i];
|
||||
|
@ -384,22 +390,9 @@ void PCB_DRAW_PANEL_GAL::setDefaultLayerDeps()
|
|||
|
||||
// Set layer display dependencies & targets
|
||||
if( IsCopperLayer( layer ) )
|
||||
{
|
||||
m_view->SetRequired( GetNetnameLayer( layer ), layer );
|
||||
m_view->SetLayerTarget( layer, KIGFX::TARGET_CACHED );
|
||||
}
|
||||
else if( IsNetnameLayer( layer ) )
|
||||
{
|
||||
m_view->SetLayerDisplayOnly( layer );
|
||||
m_view->SetLayerTarget( layer, KIGFX::TARGET_CACHED );
|
||||
}
|
||||
}
|
||||
|
||||
// caching makes no sense for Cairo and other software renderers
|
||||
if ( m_backend != GAL_TYPE_OPENGL )
|
||||
{
|
||||
for( int i = 0; i < KIGFX::VIEW::VIEW_MAX_LAYERS; i++ )
|
||||
m_view->SetLayerTarget( i, KIGFX::TARGET_NONCACHED );
|
||||
}
|
||||
|
||||
m_view->SetLayerTarget( ITEM_GAL_LAYER( ANCHOR_VISIBLE ), KIGFX::TARGET_NONCACHED );
|
||||
|
|
Loading…
Reference in New Issue