It was due to the fact a message (using ExpressMail) was sent to the board
and schematic editor, but it is possible only if the manager of this canvas
is a EDA_3D_VIEWER_FRAME, because only this kind of frame has ExpressMail stuff
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21728
We generally add some jitter to the raytracing lines in order to smooth
out over multiple iterations some of the imperfections. However, when
we do this to an orthographic projection (where all lines are parallel
to start, we don't average and just introduce noticeable noise in the
render
Fixes https://gitlab.com/kicad/code/kicad/issues/8863
This can be useful when checking 3D models and/or generating
images of components in place on board, or if a dense via field is
in the way when looking at something on an inner layer.
Especially, the BOARD managed by FP editor had is m_project member reinitialized
when creating the 3D viewer, thus creating issues in FP editor, and create
a crash when closing kicad
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20964
This also removes the GROUP/UNGROUP-specific undo actions.
This also fixes a bunch of undo bugs when duplicating
group members, creating pins, etc.
This also fixes some undo bugs when dividing wires etc.
This also fixes some bugs with new sch items not
being created within an entered group.
In modern Windows code WIN32_LEAN_AND_MEAN should be defined.
Without this define windows.h pulls in some legacy headers, notably
winsocks.h. Modern code that cares about winsocks includes winsocks2.h
which conflicts with winsocks.h. Other code that does not care about
winsocks (OpenGL, fontconfig, ...) includes windows.h pulling in legacy
winsocks.h, causing definition conflicts and build errors.
At worst defining WIN32_LEAN_AND_MEAN requires explicitly including some
additional headers on Windows.
Also convert hatched fills to solid for solder masks.
Also give track solder masks their specified
expansion when exporting to STEP.
Also implement solder masks for shapes when
exporting to STEP.
1) add footprint graphics and text to copper
polys when differentiating plated from non-plated
copper
2) simplify adding footprint graphics and text
for contour walls
3) add dimension text and shapes for contour walls
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20111
Glew has the problem that it has to be selected at build time if GLX or
EGL is supported by the library, and this in not encoded in the library
name, nor ABI, nor anything.
Then it's easy to get into the situation that a binary is built but
cannot run because glew supports an API different from the one used by
wxWidgets, or the binary fails to link in the end after all objects are
compiled.
epoxy can support both with the same library avoiding this problem.
epoxy is not initialized explicitly, replaced initialization with
version check where one was not done already.
It seems to be available as vcpkg https://vcpkg.link/ports/libepoxy
There are problems related to GL context switching on Windows which does
not seem to be used in kicad
https://github.com/anholt/libepoxy#known-issues-when-running-on-windows
There is also a problem related to multithreaded rendering on Windows
https://github.com/anholt/libepoxy/pull/265 It's harder to tell if
threading is used for rendering but it does not look like kicad is doing
anything complex enough to warrant using multiple rendering threads.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20630
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12543