Created by Simon Richter and last modified
Get this branch:
bzr branch lp:~sjr/kicad/msvc
Only Simon Richter can upload to this branch. If you are Simon Richter please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Simon Richter

Recent revisions

6992. By Simon Richter

Complete str[n]icmp -> str[n]casecmp

This also reverses the substitution logic if strcasecmp is missing.

6991. By Simon Richter

Use signed loop variable for OpenMP loop.

The OpenMP specification requires loop variables to be signed, for nebulous

6990. By Simon Richter

windows: provide performance measurement primitives

On Windows, performance measurement is best performed using
QueryPerformanceCounter, which reports ticks with an arbitrary but fixed

6989. By Simon Richter

Work around VC++ 2015 bug.

The combination of
 - template resolution
 - optimization
 - structured exception handling
 - chained operator=

appears to trigger a bug in the compiler.

As this code is nonsensical anyway (numeric_limits<>::min() returns the
smallest positive value for floating point types, but the largest negative
value for integral types), it should probably be rewritten.

This change just avoids the compiler bug, though.

6988. By Simon Richter

Define compiler flags for MSVC

 - inhibit generation of #pragma comment(lib, ...) from boost
 - inhibit warnings about "unsafe" containers
 - inhibit warnings about "unsafe" C functions
 - inhibit warnings about "deprecated" POSIX functions
 - ask for macros from math.h
 - suppress min/max macros from windows.h

 - suppress warnings about throw() not being fully supported in the compiler
 - suppress warnings about values being explicitly cast to bool
 - enable string pooling
 - enable unreferenced code removal
 - enable COMDAT folding
 - generate PDB debug information

In addition, remove one explicit define that is now covered by the compiler flags.

6987. By Dick Hollenbeck

Pcbnew: improved track scripting support.

6986. By jean-pierre charras

Minor changes in dialogs: use wxWidgets default event handlers for wxID_CANCEL and wxID_OK buttons

6985. By Mario Luzeiro

3D Viewer: complete refactor of the 3D viewer.

* Split and rewrite the preview window and canvas.
* Create a new class for handling the board information.
* Adds new render targets: openGL, legacy, and ray tracing.
* Render targets take full advantage of the new 3D plugins system and 3D cache
  for a fast 3D model loading.
* Faster board loading.
* New OpenGL render is faster than the old one.
* New ray tracing render target with a post processing shader.
* Use of new 3D plugins (WRL, X3D, STEP and IGES) and 3D model caching.
* Preview of 3D model while browsing the file name.
* 3D preview of the footprint while adding / align 3D shapes.
* Render of 3D models according to attributes: Normal, Normal+Insert, Virtual.
* Pivot rotation centered in one point over the PCB board.
* Shortcuts keys improved for XYZ orientation..
* Animated camera.

6984. By jean-pierre charras

refinements in dialogs and OSX Cancel button fix. Dialog_pad_properties, pad viewer in GAL mode: better size of the drawing area. The scrollbars are now usable.

6983. By Dick Hollenbeck

Pcbnew: major swig fix.

* Switched hashtables.h over to std::undordered_map from boost version.

* Added new macros DECL_VEC_FOR_SWIG() and DECL_MAP_FOR_SWIG() in macros.h.
  These along with future DECL_HASH_FOR_SWIG() unify the declaration to swig
  and C++ so that the resultant type name is common in both languages, and
  the types AGREE.

* Fixed swigging of NETINFO_ITEM and NETINFO_LIST via magic.

* Newly exposed (python wrapped) are: D_PADS, TRACKS (was TRACK_PTRS),
  NETNAME_MAP, NETCODE_MAP, wxString (without constructor purposely, read

* std::vector<SOMETHING*> tends to end up named SOMETHINGS in C++ and python.
  Having the name consistent between like types is helpful, and between
  languages. std::map<> ends up as SOMETHING_MAP.

* NETINFO_LIST::m_netNames and NETINFO_LIST::m_netCodes are now std::map
  instead of hashtables, because swig does not yet support std::unordered_map.

* You can now get to any netclass or net info. NETNAMES_MAP and NETCODES_MAP
  are traversable basically the same as a python dictionary using a python
  string (not wsString) as the key! The wxString typemap converts python
  string to wxString before the lookup happens. Iteration also works.

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
This branch contains Public information 
Everyone can see this information.