Commit 39624641 authored by Maciej Suminski's avatar Maciej Suminski

Fixed linking errors for apps other than pcbnew.

parent b03f97b9
...@@ -143,6 +143,10 @@ void EDA_DRAW_PANEL_GAL::Refresh( bool eraseBackground, const wxRect* rect ) ...@@ -143,6 +143,10 @@ void EDA_DRAW_PANEL_GAL::Refresh( bool eraseBackground, const wxRect* rect )
m_gal->SetBackgroundColor( KiGfx::COLOR4D( 0.0, 0.0, 0.0, 1.0 ) ); m_gal->SetBackgroundColor( KiGfx::COLOR4D( 0.0, 0.0, 0.0, 1.0 ) );
m_gal->ClearScreen(); m_gal->ClearScreen();
m_view->PrepareTargets();
// Grid has to be redrawn only when the NONCACHED target is redrawn
if( m_view->IsTargetDirty( KiGfx::TARGET_NONCACHED ) )
m_gal->DrawGrid();
m_view->Redraw(); m_view->Redraw();
m_gal->EndDrawing(); m_gal->EndDrawing();
......
...@@ -546,7 +546,7 @@ void VIEW::redrawRect( const BOX2I& aRect ) ...@@ -546,7 +546,7 @@ void VIEW::redrawRect( const BOX2I& aRect )
{ {
BOOST_FOREACH( VIEW_LAYER* l, m_orderedLayers ) BOOST_FOREACH( VIEW_LAYER* l, m_orderedLayers )
{ {
if( l->enabled && isTargetDirty( l->target ) && areRequiredLayersEnabled( l->id ) ) if( l->enabled && IsTargetDirty( l->target ) && areRequiredLayersEnabled( l->id ) )
{ {
drawItem drawFunc( this, l ); drawItem drawFunc( this, l );
...@@ -622,7 +622,7 @@ bool VIEW::IsDirty() const ...@@ -622,7 +622,7 @@ bool VIEW::IsDirty() const
{ {
for( int i = 0; i < TARGETS_NUMBER; ++i ) for( int i = 0; i < TARGETS_NUMBER; ++i )
{ {
if( isTargetDirty( i ) ) if( IsTargetDirty( i ) )
return true; return true;
} }
...@@ -695,14 +695,9 @@ void VIEW::Clear() ...@@ -695,14 +695,9 @@ void VIEW::Clear()
} }
void VIEW::Redraw() void VIEW::PrepareTargets()
{ {
VECTOR2D screenSize = m_gal->GetScreenPixelSize(); if( IsTargetDirty( TARGET_CACHED ) || IsTargetDirty( TARGET_NONCACHED ) )
BOX2I rect( ToWorld( VECTOR2D( 0, 0 ) ),
ToWorld( screenSize ) - ToWorld( VECTOR2D( 0, 0 ) ) );
rect.Normalize();
if( isTargetDirty( TARGET_CACHED ) || isTargetDirty( TARGET_NONCACHED ) )
{ {
// TARGET_CACHED and TARGET_NONCACHED have to be redrawn together, as they contain // TARGET_CACHED and TARGET_NONCACHED have to be redrawn together, as they contain
// layers that rely on each other (eg. netnames are noncached, but tracks - are cached) // layers that rely on each other (eg. netnames are noncached, but tracks - are cached)
...@@ -711,13 +706,21 @@ void VIEW::Redraw() ...@@ -711,13 +706,21 @@ void VIEW::Redraw()
MarkTargetDirty( TARGET_NONCACHED ); MarkTargetDirty( TARGET_NONCACHED );
MarkTargetDirty( TARGET_CACHED ); MarkTargetDirty( TARGET_CACHED );
}
m_gal->DrawGrid(); if( IsTargetDirty( TARGET_OVERLAY ) )
{
m_gal->ClearTarget( TARGET_OVERLAY );
} }
}
// Always refresh the overlay
MarkTargetDirty( TARGET_OVERLAY ); void VIEW::Redraw()
m_gal->ClearTarget( TARGET_OVERLAY ); {
VECTOR2D screenSize = m_gal->GetScreenPixelSize();
BOX2I rect( ToWorld( VECTOR2D( 0, 0 ) ),
ToWorld( screenSize ) - ToWorld( VECTOR2D( 0, 0 ) ) );
rect.Normalize();
redrawRect( rect ); redrawRect( rect );
...@@ -892,7 +895,7 @@ void VIEW::RecacheAllItems( bool aImmediately ) ...@@ -892,7 +895,7 @@ void VIEW::RecacheAllItems( bool aImmediately )
} }
bool VIEW::isTargetDirty( int aTarget ) const bool VIEW::IsTargetDirty( int aTarget ) const
{ {
wxASSERT( aTarget < TARGETS_NUMBER ); wxASSERT( aTarget < TARGETS_NUMBER );
......
...@@ -362,6 +362,12 @@ public: ...@@ -362,6 +362,12 @@ public:
*/ */
void UpdateAllLayersOrder(); void UpdateAllLayersOrder();
/**
* Function PrepareTargets()
* Clears targets that are marked as dirty.
*/
void PrepareTargets();
/** /**
* Function Redraw() * Function Redraw()
* Immediately redraws the whole view. * Immediately redraws the whole view.
...@@ -397,6 +403,14 @@ public: ...@@ -397,6 +403,14 @@ public:
*/ */
bool IsDirty() const; bool IsDirty() const;
/**
* Function IsTargetDirty()
* Returns true if any of layers belonging to the target or the target itself should be
* redrawn.
* @return True if the above condition is fulfilled.
*/
bool IsTargetDirty( int aTarget ) const;
/** /**
* Function MarkTargetDirty() * Function MarkTargetDirty()
* Sets or clears target 'dirty' flag. * Sets or clears target 'dirty' flag.
...@@ -516,14 +530,6 @@ private: ...@@ -516,14 +530,6 @@ private:
return ( m_layers.at( aLayer ).target == TARGET_CACHED ); return ( m_layers.at( aLayer ).target == TARGET_CACHED );
} }
/**
* Function isTargetDirty()
* Returns true if any of layers belonging to the target or the target itself should be
* redrawn.
* @return True if the above condition is fulfilled.
*/
bool isTargetDirty( int aTarget ) const;
///* Whether to use rendering order modifier or not ///* Whether to use rendering order modifier or not
bool m_enableOrderModifier; bool m_enableOrderModifier;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment