kicad/cvpcb
Maciej Suminski e262b32198 Introduction of Graphics Abstraction Layer based rendering for pcbnew.
New classes:
    - VIEW - represents view that is seen by user, takes care of layer ordering & visibility and how it is displayed (which location, how much zoomed, etc.)
    - VIEW_ITEM - Base class for every item that can be displayed on VIEW (the biggest change is that now it may be necessary to override ViewBBox & ViewGetLayers method for derived classes).
    - EDA_DRAW_PANEL_GAL - Inherits after EDA_DRAW_PANEL, displays VIEW output, right now it is not editable (in opposite to usual EDA_DRAW_PANEL).
    - GAL/OPENGL_GAL/CAIRO_GAL - Base Graphics Abstraction Layer class + two different flavours (Cairo is not fully supported yet), that offers methods to draw primitives using different libraries.
    - WX_VIEW_CONTROLS - Controller for VIEW, handles user events, allows zooming, panning, etc.
    - PAINTER/PCB_PAINTER - Classes that uses GAL interface to draw items (as you may have already guessed - PCB_PAINTER is a class for drawing PCB specific object, PAINTER is an abstract class). Its methods are invoked by VIEW, when an item has to be drawn. To display a new type of item - you need to implement draw(ITEM_TYPE*) method that draws it using GAL methods.
    - STROKE_FONT - Implements stroke font drawing using GAL methods.
                          
Most important changes to Kicad original code:
    * EDA_ITEM now inherits from VIEW_ITEM, which is a base class for all drawable objects.
    * EDA_DRAW_FRAME contains both usual EDA_DRAW_PANEL and new EDA_DRAW_PANEL_GAL, that can be switched anytime.
    * There are some new layers for displaying multilayer pads, vias & pads holes (these are not shown yet on the right sidebar in pcbnew)
    * Display order of layers is different than in previous versions (if you are curious - you may check m_galLayerOrder@pcbnew/basepcbframe.cpp). Preserving usual order would result in not very natural display, such as showing silkscreen texts on the bottom.
    * Introduced new hotkey (Alt+F12) and new menu option (View->Switch canvas) for switching canvas during runtime.
    * Some of classes (mostly derived from BOARD_ITEM) now includes ViewBBox & ViewGetLayers methods.
    * Removed tools/class_painter.h, as now it is extended and included in source code.
                         
Build changes:
    * GAL-based rendering option is turned on by a new compilation CMake option KICAD_GAL.
    * When compiling with CMake option KICAD_GAL=ON, GLEW and Cairo libraries are required.
    * GAL-related code is compiled into a static library (common/libgal).
    * Build with KICAD_GAL=OFF should not need any new libraries and should come out as a standard version of Kicad
                            
Currently most of items in pcbnew can be displayed using OpenGL (to be done are DIMENSIONS and MARKERS).
More details about GAL can be found in: http://www.ohwr.org/attachments/1884/view-spec.pdf
2013-04-02 08:54:03 +02:00
..
dialogs Minor dialog spacing, grammar, and sizer fixes. 2013-02-19 14:43:48 -05:00
CMakeLists.txt Introduction of Graphics Abstraction Layer based rendering for pcbnew. 2013-04-02 08:54:03 +02:00
Info.plist Minor UI changes that affect OS X, see CHANGELOG.txt 2011-05-12 20:47:56 +02:00
autosel.cpp Pcbnew: fix crash in legacy_plugin.cpp when reading old lib files. 2012-05-25 08:58:52 +02:00
cfg.cpp Kicad project manager: add .cmp, .drl .pos and .rpt files management. 2012-02-16 21:03:33 +01:00
class_DisplayFootprintsFrame.cpp Base object decoupling improvements. 2013-01-12 12:32:24 -05:00
class_DisplayFootprintsFrame.h Enforced EDA_COLOR_T type and minor const-ification 2012-09-02 14:06:47 +02:00
class_components_listbox.cpp merge in evolving fp lib_table work 2012-11-28 09:24:53 -06:00
class_footprints_listbox.cpp Pcbnew: fix crash in legacy_plugin.cpp when reading old lib files. 2012-05-25 08:58:52 +02:00
common_help_msg.h Pcbnew and Cvpcb: more about new netlist support: see CHANGELOG (important changes). 2012-02-01 20:49:37 +01:00
cvframe.cpp Changes for CvPcb to eeschema stuff file: the stuff file generation from CvPcb is removed. Eeschema now imports footprints names from the .cmp usual file created by CvPcb or by Pcbnew (Why to use 2 file formats for the same thing?) . 2013-02-02 18:39:59 +01:00
cvpcb.cpp Fix capitalization issues in title bar and config files (broken by bzr rev 3543) 2012-05-10 08:25:27 +02:00
cvpcb.h merge in evolving fp lib_table work 2012-11-28 09:24:53 -06:00
cvpcb.icns [MacOSX] Updated Icons - Document ones still missing :( 2012-09-27 19:20:44 +02:00
cvpcb.rc Remove old xpm icons files 2012-04-07 13:09:57 +02:00
cvpcb_doc.icns Rework on icons, and more OS X updates 2010-05-09 04:04:44 +02:00
cvpcb_id.h Changes for CvPcb to eeschema stuff file: the stuff file generation from CvPcb is removed. Eeschema now imports footprints names from the .cmp usual file created by CvPcb or by Pcbnew (Why to use 2 file formats for the same thing?) . 2013-02-02 18:39:59 +01:00
cvpcb_mainframe.h Changes for CvPcb to eeschema stuff file: the stuff file generation from CvPcb is removed. Eeschema now imports footprints names from the .cmp usual file created by CvPcb or by Pcbnew (Why to use 2 file formats for the same thing?) . 2013-02-02 18:39:59 +01:00
cvstruct.h Added mutli-selection to cvpcb 2012-09-26 17:36:48 +02:00
listboxes.cpp MacOSX: problems with cvpcb after multiline patch: 2012-11-19 22:34:25 +01:00
loadcmp.cpp Eliminate many assumptions in Pcbnew's library manager, pertaining to locality of libraries and 2012-11-19 10:19:38 -06:00
menubar.cpp Move AddMenuItem inline functions outside wxstruct.h in a new file (menu_helpers.h) 2012-04-09 11:16:47 +02:00
read_write_cmpfile.cpp CvPcb: serious code cleaning. More comments. Remove useless files and some files renamed with a better name. 2012-02-11 10:04:26 +01:00
readschematicnetlist.cpp MacOSX: Fixes the append always beaviour of cvpcb when reading netlists 2012-12-06 19:10:00 +01:00
readwrite_dlgs.cpp Changes for CvPcb to eeschema stuff file: the stuff file generation from CvPcb is removed. Eeschema now imports footprints names from the .cmp usual file created by CvPcb or by Pcbnew (Why to use 2 file formats for the same thing?) . 2013-02-02 18:39:59 +01:00
setvisu.cpp Base object decoupling improvements. 2013-01-12 12:32:24 -05:00
tool_cvpcb.cpp Changes for CvPcb to eeschema stuff file: the stuff file generation from CvPcb is removed. Eeschema now imports footprints names from the .cmp usual file created by CvPcb or by Pcbnew (Why to use 2 file formats for the same thing?) . 2013-02-02 18:39:59 +01:00