From e52afd93a324dd7fbb163af15e74611d14d085d7 Mon Sep 17 00:00:00 2001 From: Seth Hillbrand Date: Wed, 5 Jun 2019 07:33:41 -0700 Subject: [PATCH] Remove Legacy options for overlay/context These options were used to support the legacy canvas when drawing on MacOS and GTK3. With the move to 100% GAL, they are extraneous. This moves all DC over to "COPY" as we only use this for printing support in Eeschema at the moment, so there is a single draw command (no erasing) for the canvas. --- CMakeLists.txt | 12 -- Documentation/development/compiling.md | 11 -- common/dialog_about/dialog_about.cpp | 7 - common/gr_basic.cpp | 173 +++--------------- .../dialogs/dialog_print_using_printer.cpp | 3 +- eeschema/general.h | 2 - eeschema/sch_edit_frame.cpp | 2 +- include/gr_basic.h | 3 - 8 files changed, 24 insertions(+), 189 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e03d76f18e..3d22049238 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -63,9 +63,6 @@ option( BUILD_SMALL_DEBUG_FILES "In debug build: create smaller binaries." OFF ) option( USE_WX_GRAPHICS_CONTEXT "Use wxGraphicsContext for rendering (default OFF). Warning, this is experimental" ) -option( USE_WX_OVERLAY - "Use wxOverlay: Always ON for MAC and GTK3 (default OFF)." ) - option( KICAD_SCRIPTING "Build the Python scripting support inside KiCad binaries (default ON)." ON ) @@ -352,10 +349,6 @@ if( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" ) endif( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" ) -if( USE_WX_OVERLAY OR APPLE ) - add_definitions( -DUSE_WX_OVERLAY ) -endif() - if( KICAD_SCRIPTING ) add_definitions( -DKICAD_SCRIPTING ) endif() @@ -757,11 +750,6 @@ find_package( wxWidgets ${wxWidgets_REQ_VERSION} COMPONENTS gl aui adv html core # Include wxWidgets macros. include( ${wxWidgets_USE_FILE} ) -# Check for GTK3 libraries - These do not have XOR, so we need overlay (Page layout editor) -if( wxWidgets_LIBRARIES MATCHES "gtk3" ) - add_definitions( -DUSE_WX_OVERLAY ) -endif() - if( KICAD_SCRIPTING_WXPYTHON AND NOT KICAD_SCRIPTING_WXPYTHON_PHOENIX ) # wxPython appears to be installed and valid so make sure the headers are available. foreach( path ${wxWidgets_INCLUDE_DIRS} ) diff --git a/Documentation/development/compiling.md b/Documentation/development/compiling.md index 27dc1397c7..574683e1f4 100644 --- a/Documentation/development/compiling.md +++ b/Documentation/development/compiling.md @@ -135,17 +135,6 @@ KiCad has many build options that can be configured to build different options d the availability of support for each option on a given platform. This section documents these options and their default values. -## Advanced Graphics Context ## {#graphics_context_opt} - -The USE_WX_GRAPHICS_CONTEXT option replaces wxDC with wxGraphicsContext for graphics rendering. -This option is disabled by default. Warning: the is experimental and has not been maintained -so use at your own risk. - -## Graphics Context Overlay ## {#overlay_opt} - -The USE_WX_OVERLAY option is used to enable the optional wxOverlay class for graphics rendering -on macOS. This is enabled on macOS and GTK3 by default and disabled on all other platforms. - ## Scripting Support ## {#scripting_opt} The KICAD_SCRIPTING option is used to enable building the Python scripting support into Pcbnew. diff --git a/common/dialog_about/dialog_about.cpp b/common/dialog_about/dialog_about.cpp index 8aef4c842c..4e09054d56 100644 --- a/common/dialog_about/dialog_about.cpp +++ b/common/dialog_about/dialog_about.cpp @@ -520,13 +520,6 @@ void DIALOG_ABOUT::buildVersionInfoData( wxString& aMsg, bool aFormatHtml ) // Add build settings config (build options): aMsg << "Build settings:" << eol; - aMsg << indent4 << "USE_WX_GRAPHICS_CONTEXT="; -#ifdef USE_WX_GRAPHICS_CONTEXT - aMsg << ON; -#else - aMsg << OFF; -#endif - aMsg << indent4 << "KICAD_SCRIPTING="; #ifdef KICAD_SCRIPTING aMsg << ON; diff --git a/common/gr_basic.cpp b/common/gr_basic.cpp index cf9c03bb76..6d4125128e 100644 --- a/common/gr_basic.cpp +++ b/common/gr_basic.cpp @@ -36,9 +36,6 @@ #include #include #include -#if defined(__WXMAC__) && defined(USE_WX_GRAPHICS_CONTEXT) -#include -#endif static const bool FILLED = true; static const bool NOT_FILLED = false; @@ -217,54 +214,6 @@ bool GetGRForceBlackPenState( void ) } -/*************************************/ -/* Set the device context draw mode. */ -/*************************************/ -void GRSetDrawMode( wxDC* DC, GR_DRAWMODE draw_mode ) -{ - if( draw_mode & GR_OR ) -#if defined(__WXMAC__) && (wxMAC_USE_CORE_GRAPHICS || wxCHECK_VERSION( 2, 9, 0 ) ) - - DC->SetLogicalFunction( wxCOPY ); -#elif defined( USE_WX_GRAPHICS_CONTEXT ) - - DC->SetLogicalFunction( wxCOPY ); -#else - - DC->SetLogicalFunction( wxOR ); -#endif - else if( draw_mode & GR_XOR ) -#if defined( USE_WX_GRAPHICS_CONTEXT ) - - DC->SetLogicalFunction( wxCOPY ); -#else - - DC->SetLogicalFunction( wxXOR ); -#endif - else if( draw_mode & GR_NXOR ) -#if defined(__WXMAC__) && (wxMAC_USE_CORE_GRAPHICS || wxCHECK_VERSION( 2, 9, 0 ) ) - - DC->SetLogicalFunction( wxXOR ); -#elif defined( USE_WX_GRAPHICS_CONTEXT ) - - DC->SetLogicalFunction( wxCOPY ); -#else - - DC->SetLogicalFunction( wxEQUIV ); -#endif - else if( draw_mode & GR_INVERT ) -#if defined( USE_WX_GRAPHICS_CONTEXT ) - - DC->SetLogicalFunction( wxCOPY ); -#else - - DC->SetLogicalFunction( wxINVERT ); -#endif - else if( draw_mode & GR_COPY ) - DC->SetLogicalFunction( wxCOPY ); -} - - void GRPutPixel( EDA_RECT* ClipBox, wxDC* DC, int x, int y, COLOR4D Color ) { if( ClipBox && !ClipBox->Contains( x, y ) ) @@ -343,42 +292,16 @@ void GRLineArray( EDA_RECT* aClipBox, wxDC* aDC, std::vector& aLines, if( aClipBox ) aClipBox->Inflate( aWidth / 2 ); -#if defined( __WXMAC__ ) && defined( USE_WX_GRAPHICS_CONTEXT ) - wxGCDC *gcdc = wxDynamicCast( aDC, wxGCDC ); - if( gcdc ) + for( unsigned i = 0; i < aLines.size(); i += 2 ) { - wxGraphicsContext *gc = gcdc->GetGraphicsContext(); + int x1 = aLines[i].x; + int y1 = aLines[i].y; + int x2 = aLines[i + 1].x; + int y2 = aLines[i + 1].y; + if( ( aClipBox == NULL ) || !ClipLine( aClipBox, x1, y1, x2, y2 ) ) + aDC->DrawLine( x1, y1, x2, y2 ); + } - // create path - wxGraphicsPath path = gc->CreatePath(); - for( unsigned i = 0; i < aLines.size(); i += 2 ) - { - int x1 = aLines[i].x; - int y1 = aLines[i].y; - int x2 = aLines[i+1].x; - int y2 = aLines[i+1].y; - if( ( aClipBox == NULL ) || !ClipLine( aClipBox, x1, y1, x2, y2 ) ) - { - path.MoveToPoint( x1, y1 ); - path.AddLineToPoint( x2, y2 ); - } - } - // draw path - gc->StrokePath( path ); - } - else -#endif - { - for( unsigned i = 0; i < aLines.size(); i += 2 ) - { - int x1 = aLines[i].x; - int y1 = aLines[i].y; - int x2 = aLines[i+1].x; - int y2 = aLines[i+1].y; - if( ( aClipBox == NULL ) || !ClipLine( aClipBox, x1, y1, x2, y2 ) ) - aDC->DrawLine( x1, y1, x2, y2 ); - } - } GRMoveTo( aLines[aLines.size() - 1].x, aLines[aLines.size() - 1].y ); if( aClipBox ) @@ -567,36 +490,11 @@ static void GRSPoly( EDA_RECT* ClipBox, wxDC* DC, int n, wxPoint Points[], } else { -#if defined( __WXMAC__ ) && defined( USE_WX_GRAPHICS_CONTEXT ) - wxGCDC *gcdc = wxDynamicCast( DC, wxGCDC ); - if( gcdc ) + + GRMoveTo( Points[0].x, Points[0].y ); + for( int i = 1; i < n; ++i ) { - wxGraphicsContext *gc = gcdc->GetGraphicsContext(); - - // set pen - GRSetColorPen( DC, Color, width ); - - // create path - wxGraphicsPath path = gc->CreatePath(); - path.MoveToPoint( Points[0].x, Points[0].y ); - for( int i = 1; i < n; ++i ) - { - path.AddLineToPoint( Points[i].x, Points[i].y ); - } - // draw path - gc->StrokePath( path ); - - // correctly update last position - GRMoveTo( Points[n - 1].x, Points[n - 1].y ); - } - else -#endif - { - GRMoveTo( Points[0].x, Points[0].y ); - for( int i = 1; i < n; ++i ) - { - GRLineTo( ClipBox, DC, Points[i].x, Points[i].y, width, Color ); - } + GRLineTo( ClipBox, DC, Points[i].x, Points[i].y, width, Color ); } } } @@ -624,46 +522,19 @@ static void GRSClosedPoly( EDA_RECT* aClipBox, wxDC* aDC, } else { -#if defined( __WXMAC__ ) && defined( USE_WX_GRAPHICS_CONTEXT ) - wxGCDC *gcdc = wxDynamicCast( aDC, wxGCDC ); - if( gcdc ) + + GRMoveTo( aPoints[0].x, aPoints[0].y ); + for( int i = 1; i < aPointCount; ++i ) { - wxGraphicsContext *gc = gcdc->GetGraphicsContext(); - - // set pen - GRSetColorPen( aDC, aColor, aWidth ); - - // create path - wxGraphicsPath path = gc->CreatePath(); - path.MoveToPoint( aPoints[0].x, aPoints[0].y ); - for( int i = 1; i < aPointCount; ++i ) - { - path.AddLineToPoint( aPoints[i].x, aPoints[i].y ); - } - if( aPoints[aPointCount - 1] != aPoints[0] ) - path.AddLineToPoint( aPoints[0].x, aPoints[0].y ); - // draw path - gc->StrokePath( path ); - - // correctly update last position - GRMoveTo( aPoints[aPointCount - 1].x, aPoints[aPointCount - 1].y ); + GRLineTo( aClipBox, aDC, aPoints[i].x, aPoints[i].y, aWidth, aColor ); } - else -#endif + + int lastpt = aPointCount - 1; + + // Close the polygon + if( aPoints[lastpt] != aPoints[0] ) { - GRMoveTo( aPoints[0].x, aPoints[0].y ); - for( int i = 1; i < aPointCount; ++i ) - { - GRLineTo( aClipBox, aDC, aPoints[i].x, aPoints[i].y, aWidth, aColor ); - } - - int lastpt = aPointCount - 1; - - // Close the polygon - if( aPoints[lastpt] != aPoints[0] ) - { - GRLineTo( aClipBox, aDC, aPoints[0].x, aPoints[0].y, aWidth, aColor ); - } + GRLineTo( aClipBox, aDC, aPoints[0].x, aPoints[0].y, aWidth, aColor ); } } } diff --git a/eeschema/dialogs/dialog_print_using_printer.cpp b/eeschema/dialogs/dialog_print_using_printer.cpp index c16bd682a7..63f4a7c972 100644 --- a/eeschema/dialogs/dialog_print_using_printer.cpp +++ b/eeschema/dialogs/dialog_print_using_printer.cpp @@ -419,7 +419,7 @@ void SCH_PRINTOUT::PrintPage( SCH_SCREEN* aScreen ) #endif OffsetLogicalOrigin( xoffset, yoffset ); - GRSetDrawMode( dc, GR_DEFAULT_DRAWMODE ); + dc->SetLogicalFunction( wxCOPY ); GRResetPenAndBrush( dc ); aScreen->m_IsPrinting = true; @@ -427,7 +427,6 @@ void SCH_PRINTOUT::PrintPage( SCH_SCREEN* aScreen ) COLOR4D bgColor = m_parent->GetDrawBgColor(); m_parent->SetDrawBgColor( COLOR4D::WHITE ); - GRSetDrawMode( dc, GR_COPY ); GRSFilledRect( nullptr, dc, fitRect.GetX(), fitRect.GetY(), fitRect.GetRight(), fitRect.GetBottom(), 0, COLOR4D::WHITE, COLOR4D::WHITE ); diff --git a/eeschema/general.h b/eeschema/general.h index ce61507e0c..e3e139cab0 100644 --- a/eeschema/general.h +++ b/eeschema/general.h @@ -72,8 +72,6 @@ class SCH_SHEET_PATH; ///< The default library pane width #define DEFAULTLIBWIDTH 250 -#define GR_DEFAULT_DRAWMODE GR_COPY - /* Rotation, mirror of graphic items in components bodies are handled by a * transform matrix. The default matrix is useful to draw lib entries with * using this default matrix ( no rotation, no mirror but Y axis is bottom to top, and diff --git a/eeschema/sch_edit_frame.cpp b/eeschema/sch_edit_frame.cpp index 4f4736a1a8..f2ecab44d4 100644 --- a/eeschema/sch_edit_frame.cpp +++ b/eeschema/sch_edit_frame.cpp @@ -932,7 +932,7 @@ void SCH_EDIT_FRAME::PrintPage( wxDC* aDC ) { wxString fileName = Prj().AbsolutePath( GetScreen()->GetFileName() ); - GRSetDrawMode( aDC, GR_DEFAULT_DRAWMODE ); + aDC->SetLogicalFunction( wxCOPY ); GetScreen()->Print( aDC ); PrintWorkSheet( aDC, GetScreen(), GetDefaultLineThickness(), IU_PER_MILS, fileName ); } diff --git a/include/gr_basic.h b/include/gr_basic.h index e490a3d0ed..ef22b527a2 100644 --- a/include/gr_basic.h +++ b/include/gr_basic.h @@ -87,9 +87,6 @@ typedef enum { } GRLineStypeType; - -void GRSetDrawMode( wxDC* DC, GR_DRAWMODE mode ); -GR_DRAWMODE GRGetDrawMode( wxDC* DC ); void GRResetPenAndBrush( wxDC* DC ); void GRSetColorPen( wxDC* DC, COLOR4D Color, int width = 1, wxPenStyle stype = wxPENSTYLE_SOLID ); void GRSetBrush( wxDC* DC, COLOR4D Color, bool fill = false );