Cirilo Bernardo
28d49b6589
fix race condition related to 3D cache and resolver
...
The attached patch fixes a segfault due to a race condition.
If a user starts eeschema with an empty sheet and clicks
the 'cvpcb' button, memory is corrupted and the program
segfaults. The issue appears to arise from multiple threads
accessing the 3D cache and resolver. This patch makes
relevant code thread-safe by using a wxCriticalSection.
2016-04-10 23:03:39 -04:00
jean-pierre charras
c146cc09eb
Kicad: fix a crash when changing a project, if pcbnew was run and "Update PCB from Schematic" was run and Schematic editor never opened.
...
(In this case the schematic frame exists, but some members are not initialized as expected, and a crash happens when calling the schematic editor dtor)
Minor other fix: avoid multiple very similar strings to translate in 3d_filename_resolver.cpp
2016-04-08 14:11:05 +02:00
Cirilo Bernardo
973786d75d
Fix 3D Coverity issue, other minor fixes
...
* CID 143740: Null pointer dereferences (NULL_RETURNS)
A few minor cut/paste and style issues in the 3D code are also fixed.
2016-04-07 18:54:14 -04:00
Simon Richter
6a65341599
3D: Make file test more portable
2016-04-06 22:41:24 -04:00
Mário Luzeiro
ffc7740cc2
3D: fix bounding box assert and include order
2016-04-06 21:48:51 -04:00
Cirilo Bernardo
c2a60d14d7
3D: fix issues reported by Coverity scan
...
*** CID 143752: Incorrect expression (USELESS_CALL)
*** CID 143751: Incorrect expression (UNUSED_VALUE)
*** CID 143749: Uninitialized members (UNINIT_CTOR)
*** CID 143748: Uninitialized members (UNINIT_CTOR)
*** CID 143747: Uninitialized members (UNINIT_CTOR)
*** CID 143746: Uninitialized members (UNINIT_CTOR)
*** CID 143745: Uninitialized members (UNINIT_CTOR)
*** CID 143744: Uninitialized members (UNINIT_CTOR)
*** CID 143740: Null pointer dereferences (NULL_RETURNS)
*** CID 143739: Memory - corruptions (MISMATCHED_ITERATOR)
*** CID 143735: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
*** CID 143734: Error handling issues (CHECKED_RETURN)
2016-04-06 21:41:52 -04:00
Cirilo Bernardo
e1b308b3b1
fix segfault in python scripting caused by new 3D code
...
The attached patch ensures the S3D_MASTER class does not cause
a segfault in pcbnew when used from Python scripting.
The issue is due to an "extern KIWAY* TheKiway" which was exposed
to allow S3D_MASTER to use the new resolver to handle 3D filenames.
Unfortunately TheKiway cannot be assigned a value until a window is
created which implements Kiway. The change introduced by this
patch should not alter the behavior of S3D_MASTER compared to
the behavior before the 3D merge.
The extern variable is only there to support S3D_MASTER which in
turn is there to support the current 3DViewer. In the planned software
structure the rather complex S3D_MASTER class is replaced with
a simple struct which only holds the model name and position/
orientation/scale data as stored in the PCB file; since the replacement
does not perform filename resolution there is no need to expose the
Kiway. For example in Mario's branch we removed the extern and
S3D_MASTER class many months ago.
2016-04-05 20:32:50 -04:00
jean-pierre charras
d18cdf1c53
merge 3d_initial_merge branch
2016-04-05 19:56:01 +02:00
Cirilo Bernardo
20b40aba1c
Fixed bad delete/delete [] invocations and other warnings and errors as suggested by cppcheck
2016-04-05 20:32:22 +10:00
Cirilo Bernardo
80f8e74797
Make changes to GLM header includes as per suggestions by Mario Luzeiro
2016-03-21 18:39:25 +11:00
Cirilo Bernardo
10c8a57c59
Fixed timestamp checking code to use canonical filename
2016-03-21 07:21:54 +11:00
Cirilo Bernardo
aa16666d72
Added file modification check to model cache code
2016-03-20 11:45:55 +11:00
Cirilo Bernardo
491e0250c0
Suppress dialog pop-up when 3D file resolver does not find a file
2016-03-15 11:39:28 +11:00
Cirilo Bernardo
a30151231f
Fix invocation of glm::cross and glm::normalize
2016-03-15 11:38:55 +11:00
Cirilo Bernardo
30f9aba7c9
Work on SG consistency checks: fixed a number of bugs and improved integrity checking when writing cache files
2016-03-14 12:30:59 +11:00
Cirilo Bernardo
0085d1aea7
Fixed unsigned vs signed int comparisons
2016-03-11 09:37:39 +11:00
Cirilo Bernardo
862cd7e5a4
Fix event processing on C3D_MODEL_VIEWER to allow click-to-focus
2016-03-02 12:29:20 +11:00
Mário Luzerio
d4655020f9
Fix zoom issue on MSWin (wxCanvas requires focus)
2016-03-02 07:50:32 +11:00
Cirilo Bernardo
d0a2080823
Merge with main branch r6601
2016-03-01 11:44:15 +11:00
Bernhard Stegmaier
5b0a250609
Fix compilation and install for OSX plus general code cleanup
2016-03-01 10:08:19 +11:00
Bernhard Stegmaier
04000883f3
Fix 3d-viewer regressions introduced by touchpad-panning for non-touchpad-panning.
...
* Fix broken horizontal scrolling with ctrl-wheel
* Restore previous step size
2016-02-26 17:19:22 -05:00
Cirilo Bernardo
0b18af3fdb
Changed resolver failure message to use wxLogMessage instead of wxMessageBox
2016-02-26 15:18:59 +11:00
Cirilo Bernardo
37c85113ee
Changed resolver failure message to use wxLogMessage instead of wxMessageBox
2016-02-26 15:16:55 +11:00
Cirilo Bernardo
097ac3a6b7
Changed resolver failure message to use wxLogMessage instead of wxMessageBox
2016-02-26 15:14:20 +11:00
Cirilo Bernardo
e7c32873ea
Remove bad default behavior of adding current working dir to default search path
2016-02-25 14:31:59 +11:00
Cirilo Bernardo
b2bdca4b7b
Remove wxASSERT in new cbbox code which was a nuisance to the legacy 3DViewer
2016-02-25 09:52:00 +11:00
Bernhard Stegmaier
f8abe9c191
Add support for optional touchpad panning.
2016-02-24 14:53:02 -05:00
Cirilo Bernardo
5306db0c98
Added missing include to 3d_plugin_manager
2016-02-24 07:26:58 +11:00
Cirilo Bernardo
9195451e12
Switched SG* classes and plugin loader logging code from stderr to wxLogTrace
2016-02-23 17:46:22 +11:00
Cirilo Bernardo
d051a8f47e
Changed IFSG* log reports from stderr/stdout to wxLogTrace
2016-02-23 16:28:41 +11:00
Cirilo Bernardo
c98ebdb8f0
Changed 3d_cache log reporting from stderr/stdout to wxLogTrace
2016-02-23 14:33:24 +11:00
Cirilo Bernardo
2f8c55cd99
Fixed segfault on getSHA1 (fopen result was not checked)
2016-02-23 11:38:58 +11:00
Cirilo Bernardo
5776037a70
Flush model data upon exit of Footprint Properties dialogs
2016-02-21 11:54:34 +11:00
Cirilo Bernardo
f247b05b3e
Merged Mario's fix to Material + per-vertex colors and transparency
2016-02-16 08:07:17 +11:00
Cirilo Bernardo
a4861a0d64
Sync with main r6555
2016-02-14 09:16:40 +11:00
unknown
450c2e4371
fix Tickness typo
2016-02-11 16:02:37 +01:00
jean-pierre charras
050bdbc772
Pcbnew: minor changes:
...
* Dialog copper zones: Always enable thermal shape settings, because even with no thermal, some pads can use thermal option in local pad settings.
* GAL mode: shows page limits in gray color, like in legacy mode, and according to comments in sources.
2016-02-09 09:23:24 +01:00
jean-pierre charras
711607f152
Fix minor Bug #1542935 (No solder mask unless there is something on the layer)
2016-02-08 14:04:42 +01:00
Cirilo Bernardo
4edce46764
Fixed bug: ambient intensity RGB not correctly written/read
2016-02-07 08:52:42 +11:00
Cirilo Bernardo
99aba8f261
Changed handling of ambientIntensity; change of major version in SG* lib
2016-02-07 08:41:27 +11:00
Cirilo Bernardo
68dde1f16f
Fixed inappropriate model scale limitation in 3D Footprint Properties dialogs
2016-02-04 12:31:37 +11:00
Cirilo Bernardo
86635aeb23
Manually select changes from Mario Luzeiro's branch to fix model lighting in the preview window.
2016-02-04 12:16:19 +11:00
Cirilo Bernardo
bf3d2b252e
Fixed VRML normals calculations
2016-02-03 11:44:48 +11:00
Cirilo Bernardo
8dd744f635
Improved 3D cache manager's ability to replace outdated cache models
2016-01-31 13:21:12 +11:00
Cirilo Bernardo
ece1291d93
Fixed SG* CMake control file to handle new sg_version.h file
2016-01-29 12:00:03 +11:00
Cirilo Bernardo
dddc3d91e9
Cleaned up 3D SceneGraph API by removing references to wxString
2016-01-29 11:52:42 +11:00
Cirilo Bernardo
cd831d9a8a
Removed include directives for wx/wx.h within 3D cache code
2016-01-28 17:12:41 +11:00
Cirilo Bernardo
1028535561
Small improvements to 3D file selector UI
2016-01-26 11:50:01 +11:00
Cirilo Bernardo
fc5556c811
Sync with main branch r6513
2016-01-26 10:35:16 +11:00
Cirilo Bernardo
cb8ccb5882
Small UI improvements
2016-01-25 16:59:45 +11:00