From 80999ba0a45833fc9e93f36f43e70ec9c6188e29 Mon Sep 17 00:00:00 2001 From: Maciej Suminski Date: Wed, 10 Apr 2013 13:47:19 +0200 Subject: [PATCH] Temporarily disabled display of netlabels on pads due to performance drop. --- include/layers_id_colors_and_visibility.h | 1 - pcbnew/basepcbframe.cpp | 1 - pcbnew/class_pad.cpp | 13 ++-- pcbnew/pcb_painter.cpp | 74 ++--------------------- pcbnew/pcb_painter.h | 3 - 5 files changed, 9 insertions(+), 83 deletions(-) diff --git a/include/layers_id_colors_and_visibility.h b/include/layers_id_colors_and_visibility.h index 7149519b9b..77f2e87f0c 100644 --- a/include/layers_id_colors_and_visibility.h +++ b/include/layers_id_colors_and_visibility.h @@ -147,7 +147,6 @@ enum PCB_VISIBLE PADS_VISIBLE, VIA_HOLES_VISIBLE, PAD_HOLES_VISIBLE, - NETNAME_VISIBLE, END_PCB_VISIBLE_LIST // sentinel }; diff --git a/pcbnew/basepcbframe.cpp b/pcbnew/basepcbframe.cpp index 8b926fa0de..165f6644ab 100644 --- a/pcbnew/basepcbframe.cpp +++ b/pcbnew/basepcbframe.cpp @@ -95,7 +95,6 @@ const int m_galLayerOrder[] = ITEM_GAL_LAYER( MOD_REFERENCES_VISIBLE), ITEM_GAL_LAYER( MOD_VALUES_VISIBLE ), SILKSCREEN_N_FRONT, SOLDERPASTE_N_FRONT, ADHESIVE_N_FRONT, SOLDERMASK_N_FRONT, - ITEM_GAL_LAYER( NETNAME_VISIBLE ), ITEM_GAL_LAYER( VIA_HOLES_VISIBLE ), ITEM_GAL_LAYER( PAD_HOLES_VISIBLE ), ITEM_GAL_LAYER( VIAS_VISIBLE ), ITEM_GAL_LAYER( PADS_VISIBLE ), diff --git a/pcbnew/class_pad.cpp b/pcbnew/class_pad.cpp index 01c40a9119..6ed89c4efd 100644 --- a/pcbnew/class_pad.cpp +++ b/pcbnew/class_pad.cpp @@ -852,21 +852,18 @@ EDA_ITEM* D_PAD::Clone() const void D_PAD::ViewGetLayers( int aLayers[], int& aCount ) const { - // Pad description layer (number / net) - aLayers[0] = ITEM_GAL_LAYER( NETNAME_VISIBLE ); - if( m_Attribute == PAD_SMD || m_Attribute == PAD_CONN) { // Single layer pad (smd) without hole - aLayers[1] = GetParent()->GetLayer(); - aCount = 2; + aLayers[0] = GetParent()->GetLayer(); + aCount = 1; } else { // Multi layer pad with hole - pad is shown on one common layer, hole on the other - aLayers[1] = ITEM_GAL_LAYER( PADS_VISIBLE ); - aLayers[2] = ITEM_GAL_LAYER( PAD_HOLES_VISIBLE ); - aCount = 3; + aLayers[0] = ITEM_GAL_LAYER( PADS_VISIBLE ); + aLayers[1] = ITEM_GAL_LAYER( PAD_HOLES_VISIBLE ); + aCount = 2; } } diff --git a/pcbnew/pcb_painter.cpp b/pcbnew/pcb_painter.cpp index 24e4c393da..2eea8002e0 100644 --- a/pcbnew/pcb_painter.cpp +++ b/pcbnew/pcb_painter.cpp @@ -71,7 +71,6 @@ void PCB_RENDER_SETTINGS::ImportLegacyColors( COLORS_DESIGN_SETTINGS* aSettings m_itemColors[PAD_HOLES_VISIBLE] = COLOR4D( 0.0, 0.5, 0.5, 1.0 ); m_itemColors[VIAS_VISIBLE] = COLOR4D( 0.7, 0.7, 0.7, 1.0 ); m_itemColors[PADS_VISIBLE] = COLOR4D( 0.7, 0.7, 0.7, 1.0 ); - m_itemColors[NETNAME_VISIBLE] = COLOR4D( 0.9, 0.9, 0.9, 1.0 ); Update(); } @@ -112,8 +111,6 @@ void PCB_RENDER_SETTINGS::Update() } -const double PCB_PAINTER::MAX_FONT_SIZE = 1500000; - PCB_PAINTER::PCB_PAINTER( GAL* aGal ) : PAINTER( aGal ) { @@ -310,78 +307,11 @@ void PCB_PAINTER::draw( const D_PAD* aPad, int aLayer ) { COLOR4D color; VECTOR2D size; - VECTOR2D position( aPad->GetPosition() ); PAD_SHAPE_T shape; double m, n; - double orientation = aPad->GetOrientation(); - NORMALIZE_ANGLE_90( orientation ); // do not display descriptions upside down - orientation = orientation * M_PI / 1800.0; color = getLayerColor( aLayer, aPad->GetNet() ); - // Draw description layer - if( aLayer == ITEM_GAL_LAYER( NETNAME_VISIBLE ) ) - { - size = VECTOR2D( aPad->GetSize() / 2 ); - - // Font size limits - if( size.x > MAX_FONT_SIZE ) - size.x = MAX_FONT_SIZE; - if( size.y > MAX_FONT_SIZE ) - size.y = MAX_FONT_SIZE; - - // Keep the size ratio for the font, but make it smaller - if( size.x < size.y ) - { - orientation -= M_PI / 2; - size.y = size.x * 4.0 / 3.0; - } - else - { - size.x = size.y * 3.0 / 4.0; - } - - m_gal->Save(); - m_gal->Translate( position ); - m_gal->Rotate( -orientation ); - - // Default font settings - m_stroke_font->SetHorizontalJustify( GR_TEXT_HJUSTIFY_CENTER ); - m_stroke_font->SetVerticalJustify( GR_TEXT_VJUSTIFY_CENTER ); - m_stroke_font->SetBold( false ); - m_stroke_font->SetItalic( false ); - m_stroke_font->SetMirrored( false ); - m_gal->SetStrokeColor( color ); - - // Let's make some space for a netname too, if there's one to display - if( !aPad->GetNetname().empty() ) - { - size = size / 2.0; - m_stroke_font->SetGlyphSize( size ); - m_gal->SetLineWidth( size.y / 10.0 ); - - m_stroke_font->Draw( std::string( aPad->GetNetname().mb_str() ), - VECTOR2D( 0, size.y ), 0.0 ); - m_gal->Translate( VECTOR2D( 0.0, -size.y / 2.0 ) ); - } - else - { - // In case when there's no netname assigned - m_stroke_font->SetGlyphSize( size ); - m_gal->SetLineWidth( size.y / 10.0 ); - } - - m_stroke_font->Draw( std::string( aPad->GetPadName().mb_str() ), VECTOR2D( 0, 0 ), 0.0 ); - - m_gal->Restore(); - return; - } - - // Pad/hole drawing - m_gal->Save(); - m_gal->Translate( position ); - m_gal->Rotate( -orientation ); - if( m_pcbSettings->m_sketchModeSelect[PADS_VISIBLE] ) { // Outline mode @@ -400,6 +330,10 @@ void PCB_PAINTER::draw( const D_PAD* aPad, int aLayer ) m_gal->SetFillColor( color ); } + m_gal->Save(); + m_gal->Translate( VECTOR2D( aPad->GetPosition() ) ); + m_gal->Rotate( -aPad->GetOrientation() * M_PI / 1800.0 ); // orientation is in tenths of degree + // Choose drawing settings depending on if we are drawing a pad itself or a hole if( aLayer == ITEM_GAL_LAYER( PAD_HOLES_VISIBLE ) ) { diff --git a/pcbnew/pcb_painter.h b/pcbnew/pcb_painter.h index c48ed8b64f..d66f3c6ed4 100644 --- a/pcbnew/pcb_painter.h +++ b/pcbnew/pcb_painter.h @@ -151,9 +151,6 @@ protected: void draw( const ZONE_CONTAINER* ); void draw( const DIMENSION* ); void draw( const PCB_TARGET* ); - - /// Maximum font size for drawing descriptions - static const double MAX_FONT_SIZE; }; } // namespace KiGfx