Use vector instead of bitset for VIEW_ITEM_DATA layer storage
Shows 10-15% speed improvement in rendering large files in MacOS
This commit is contained in:
parent
c0b61c19b7
commit
9452c61462
|
@ -78,13 +78,10 @@ private:
|
||||||
{
|
{
|
||||||
int* layersPtr = aLayers;
|
int* layersPtr = aLayers;
|
||||||
|
|
||||||
for( unsigned int i = 0; i < m_layers.size(); ++i )
|
for( auto layer : m_layers )
|
||||||
{
|
*layersPtr++ = layer;
|
||||||
if( m_layers[i] )
|
|
||||||
*layersPtr++ = i;
|
|
||||||
}
|
|
||||||
|
|
||||||
aCount = m_layers.count();
|
aCount = m_layers.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
VIEW* m_view; ///< Current dynamic view the item is assigned to.
|
VIEW* m_view; ///< Current dynamic view the item is assigned to.
|
||||||
|
@ -193,7 +190,7 @@ private:
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Stores layer numbers used by the item.
|
/// Stores layer numbers used by the item.
|
||||||
std::bitset<VIEW::VIEW_MAX_LAYERS> m_layers;
|
std::vector<int> m_layers;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function saveLayers()
|
* Function saveLayers()
|
||||||
|
@ -204,14 +201,14 @@ private:
|
||||||
*/
|
*/
|
||||||
void saveLayers( int* aLayers, int aCount )
|
void saveLayers( int* aLayers, int aCount )
|
||||||
{
|
{
|
||||||
m_layers.reset();
|
m_layers.clear();
|
||||||
|
|
||||||
for( int i = 0; i < aCount; ++i )
|
for( int i = 0; i < aCount; ++i )
|
||||||
{
|
{
|
||||||
// this fires on some eagle board after EAGLE_PLUGIN::Load()
|
// this fires on some eagle board after EAGLE_PLUGIN::Load()
|
||||||
wxASSERT( unsigned( aLayers[i] ) <= unsigned( VIEW::VIEW_MAX_LAYERS ) );
|
wxASSERT( unsigned( aLayers[i] ) <= unsigned( VIEW::VIEW_MAX_LAYERS ) );
|
||||||
|
|
||||||
m_layers.set( aLayers[i] );
|
m_layers.push_back( aLayers[i] );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue